Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Bapi - BAPI_ALM_ORDER_MAINTAIN

vinothkumar_g
Advisor
Advisor
0 Kudos

Hi All,

I am using the BApi - BAPI_ALM_ORDER_MAINTAIN to change the workorder in the transaction - iw32. Actually my scenarion is to change the objects tab in the workorder. For the function location in the objects tab i need to put the Processing indicator to 'X' (checked).

This function module is executed, but it doesnot changed the value. any body have any idea reagarding this one? In methods paremater, what are all the parameters we should use?

Input - I should give - workorder number and function location structure ( counter, function location and processing indicator)

Initially functional location - processing indicator will be space.

ouput : so for that workorder it should change the processing indicator to 'X' for the functional location.

How to do this ?

-


check the following code

""Local Interface:

*" IMPORTING

*" VALUE(WORKORDER1) TYPE AUFNR OPTIONAL

*" EXPORTING

*" VALUE(WORKORDER) TYPE AUFNR

*" TABLES

*" FUNC_CHANGE STRUCTURE ZFUNC_CHANGE OPTIONAL

I used the following code..

DATA: HEAD LIKE BAPI_ALM_ORDER_HEADERS_I OCCURS 0 WITH HEADER LINE,

HEAD_X LIKE BAPI_ALM_ORDER_HEADERS_UP OCCURS 0 WITH HEADER LINE,

METHODS LIKE BAPI_ALM_ORDER_METHOD OCCURS 0 WITH HEADER LINE,

OPN LIKE BAPI_ALM_ORDER_OPERATION OCCURS 0 WITH HEADER LINE,

OPN_X LIKE BAPI_ALM_ORDER_OPERATION_UP OCCURS 0 WITH HEADER LINE,

RET LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

OLIST LIKE BAPI_ALM_ORDER_OBJECTLIST OCCURS 0 WITH HEADER LINE,

OLIST_X LIKE BAPI_ALM_ORDER_OLIST_UP OCCURS 0 WITH HEADER LINE,

OLIST_RELATION LIKE BAPI_ALM_OLIST_RELATION OCCURS 0 WITH HEADER LINE.

DATA ET_NUMBERS LIKE BAPI_ALM_NUMBERS OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = WORKORDER1

IMPORTING

OUTPUT = WORKORDER1

.

METHODS-REFNUMBER = '000001' .

METHODS-OBJECTTYPE = 'HEADER'.

METHODS-METHOD = 'CHANGE'.

METHODS-OBJECTKEY = workorder1.

APPEND METHODS.

METHODS-REFNUMBER = '000001'.

METHODS-OBJECTTYPE = 'OBJECTLIST'.

METHODS-METHOD = 'CHANGE'.

METHODS-OBJECTKEY = workorder1. "'%00000000001'.

APPEND METHODS.

METHODS-REFNUMBER = '000001'.

METHODS-OBJECTTYPE = ' '.

METHODS-METHOD = 'SAVE'.

METHODS-OBJECTKEY = workorder1. "'%00000000001'.

APPEND METHODS.

CLEAR METHODS.

HEAD-ORDERID = WORKORDER1.

HEAD-ORDER_TYPE = 'PM01'.

APPEND HEAD.

CLEAR HEAD.

HEAD_X-ORDERID = WORKORDER1.

APPEND HEAD_X.

CLEAR HEAD_X.

LOOP AT FUNC_CHANGE.

OLIST-COUNTER = FUNC_CHANGE-counter.

OLIST-FUNCT_LOC = FUNC_CHANGE-FUNCT_LOC.

OLIST-PROCESSING_IND = 'X'.

APPEND OLIST.

CLEAR OLIST.

ENDLOOP.

  • OLIST_X-SORTFIELD = 'X'.

OLIST_X-PROCESSING_IND = 'X'.

APPEND OLIST_X.

CLEAR OLIST_X.

  • OLIST_RELATION-ACTIVITY = '0160'.

  • OLIST_RELATION-OBJECTLIST = '15'.

  • OLIST_RELATION-COUNTER = '16'.

  • APPEND OLIST_RELATION.

  • CLEAR OLIST_RELATION.

*

  • OLIST_RELATION-ACTIVITY = '0170'.

  • OLIST_RELATION-OBJECTLIST = '16'.

  • OLIST_RELATION-COUNTER = '17'.

*

  • APPEND OLIST_RELATION.

  • CLEAR OLIST_RELATION.

CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'

TABLES

IT_METHODS = METHODS

IT_HEADER = HEAD

IT_HEADER_UP = HEAD_X

IT_OBJECTLIST = OLIST

IT_OBJECTLIST_UP = OLIST_X

  • IT_OLIST_RELATION = OLIST_RELATION

RETURN = RET

ET_NUMBERS = ET_NUMBERS.

  • COMMIT WORK.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT =

  • IMPORTING

  • RETURN =

.

READ TABLE ET_NUMBERS INDEX 1.

IF SY-SUBRC = 0 AND ET_NUMBERS-AUFNR_NEW NE '%00000000001'.

WORKORDER = ET_NUMBERS-AUFNR_NEW.

ELSE.

WORKORDER = 'Error'.

ENDIF.

Points will be awarded.

Regards,

vinoth

4 REPLIES 4

Former Member
0 Kudos

Hi,

hi you can use this code and might be helpful...

REPORT ZORDERTEST_BAPI .

*&----


**& Report Z_BAPI_ALM_ORDER_MAINTAIN_TEST *

**& *

*&----


**& *

**& *

*&----


*

*REPORT z_bapi_alm_order_maintain_test.

DATA: it_methods LIKE STANDARD TABLE OF bapi_alm_order_method,

wa_methods LIKE LINE OF it_methods.

DATA: it_header LIKE STANDARD TABLE OF bapi_alm_order_headers_i,

wa_header LIKE LINE OF it_header.

DATA: it_operation LIKE STANDARD TABLE OF bapi_alm_order_operation,

wa_operation LIKE LINE OF it_operation.

DATA: it_text LIKE STANDARD TABLE OF bapi_alm_text,

wa_text LIKE LINE OF it_text.

DATA: et_numbers LIKE STANDARD TABLE OF bapi_alm_numbers,

wa_numbers LIKE LINE OF et_numbers.

data: it_return LIKE STANDARD TABLE OF BAPIRET2.

START-OF-SELECTION.

  • METHODS SECTION

MOVE '1' TO wa_methods-REFNUMBER.

MOVE 'HEADER' TO wa_methods-objecttype.

*MOVE 'CREATE' TO wa_methods-method.

MOVE 'CHANGE' TO wa_methods-method.

*MOVE '%00000000001' TO wa_methods-objectkey.

MOVE '000006000065' TO wa_methods-objectkey.

*INSERT wa_methods INTO TABLE it_methods.

APPEND wa_methods TO it_methods.

MOVE '1' TO wa_methods-REFNUMBER.

MOVE 'OPERATION' TO wa_methods-objecttype.

*MOVE 'CREATE' TO wa_methods-method.

MOVE 'CHANGE' TO wa_methods-method.

*MOVE '%000000000010010' TO wa_methods-objectkey.

MOVE '000006000065' TO wa_methods-objectkey.

*INSERT wa_methods INTO TABLE it_methods.

APPEND wa_methods TO it_methods.

wa_text-ORDERID = '000006000065'.

wa_text-LANGU = 'EN'.

wa_text-LANGU_ISO = 'EN'.

*wa_text-TEXTSTART = '0001'.

*wa_text-TEXTEND = '0002'.

append wa_text to it_text.

MOVE '1' TO wa_methods-REFNUMBER.

MOVE '' TO wa_methods-objecttype.

MOVE 'SAVE' TO wa_methods-method.

*MOVE '%00000000001' TO wa_methods-objectkey.

MOVE '000006000065' TO wa_methods-objectkey.

*INSERT wa_methods INTO TABLE it_methods.

APPEND wa_methods TO it_methods.

  • HEADER SECTION

*MOVE '%00000000001' TO wa_header-orderid.

MOVE '000006000065' TO wa_header-orderid.

MOVE 'ZDIS' TO wa_header-order_type.

MOVE '1001' TO wa_header-planplant.

*MOVE '1001' TO wa_header-mn_wk_ctr.

MOVE '1001' TO wa_header-plant.

*MOVE 'CUV-SZV-CSUR-ATEM-I...' TO wa_header-funct_loc.

MOVE '' TO wa_header-equipment.

MOVE '' TO wa_header-material.

MOVE '8000001022' TO wa_header-funct_loc.

MOVE '20071212' TO wa_header-finish_date.

MOVE SYST-UZEIT TO WA_HEADER-BASIC_FIN.

MOVE 'Changed by manohar from BAPI' TO wa_header-short_text.

*INSERT wa_header INTO TABLE it_header.

APPEND wa_header TO it_header.

  • OPERATION SECTION

MOVE '10' TO wa_operation-activity.

MOVE '' TO wa_operation-sub_activity.

MOVE '' TO wa_operation-standard_text_key.

MOVE 'This is what i need ' TO wa_operation-description.

MOVE '' TO wa_operation-vendor_no.

MOVE 3 TO wa_operation-quantity.

MOVE 'KG' TO wa_operation-base_uom.

MOVE '00000015' TO wa_operation-pers_no.

*INSERT wa_operation INTO TABLE it_operation.

APPEND wa_operation TO it_operation.

REFRESH et_numbers.

data: it_text_line type table of BAPI_ALM_TEXT_LINES,

I_TEXTLINE TYPE STANDARD TABLE OF TLINE,

w_text_line type BAPI_ALM_TEXT_LINES.

*Use function module 'READ TEXT'

CALL FUNCTION 'READ_TEXT'

EXPORTING

  • CLIENT = SY-MANDT

id = 'KOPF'

language = SYST-LANGU

name = '120000006000065'

object = 'AUFK'

  • ARCHIVE_HANDLE = 0

  • LOCAL_CAT = ' '

  • IMPORTING

  • HEADER =

tables

lines = IT_TEXT_LINE

EXCEPTIONS

ID = 1

LANGUAGE = 2

NAME = 3

NOT_FOUND = 4

OBJECT = 5

REFERENCE_CHECK = 6

WRONG_ACCESS_TO_ARCHIVE = 7

OTHERS = 8

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

break mdubbaka.

w_text_line-TDFORMAT = '*'.

w_text_line-TDLINE = 'Manohar has changed this from program'.

append w_text_line to it_text_line.

data: it_header_serv TYPE TABLE OF BAPI_ALM_ORDER_SRVDAT_E,

WA_HEADER_SERV TYPE BAPI_ALM_ORDER_SRVDAT_E,

IT_HEADER_SERVX TYPE TABLE OF BAPI_ALM_ORDER_SRVDAT_UP,

IT_USERSTATUS type table of BAPI_ALM_ORDER_USRSTAT,

wa_userstatus TYPE BAPI_ALM_ORDER_USRSTAT,

WA_HEADER_SERVX TYPE BAPI_ALM_ORDER_SRVDAT_UP.

  • wa_USERSTATUS-USER_ST_TEXT = 'TECO'.

  • append wa_userstatus TO it_userstatus.

*The following BAPIs can be made used to get the details of operation,

*Use the function module ALM_ME_ORDER_GETDETAIL as in the program ZORDERLIST_FM

*and pass the corresponding values to th structures and internal tables of the

*BAPI Used below 'BAPI_ALM_ORDER_MAINTAIN' to update PERNR, COMPLETION DATE AND TIME

*The text as of now we will only use the one given in header structure by INSERTING

*The text we want to enter in the internal table IT_TEXT_LINE(NEED TO TEST THIS).

*Other related function modules in include LIBAPI_ALM_ORDERUXX (Don't need them anyways).

CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'

TABLES

it_methods = it_methods

it_header = it_header

  • IT_HEADER_UP =

IT_HEADER_SRV = IT_HEADER_SERV

  • IT_HEADER_SRV_UP =

  • IT_USERSTATUS = IT_USERSTATUS "not working

  • IT_PARTNER =

  • IT_PARTNER_UP =

it_operation = it_operation

  • IT_OPERATION_UP =

  • IT_RELATION =

  • IT_RELATION_UP =

  • IT_COMPONENT =

  • IT_COMPONENT_UP =

  • IT_TEXT = it_text

IT_TEXT_LINES = it_text_line

  • EXTENSION_IN =

RETURN = IT_RETURN

et_numbers = et_numbers

.

break mdubbaka.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

Regarsd

vinothkumar_g
Advisor
Advisor
0 Kudos

Hi,

Thanks for the reply..

The Above which you had referred doesnot contain - object list change..

For changing the object list on the transaction iw32 to a particlular workorder , how to do? In these parameter's methods , Header , Header_up, Object List and Object list update . what are the parameters i should use ?

0 Kudos

i give you my code .this is useful to you.

&----


*& Report ZSAN_BAPI_ORDER_MAINTAIN *

*& *

&----


*& *

*& *

&----


REPORT ZSAN_BAPI_ORDER_MAINTAIN .

PARAMETER: ODR_NO LIKE BAPI_ALM_ORDER_HEADERS_I-ORDERID. " Order Number

DATA: IT_METHODS LIKE BAPI_ALM_ORDER_METHOD OCCURS 0 WITH HEADER LINE,

" Processing methods

IT_HEADER LIKE BAPI_ALM_ORDER_HEADERS_I OCCURS 0 WITH HEADER LINE,

" Import Structure for ALM Order Headers

IT_HEADER_UP LIKE BAPI_ALM_ORDER_HEADERS_UP OCCURS 0 WITH HEADER LINE,

" Update Structure for ALM Order Headers

IT_OPERATION LIKE BAPI_ALM_ORDER_OPERATION OCCURS 0 WITH HEADER LINE,

" Input Structure for PM/CS BAPIs Operations

IT_OPERATION_UP LIKE BAPI_ALM_ORDER_OPERATION_UP OCCURS 0 WITH HEADER LINE,

" Update Structure for PM/CS BAPI Operations

IT_HEADER_SRV LIKE BAPI_ALM_ORDER_SRVDAT_E OCCURS 0 WITH HEADER LINE,

" Service-Specific Data, External Structure

IT_HEADER_SRV_UP LIKE BAPI_ALM_ORDER_SRVDAT_UP OCCURS 0 WITH HEADER LINE,

" Service-Specific Data, External Structure

IT_PARTNERS LIKE BAPI_ALM_ORDER_PARTN_MUL OCCURS 0 WITH HEADER LINE,

" Partner Data

IT_PARTNERS_UP LIKE BAPI_ALM_ORDER_PARTN_MUL_UP OCCURS 0 WITH HEADER LINE,

" Partner Data for Several Orders, Update

RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

" Table for return messages

*Tables to get deatils for Order

ES_HEADER LIKE BAPI_ALM_ORDER_HEADER_E OCCURS 0 WITH HEADER LINE,

" Export Structure for ALM Order Header

ES_SRVDATA LIKE BAPI_ALM_ORDER_SRVDAT_E OCCURS 0 WITH HEADER LINE,

" ALM Order BAPIs: Service-Specific Data, External Structure

ET_PARTNER LIKE BAPI_ALM_ORDER_PARTNER OCCURS 0 WITH HEADER LINE,

" Partner Data for Several Orders

ET_OPERATIONS LIKE BAPI_ALM_ORDER_OPERATION_E OCCURS 0 WITH HEADER LINE,

" Export Structure for PM/CS BAPIs Operations

ET_COMP LIKE BAPI_ALM_ORDER_COMPONENT_E OCCURS 0 WITH HEADER LINE,

ET_RELATIONS LIKE BAPI_ALM_ORDER_RELATION_EXPORT OCCURS 0 WITH HEADER LINE,

" BAPI Structure for ALM Order Relationships

ET_TEXTS LIKE BAPI_ALM_TEXT OCCURS 0 WITH HEADER LINE,

" Text Header for ALM Order BAPIs

ET_TEXT_LINES LIKE BAPI_ALM_TEXT_LINES OCCURS 0 WITH HEADER LINE,

" Text Lines for ALM BAPIs

ET_PRTS LIKE BAPI_ALM_ORDER_PRT_E OCCURS 0 WITH HEADER LINE,

" Structure for Production Resources/Tools

ET_COSTS_SUM LIKE BAPI_ALM_ORDER_COSTS_SUM_E OCCURS 0 WITH HEADER LINE,

" Structure for Order Costs Sum

ET_COST_DET LIKE BAPI_ALM_ORDER_COSTS_DETAIL_E OCCURS 0 WITH HEADER LINE,

" Structure for Order Costs Detail

RETURN1 LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE

" Table for return messages

.

*Get deatils for Order

CALL FUNCTION 'BAPI_ALM_ORDER_GET_DETAIL'

EXPORTING

NUMBER = ODR_NO

IMPORTING

ES_HEADER = ES_HEADER

ES_SRVDATA = ES_SRVDATA

TABLES

ET_PARTNER = ET_PARTNER

ET_OPERATIONS = ET_OPERATIONS

ET_COMPONENTS = ET_COMP

ET_RELATIONS = ET_RELATIONS

ET_TEXTS = ET_TEXTS

ET_TEXT_LINES = ET_TEXT_LINES

ET_PRTS = ET_PRTS

ET_COSTS_SUM = ET_COSTS_SUM

ET_COSTS_DETAILS = ET_COST_DET

RETURN = RETURN1.

*Fill values in IT_METHODS

IT_METHODS-METHOD = 'SAVE'.

IT_METHODS-OBJECTKEY = ODR_NO.

APPEND IT_METHODS.

*Fill values in IT_METHODS

IT_METHODS-METHOD = 'CHANGE'.

IT_METHODS-REFNUMBER = 1.

IT_METHODS-OBJECTTYPE = 'HEADER'.

IT_METHODS-OBJECTKEY = ODR_NO.

APPEND IT_METHODS.

*Fill values in IT_HEADER

IT_HEADER-ORDERID = ODR_NO.

IT_HEADER-MN_WK_CTR = '1114'.

*IT_HEADER-PLANT = ES_HEADER-PLANT.

*IT_HEADER-ORDER_TYPE = ES_HEADER-ORDER_TYPE.

*IT_HEADER-PLANPLANT = ES_HEADER-PLANPLANT.

*IT_HEADER-BUS_AREA = ES_HEADER-BUS_AREA.

IT_HEADER-MATERIAL = 'Y-352'.

APPEND IT_HEADER.

*Fill values in IT_HEADER_UP

IT_HEADER_UP-ORDERID = ODR_NO.

IT_HEADER_UP-MN_WK_CTR = 'X'.

IT_HEADER_UP-MATERIAL = 'X'.

APPEND IT_HEADER_UP.

*Maintain Order

CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'

TABLES

IT_METHODS = IT_METHODS

IT_HEADER = IT_HEADER

IT_HEADER_UP = IT_HEADER_UP

IT_PARTNER = IT_PARTNERS

IT_PARTNER_UP = IT_PARTNERS_UP

IT_OPERATION = IT_OPERATION

IT_OPERATION_UP = IT_OPERATION_UP

IT_HEADER_SRV = IT_HEADER_SRV

IT_HEADER_SRV_UP = IT_HEADER_SRV_UP

RETURN = RETURN.

*Commit BAPI

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'.

*Display order status

FORMAT COLOR 6 INVERSE ON.

READ TABLE RETURN WITH KEY TYPE = 'E'.

IF SY-SUBRC = 0.

WRITE: /,'Order not maintained'.

LOOP AT RETURN.

WRITE: /,RETURN-MESSAGE.

ENDLOOP.

ELSE.

WRITE:/,RETURN-MESSAGE,/,'Order maintained with number',ODR_NO.

ENDIF.

FORMAT COLOR OFF INVERSE OFF.

if helpful reward points expected.

vinothkumar_g
Advisor
Advisor
0 Kudos

Hi,

Thanks for the code. Above code works fine, but do u have any idea how to change the value of processing indicator in object list?