我调用BAPI BAPI_SALESORDER_CHANGE来更新销售订单,并且需要在项目级别更改edatu,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.发布于 2018-11-03 12:51:08
您需要用'X‘填充order_item_inx和schedule_linesx项字段。其他价值被忽略了。
https://stackoverflow.com/questions/53128271
复制相似问题