我打电话给 BAPI BAPI_SALESORDER_CHANGE 以更新销售订单,并且需要在商品级别更改edatu,BAPI的返回是销售订单已更改,但未进行任何更改。
我在调用BAPI BAPI BAPI_SALESORDER_CHANGE 后提交,但是更改不会影响数据库。
ls_header_x-updateflag = 'U'.
assign ls_schdl to <schdl>.
assign ls_schdlx to <schdlx>.
assign ls_items to <items2>.
assign ls_itemsx to <items2x>.
<schdl>-itm_number = '000010'.
<schdlx>-itm_number = '000010'.
<schdl>-sched_line = '0001'.
<schdlx>-sched_line = '0001'.
<items2>-itm_number = '000010'.
<items2x>-itm_number = '000010'.
<schdlx>-itm_number = '000010'.
<schdl>-dlv_date = '20181111'.
append <schdl> to lt_schdl.
<schdlx>-dlv_date = 'U'.
<schdlx>-updateflag = 'U'.
append <schdlx> to lt_schdlx.
<items2x>-updateflag = 'U'.
append <items2> to lt_items.
append <items2x> to lt_itemsx.
*update the data
call function 'BAPI_SALESORDER_CHANGE'
exporting
salesdocument = p_vbeln
order_header_inx = ls_header_x
tables
order_item_in = lt_items
order_item_inx = lt_itemsx
return = lt_return
schedule_lines = lt_schdl
schedule_linesx = lt_schdlx.
read table lt_return assigning <return> with key type = 'E'.
if sy-subrc ne 0.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'
importing
return = ls_return.
endif.
答案 0 :(得分:1)
您需要用'X'填充order_item_inx和schedule_linesx项目字段。其他值将被忽略。