天天看點

SAP中銷售訂單隻修改訂單數量的BAPI是BAPI_SALESORDER_CHANGE

REPORT  z0304.
DATA: salesdocument    LIKE  bapivbeln-vbeln,
      order_header_in  LIKE  bapisdh1,
      order_header_inx LIKE  bapisdh1x,
      order_item_in    LIKE  bapisditm  OCCURS 0 WITH HEADER LINE,
      order_item_inx   LIKE  bapisditmx OCCURS 0 WITH HEADER LINE,
      return1          LIKE  bapiret2  OCCURS 0 WITH HEADER LINE,
      schedule_lines   LIKE  bapischdl  OCCURS 0 WITH HEADER LINE,
      schedule_linesx  LIKE  bapischdlx OCCURS 0 WITH HEADER LINE.
order_header_inx-updateflag = 'U'.
order_item_in-itm_number     =  '000010'."行項目
APPEND order_item_in.
order_item_inx-itm_number     = '000010'."行項目
order_item_inx-updateflag     =  'U'.
APPEND order_item_inx.
schedule_lines-itm_number =  '000010'."行項目
schedule_lines-sched_line = '0001'."計劃行,需要查詢以前的計劃行
schedule_lines-req_qty    = '10.22'."數量
APPEND schedule_lines.
schedule_linesx-itm_number =  '000010'."行項目
schedule_linesx-sched_line = '0001'."計劃行,需要查詢以前的計劃行
schedule_linesx-updateflag = 'U'.
schedule_linesx-req_qty    = 'X'.
APPEND schedule_linesx.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
  EXPORTING
    salesdocument    = '0000775350'"銷售訂單号
    order_header_inx = order_header_inx
  TABLES
    return           = return1
    order_item_in    = order_item_in
    order_item_inx   = order_item_inx
    schedule_lines   = schedule_lines
    schedule_linesx  = schedule_linesx.
READ TABLE return1 WITH KEY type = 'E'.
IF sy-subrc <> '0'.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  WRITE '修改成功!'.
ELSE.

  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  WRITE '修改失敗!'.
ENDIF.
           

繼續閱讀