BAPI_SALESORDER_CHANGE不进行更改

时间:2018-11-03 03:55:47

标签: abap

我打电话给 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.

1 个答案:

答案 0 :(得分:1)

您需要用'X'填充order_item_inx和schedule_linesx项目字段。其他值将被忽略。