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

BAPI_SALESORDER_CHANGE

Former Member
0 Likes
1,172

Hi Experts,

In a program, I'm using 'BAPI_SALESORDER_CHANGE' to change a Sales Order.

I have used 'BAPI_TRANSACTION_COMMIT also to commit the transaction.

But when I go and look into the Sales Order, I did not see the changes.

Can anybody help me what went wrong?

Thanks a lot.

The log I got after I ran the ''BAPI_SALESORDER_CHANGE' is:

3 Entries

T ID NUM MESSAGE

S V4 233 ORDER_HEADER_IN has been processed successfully

S V4 233 ITEM_IN has been processed successfully

S V1 311 Sales document 0076065038 has been saved

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,110

Hi Sam

Sometimes there will be delay in update.

Hence in the 'BAPI_TRANSACTION_COMMIT try to use WAIT = 'X'

Regards

MD

Hi Experts,

In a program, I'm using 'BAPI_SALESORDER_CHANGE' to change a Sales Order.

I have used 'BAPI_TRANSACTION_COMMIT also to commit the transaction.

But when I go and look into the Sales Order, I did not see the changes.

Can anybody help me what went wrong?

Thanks a lot.

The log I got after I ran the ''BAPI_SALESORDER_CHANGE' is:

3 Entries

T ID NUM MESSAGE

S V4 233 ORDER_HEADER_IN has been processed successfully

S V4 233 ITEM_IN has been processed successfully

S V1 311 Sales document 0076065038 has been saved

5 REPLIES 5
Read only

Former Member
0 Likes
1,110

Check if all required parameters are populated correctly.

For help, try this link. It contains sample program with this BAPI use -

http://www.jt77.com/development1/programming-22536.html

Read only

Former Member
0 Likes
1,111

Hi Sam

Sometimes there will be delay in update.

Hence in the 'BAPI_TRANSACTION_COMMIT try to use WAIT = 'X'

Regards

MD

Read only

0 Likes
1,110

Hi,

Still that problem persists. Can you please have a look at my code and correct me?

Thanks.

REPORT ZVTEST24 NO STANDARD PAGE HEADING

LINE-SIZE 132

LINE-COUNT 65(0)

MESSAGE-ID ZM.

TABLES: VBAP, vbkd.

DATA: V_RECIN TYPE I,

V_RECVBAP TYPE I,

V_RECORDER TYPE I,

V_VBELN LIKE VBAP-VBELN,

i_ORDERHEADERINX LIKE BAPISDH1X.

DATA: BEGIN OF I_ORDERS OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

prsdt like vbkd-prsdt,

END OF I_ORDERS.

DATA: BEGIN OF i_ORDERITEMIN OCCURS 0.

INCLUDE STRUCTURE BAPISDITM.

DATA: END OF i_ORDERITEMIN.

DATA: BEGIN OF i_ORDERITEMINX OCCURS 0.

INCLUDE STRUCTURE BAPISDITMX.

DATA: END OF i_ORDERITEMINX.

DATA: BEGIN OF i_RETURN OCCURS 0.

INCLUDE STRUCTURE BAPIRET2.

DATA: END OF i_RETURN.

DATA: BEGIN OF i_BAPIRETURN OCCURS 0.

INCLUDE STRUCTURE BAPIRET2.

DATA: END OF i_BAPIRETURN.

*-- Selection Screen

PARAMETERS: p_vbeln like vbak-vbeln,

p_posnr like vbap-posnr,

p_date like vbkd-prsdt.

*-- Start-of-selection

START-OF-SELECTION.

select vbeln posnr prsdt from vbkd

into table i_orders

where vbeln = p_vbeln

and posnr = p_posnr.

if sy-subrc = 0.

loop at i_orders.

i_orders-prsdt = p_date.

modify i_orders index sy-tabix.

endloop.

endif.

*-- Sort and remove duplicates from i_orders

SORT I_ORDERS BY VBELN POSNR.

DELETE ADJACENT DUPLICATES FROM I_ORDERS.

*-- Populate Bapi and Run Bapi Data

CLEAR: i_orderheaderinx, i_orderitemin, i_orderiteminx,

i_return, i_bapireturn.

REFRESH: i_orderitemin, i_orderiteminx, i_return, i_bapireturn.

i_orderheaderinx-updateflag = 'U'.

LOOP AT I_ORDERS.

i_ORDERITEMIN-ITM_NUMBER = I_ORDERS-POSNR.

i_orderitemin-price_date = i_orders-prsdt.

APPEND i_ORDERITEMIN.

i_ORDERITEMINX-ITM_NUMBER = I_ORDERS-POSNR.

i_ORDERITEMINX-UPDATEFLAG = 'U'.

APPEND i_ORDERITEMINX.

IF NOT i_orderitemin IS INITIAL.

V_RECORDER = V_RECORDER + 1.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = I_ORDERS-VBELN

ORDER_HEADER_INX = i_orderheaderinx

TABLES

RETURN = i_return

ORDER_ITEM_IN = i_orderitemin

ORDER_ITEM_INX = i_orderiteminx.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

WAIT = 'X'

IMPORTING

RETURN = i_bapireturn.

ENDIF.

ENDLOOP.

*-- Write out return

LOOP AT i_return.

WRITE: / i_return.

ENDLOOP.

WRITE: / i_bapireturn.

SKIP.

*-- Write out record count from file

WRITE: / 'RECORD COUNT FROM FILE ', V_RECIN.

SKIP.

*-- Write out record count from file

WRITE: / 'RECORD COUNT OF LINES TO CHANGE ', V_RECVBAP.

SKIP.

*-- Write out record count from file

WRITE: / 'RECORD COUNT OF ORDERS TO CHANGE ', V_RECORDER.

SKIP.

Read only

0 Likes
1,110

You also need to populate parameter ORDER_HEADER_IN.

Try adding this and see. Also check if DATE format is correct.

Read only

0 Likes
1,110

I guess u r missing to pass some flag I suggest u to check where used list with the FM and check what u r not passing...