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: 

Function Module BAPI_SALESORDER_CHANGE

Former Member
0 Kudos

Hi,

I have used function BAPI_SALESORDER_CHANGE to change the values of Item-level Billing block and Schedule line deleivery block in 'VA02' . Even though , I get the RETURN parameters as successful, the required values are not getting changed. What possibly could be the reason. Iam pasting the code, please correct me...!

tables: vbak, vbap, vbep.

data: soheader like bapisdh1,

soheaderx like bapisdh1x.

data: it_item type table of bapisditm,

wa_item like line of it_item.

data: it_itemx type table of bapisditmx,

wa_itemx like line of it_itemx.

data: it_schedule type table of bapischdl,

wa_schedule like line of it_schedule.

data: it_schedulex type table of bapischdlx,

wa_schedulex like line of it_schedulex.

data: it_return type table of bapiret2,

wa_return like line of it_return.

data: it_vbap type table of vbap,

wa_vbap like line of it_vbap.

data: it_vbep type table of vbep,

wa_vbep like line of it_vbep.

data: zreturn like bapiret2.

select-options: salesdoc for vbak-VBELN no intervals no-extension obligatory.

select * from vbap into table it_vbap where vbeln eq salesdoc-low and faksp eq '69'. "Some XYZ Block

if it_vbap[] is not initial.

select * from vbep into table it_vbep for all entries in it_vbap where vbeln eq salesdoc-low and posnr eq it_vbap-posnr.

endif.

loop at it_vbap into wa_vbap.

wa_itemx-updateflag = 'U'.

wa_item-itm_number = wa_vbap-posnr.

wa_itemx-itm_number = wa_vbap-posnr.

wa_item-material = wa_vbap-matnr.

wa_itemx-material = 'X'.

wa_item-bill_block = ' '.

wa_itemx-bill_block = 'X'.

append wa_item to it_item.

append wa_itemx to it_itemx.

endloop.

loop at it_vbep into wa_vbep.

wa_schedulex-updateflag = 'U'.

wa_schedule-itm_number = wa_vbep-posnr.

wa_schedulex-itm_number = wa_vbep-posnr.

wa_schedule-sched_line = wa_vbep-etenr.

wa_schedulex-sched_line = wa_vbep-etenr.

wa_schedule-req_dlv_bl = ' '.

wa_schedulex-req_dlv_bl = 'X'.

append wa_schedule to it_schedule.

append wa_schedulex to it_schedulex.

endloop.

soheaderx-updateflag = 'U'.

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

SALESDOCUMENT = salesdoc-low

ORDER_HEADER_IN = soheader

ORDER_HEADER_INX = soheaderx

  • SIMULATION =

  • BEHAVE_WHEN_ERROR = ' '

  • INT_NUMBER_ASSIGNMENT = ' '

  • LOGIC_SWITCH =

TABLES

RETURN = it_return

ORDER_ITEM_IN = it_item

ORDER_ITEM_INX = it_itemx

  • PARTNERS =

  • PARTNERCHANGES =

  • PARTNERADDRESSES =

  • ORDER_CFGS_REF =

  • ORDER_CFGS_INST =

  • ORDER_CFGS_PART_OF =

  • ORDER_CFGS_VALUE =

  • ORDER_CFGS_BLOB =

  • ORDER_CFGS_VK =

  • ORDER_CFGS_REFINST =

SCHEDULE_LINES = it_schedule

SCHEDULE_LINESX = it_schedulex

  • ORDER_TEXT =

  • ORDER_KEYS =

  • CONDITIONS_IN =

  • CONDITIONS_INX =

  • EXTENSIONIN =

.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.

.

Thanks,

Shivaa...

2 REPLIES 2

Former Member
0 Kudos

instead of using the bapi to comitt work, just do a...


COMMIT WORK AND WAIT.

Former Member
0 Kudos

CALL FUNCTION 'BAPI_SALESORDER_CHANGE'

EXPORTING

salesdocument = p_vbeln

order_header_in = s_order_header_in

order_header_inx = s_order_header_inx

behave_when_error = 'P'

TABLES

return = it_return

order_item_in = i_order_item_in

order_item_inx = i_order_item_inx

schedule_lines = i_sched

schedule_linesx = i_schedx.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'.

LOOP AT it_return.

WRITE / it_return-message.

ENDLOOP.