Application Development and Automation 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: 
Read only

Creating an order using Bapi_alm_order_maintain

Former Member
0 Likes
1,148

Hi,

Can any one help me how to use bapi to create an order (example code ) using BAPI_ALM_ORDER_MAINTAIN.

reagrds

Praveen k

Hi,

Can any one help me how to use bapi to create an order (example code ) using BAPI_ALM_ORDER_MAINTAIN.

reagrds

Praveen k

1 REPLY 1
Read only

Former Member
0 Likes
943

Hi,

REPORT ZMK_BAPI_PROGRAM .

DATA : RESB.

DATA : IT_METHODS LIKE BAPI_ALM_ORDER_METHOD OCCURS 0 ,

IT_HEADER LIKE BAPI_ALM_ORDER_HEADERS_I OCCURS 0,

IT_HEADER_UP LIKE BAPI_ALM_ORDER_HEADERS_UP OCCURS 0 ,

IT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.

DATA : X_METHODS LIKE BAPI_ALM_ORDER_METHOD ,

X_HEADER LIKE BAPI_ALM_ORDER_HEADERS_I,

X_HEADER_UP LIKE BAPI_ALM_ORDER_HEADERS_UP .

**************************************************************

DATA T_METH TYPE TABLE OF BAPI_ALM_ORDER_METHOD.

**Internal table for Operation (BAPI)

DATA T_OPER TYPE TABLE OF BAPI_ALM_ORDER_OPERATION.

DATA T_COMP TYPE TABLE OF BAPI_ALM_ORDER_COMPONENT.

**Internal Table for Opertaions UP (BAPI)

DATA T_COMP_UP TYPE TABLE OF BAPI_ALM_ORDER_COMPONENT_UP.

**Internal table for BAPI Return code

DATA T_RET TYPE TABLE OF BAPIRET2.

***WORK AREA DECLARATIONS

**Work Area for Hedaer

DATA:WA_HEADER TYPE CAUFVDB,

WA_METH TYPE BAPI_ALM_ORDER_METHOD,

WA_OP TYPE AFVGB,

WA_COMP TYPE RESBB,

WA_COMP1 TYPE BAPI_ALM_ORDER_COMPONENT,

WA_COMP_UP TYPE BAPI_ALM_ORDER_COMPONENT_UP,

WA_OPER TYPE BAPI_ALM_ORDER_OPERATION.

DATA : IT_RESB TYPE RESB OCCURS 0 WITH HEADER LINE.

*PARAMETERS:TEST.

****Fill Method Internal table

*WA_METH-REFNUMBER = '000001'.

*WA_METH-OBJECTTYPE = 'HEADER'.

*WA_METH-METHOD = 'CHANGE'.

*WA_METH-OBJECTKEY(12) = '000004000180'.

**WA_METH-OBJECTKEY+12(4) = '0020'.

**WA_METH-OBJECTKEY+16(4) = '0020'.

*APPEND WA_METH TO T_METH.

DATA : WA_REFNUMBER LIKE WA_METH-REFNUMBER VALUE 1,

WA_ITEM LIKE EKPO-EBELP .

CLEAR WA_METH.

WA_METH-METHOD = 'SAVE'.

APPEND WA_METH TO T_METH.

SELECT * FROM RESB INTO TABLE IT_RESB

WHERE AUFNR = '000004000180'.

IF SY-SUBRC EQ 0.

LOOP AT IT_RESB.

WA_REFNUMBER = WA_REFNUMBER + 1.

WA_METH-REFNUMBER = WA_REFNUMBER.

WA_METH-OBJECTTYPE = 'COMPONENT'.

WA_METH-METHOD = 'CHANGE'.

WA_METH-OBJECTKEY(12) = '000004000180'.

*WA_METH-OBJECTKEY+12(4) = '0020'.

*WA_METH-OBJECTKEY+16(4) = '0020'.

APPEND WA_METH TO T_METH.

CLEAR WA_ITEM.

CONCATENATE IT_RESB-RSPOS+0(4) '0' INTO WA_ITEM.

WA_COMP1-RESERV_NO = IT_RESB-RSNUM.

WA_COMP1-RES_ITEM = IT_RESB-RSPOS.

WA_COMP1-ACTIVITY = '0010'.

WA_COMP1-ITEM_NUMBER = WA_ITEM.

*wa_comp1-special_stock = 'B'.

WA_COMP1-REQUIREMENT_QUANTITY = '1102'.

*wa_comp1-stge_loc = '0001'.

*wa_comp1-backflush = 'X'.

APPEND WA_COMP1 TO T_COMP.

****Component Update Internal table

***WA_COMP_UP-SPECIAL_STOCK = 'X'.

****wa_comp_up-backflush = 'X'.

WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

APPEND WA_COMP_UP TO T_COMP_UP.

ENDLOOP.

ENDIF.

X_HEADER-ORDERID = '000004000180'.

APPEND X_HEADER TO IT_HEADER.

***WA_METH-REFNUMBER = '000001'.

***WA_METH-OBJECTTYPE = 'COMPONENT'.

***WA_METH-METHOD = 'CHANGE'.

***WA_METH-OBJECTKEY(12) = '000004000180'.

****WA_METH-OBJECTKEY+12(4) = '0020'.

****WA_METH-OBJECTKEY+16(4) = '0020'.

***APPEND WA_METH TO T_METH.

***

***

***WA_METH-REFNUMBER = '000002'.

***WA_METH-OBJECTTYPE = 'COMPONENT'.

***WA_METH-METHOD = 'CHANGE'.

***WA_METH-OBJECTKEY(12) = '000004000180'.

****WA_METH-OBJECTKEY+12(4) = '0020'.

****WA_METH-OBJECTKEY+16(4) = '0020'.

***APPEND WA_METH TO T_METH.

***

***

***WA_METH-REFNUMBER = '000003'.

***WA_METH-OBJECTTYPE = 'COMPONENT'.

***WA_METH-METHOD = 'CHANGE'.

***WA_METH-OBJECTKEY(12) = '000004000180'.

****WA_METH-OBJECTKEY+12(4) = '0020'.

****WA_METH-OBJECTKEY+16(4) = '0020'.

***APPEND WA_METH TO T_METH.

***

***WA_METH-REFNUMBER = '000004'.

***WA_METH-OBJECTTYPE = 'COMPONENT'.

***WA_METH-METHOD = 'CHANGE'.

***WA_METH-OBJECTKEY(12) = '000004000180'.

****WA_METH-OBJECTKEY+12(4) = '0020'.

****WA_METH-OBJECTKEY+16(4) = '0020'.

***APPEND WA_METH TO T_METH.

***

***

***

***WA_METH-REFNUMBER = '000005'.

***WA_METH-OBJECTTYPE = 'COMPONENT'.

***WA_METH-METHOD = 'CHANGE'.

***WA_METH-OBJECTKEY(12) = '000004000180'.

****WA_METH-OBJECTKEY+12(4) = '0020'.

****WA_METH-OBJECTKEY+16(4) = '0020'.

***APPEND WA_METH TO T_METH.

***

***

***

***

***X_HEADER-ORDERID = '000004000180'.

***APPEND X_HEADER TO IT_HEADER.

***

*****Component Internal table

***WA_COMP1-RESERV_NO = '0000001461'.

***WA_COMP1-RES_ITEM = '0002'.

***WA_COMP1-ACTIVITY = '0010'.

***WA_COMP1-ITEM_NUMBER = '0020'.

****wa_comp1-special_stock = 'B'.

***WA_COMP1-REQUIREMENT_QUANTITY = '12102'.

****wa_comp1-stge_loc = '0001'.

****wa_comp1-backflush = 'X'.

***APPEND WA_COMP1 TO T_COMP.

***

****Component Update Internal table

***WA_COMP_UP-SPECIAL_STOCK = 'X'.

****wa_comp_up-backflush = 'X'.

***WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

***APPEND WA_COMP_UP TO T_COMP_UP.

***

***

***

***WA_COMP1-RESERV_NO = '0000001461'.

***WA_COMP1-RES_ITEM = '0003'.

***WA_COMP1-ACTIVITY = '0010'.

***WA_COMP1-ITEM_NUMBER = '0030'.

****wa_comp1-special_stock = 'B'.

***WA_COMP1-REQUIREMENT_QUANTITY = '13013'.

****wa_comp1-stge_loc = '0001'.

****wa_comp1-backflush = 'X'.

***APPEND WA_COMP1 TO T_COMP.

***

****Component Update Internal table

***WA_COMP_UP-SPECIAL_STOCK = 'X'.

****wa_comp_up-backflush = 'X'.

***WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

***APPEND WA_COMP_UP TO T_COMP_UP.

***

***

***

***WA_COMP1-RESERV_NO = '0000001461'.

***WA_COMP1-RES_ITEM = '0004'.

***WA_COMP1-ACTIVITY = '0010'.

***WA_COMP1-ITEM_NUMBER = '0040'.

****wa_comp1-special_stock = 'B'.

***WA_COMP1-REQUIREMENT_QUANTITY = '14014'.

****wa_comp1-stge_loc = '0001'.

****wa_comp1-backflush = 'X'.

***APPEND WA_COMP1 TO T_COMP.

***

****Component Update Internal table

***WA_COMP_UP-SPECIAL_STOCK = 'X'.

****wa_comp_up-backflush = 'X'.

***WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

***APPEND WA_COMP_UP TO T_COMP_UP.

***

***

***

***WA_COMP1-RESERV_NO = '0000001461'.

***WA_COMP1-RES_ITEM = '0005'.

***WA_COMP1-ACTIVITY = '0010'.

***WA_COMP1-ITEM_NUMBER = '0050'.

****wa_comp1-MATERIAL = '803'.

***WA_COMP1-REQUIREMENT_QUANTITY = '15013'.

****wa_comp1-stge_loc = '0001'.

****wa_comp1-backflush = 'X'.

***APPEND WA_COMP1 TO T_COMP.

***

****Component Update Internal table

****wa_comp_up-MATERIAL = 'X'.

****wa_comp_up-backflush = 'X'.

***WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

***APPEND WA_COMP_UP TO T_COMP_UP.

***

***

***WA_COMP1-RESERV_NO = '0000001461'.

***WA_COMP1-RES_ITEM = '0006'.

***WA_COMP1-ACTIVITY = '0010'.

***WA_COMP1-ITEM_NUMBER = '0060'.

****wa_comp1-MATERIAL = '803'.

***WA_COMP1-REQUIREMENT_QUANTITY = '11563'.

****wa_comp1-stge_loc = '0001'.

****wa_comp1-backflush = 'X'.

***APPEND WA_COMP1 TO T_COMP.

***

****Component Update Internal table

****wa_comp_up-MATERIAL = 'X'.

****wa_comp_up-backflush = 'X'.

***WA_COMP_UP-REQUIREMENT_QUANTITY = 'X'.

****wa_comp_up-stge_loc = 'X'.

***APPEND WA_COMP_UP TO T_COMP_UP.

PERFORM CALL_BAPI.

&----


*& Form CALL_BAPI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM CALL_BAPI .

CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'

TABLES

IT_METHODS = T_METH

IT_HEADER = IT_HEADER

*it_header_up = it_header_up

IT_COMPONENT = T_COMP

IT_COMPONENT_UP = T_COMP_UP

RETURN = T_RET.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

REFRESH: T_COMP,

T_COMP_UP,

T_RET.

ENDFORM. " CALL_BAPI

Check this code...., and also read the BAPI documentation it is explained very well...

<b>Reward points</b>

Regards