BAPI_SALESORDER_CHANGE does not make changes

7.2k views Asked by At

I am call BAPI BAPI_SALESORDER_CHANGE to update sales order and need to changed the edatu at item level, the return of the BAPI is that the sales order is changed but no changes are made.

i am committing after calling the BAPI BAPI BAPI_SALESORDER_CHANGE but changes are not impacting in the database.

 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

There are 1 answers

0
mkysoft On BEST ANSWER

You need to fill order_item_inx and schedule_linesx item fields with 'X'. Other values ignored.