Skip to Content
0

BAPI_ALM_ORDER_MAINTAIN Reservation Item number of newly created component

Dec 07, 2016 at 09:42 PM

147

avatar image

How I can get the value of RES_ITEM field of BAPI_ALM_ORDER_MAINTAIN for a newly created component before calling BAPI_TRANSACTION_COMMIT?

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Best Answer
Peter Atkin Dec 12, 2016 at 02:41 PM
1

Look at table (SAPLCOBC)BT_RESB[] via field-symbols, or use BAPI_ALM_ORDER_GET_DETAIL after the commit.

PeteA

,

You could read table (SAPLCOBC)BT_RESB[] using field-symbols.Or use BAPI_ALM_ORDER_GET_DETAIL after commit:

Here is my amended code for future reference:

report zpja0005.
data : it_methods type standard table of bapi_alm_order_method, s_method like bapi_alm_order_method, it_components type standard table of bapi_alm_order_component, s_component like bapi_alm_order_component, it_components_up type standard table of bapi_alm_order_component_up, s_component_up like bapi_alm_order_component_up, it_return type standard table of bapiret2, lv_aufnr like aufk-aufnr.
lv_aufnr = '80000067'.
s_method-refnumber = '000001'. s_method-objecttype = 'COMPONENT'. s_method-method = 'CREATE'. s_method-objectkey = lv_aufnr.
append s_method to it_methods.
clear s_method. s_method-objecttype = 'ORDER'. s_method-method = 'SAVE'. s_method-objectkey(12) = lv_aufnr.
append s_method to it_methods.
s_component-activity = '0010'. s_component-material = '000000000000000101'. s_component-item_cat = 'L'. s_component-requirement_quantity = 1.
append s_component to it_components.
s_component_up-material = 'X'. s_component_up-item_cat = 'X'. s_component_up-requirement_quantity = 'X'. s_component_up-requirement_quantity_unit = 'X'.
append s_component_up to it_components_up.
* Update order with components call function 'BAPI_ALM_ORDER_MAINTAIN' tables it_methods = it_methods it_component = it_components it_component_up = it_components_up return = it_return.
* Check IT_RESULTS from above and commit change if there are no errors call function 'BAPI_TRANSACTION_COMMIT' exporting wait = 'X' importing return = it_return.
Share
10 |10000 characters needed characters left characters exceeded
Peter Atkin Dec 08, 2016 at 07:43 AM
0

Victor,

Is the reservation number data not in IT_COMPONENT-RESERV_NO ?

PeteA

Share
10 |10000 characters needed characters left characters exceeded
Víctor García Dec 09, 2016 at 04:39 AM
0

Hi Peter,

I need the whole component key i.e. reservation number RESERV_NO and reservation item RES_ITEM. When I add a component to an order I provide empty values for both fields in IT_COMPONENT table, after calling BAPI_ALM_ORDER_MAINTAIN the values are not updated with the assigned RESERV_NO - RES_ITEM.

Share
10 |10000 characters needed characters left characters exceeded
Peter Atkin Dec 09, 2016 at 07:59 AM
0

Victor,

Do you have any BAPI test code so I can then take a look in my system.?

PeteA

Share
10 |10000 characters needed characters left characters exceeded
Víctor García Dec 09, 2016 at 03:39 PM
0

Peter,

The test code looks something like this (I don't have the exact code because the calling is made from an external system)

* This code will create a new component in order XXXXXXXXXXXX activity 0010

s_method-refnumber = '000001'.

s_method-objecttype = 'COMPONENT'.

s_method-method = 'CREATE'.

s_method-objectkey = 'XXXXXXXXXXXX0010'.



APPEND s_method TO it_methods.



CLEAR s_method.

s_method-objecttype = 'ORDER'.

s_method-method = 'SAVE'.

s_method-objectkey = 'XXXXXXXXXXXX'.



APPEND s_method TO it_methods.



s_component-material = 'SOME_MATERIAL'.

s_component-item_cat = 'L'.

s_component-requirement_quatity = 1.

s_component-requirement_quatity = 'ST'.



APPEND s_component TO it_component.



s_component_update-material = 'X'.

s_component_update-item_cat = 'X'.

s_component_update-requirement_quatity = 'X'.

s_component_update-requirement_quatity = 'X'.



APPEND s_component_update TO it_component_up.





CALL FUNCTION 'BAPI_ALM_ORDER_MAINTAIN'

  TABLES

    it_methods      = it_methods

    it_component    = it_component

    it_component_up = it_component_up

    return          = it_return.

* Check return



* Here IT_COMPONENT should provide the values for RESERV_NO and RES_ITEM



CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

  EXPORTING

    wait   = 'X'

  IMPORTING

    return = it_return.

* Check return
Share
10 |10000 characters needed characters left characters exceeded
Víctor García Dec 19, 2016 at 03:57 PM
0

Hi Peter,

Thank you for your answer.

Reading table (SAPLCOBC)BT_RESB[] implies that the field must exist in the ABAP stack and therefore the program SAPLCOBC must be in the stack too. So your suggestion only works if I read the field from a point inside BAPI_ALM_ORDER_MANTAIN (exit or BAdI) where program SAPLCOBC exists in the ABAP stack.

It's an unorthodox approach but I think there is no other way to get the values.

:(

Share
10 |10000 characters needed characters left characters exceeded