SAP 删除销售订单行

DATA:
  ORDER_HEADER_INX    TYPE BAPISDH1X,
  GT_ORDER_ITEM_IN    TYPE STANDARD TABLE OF BAPISDITM,
  LS_ORDER_ITEM_IN    TYPE BAPISDITM,
  GT_ORDER_ITEM_INX   TYPE STANDARD TABLE OF BAPISDITMX,
  LS_ORDER_ITEM_INX   TYPE BAPISDITMX,
  GT_RETURN           TYPE STANDARD TABLE OF BAPIRET2,
  LS_RETURN           TYPE BAPIRET2,
  LV_ITM_NUMBER       TYPE BAPISDITM-ITM_NUMBER,
  LV_UPDATEFLAG       TYPE BAPISDITMX-UPDATEFLAG.


   LV_UPDATEFLAG = 'D'.
  ORDER_HEADER_INX-UPDATEFLAG = 'U'.

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'   "前缀补零
    EXPORTING
      INPUT  =  销售订单行号
    IMPORTING
      OUTPUT = LV_ITM_NUMBER.

  LS_ORDER_ITEM_IN-ITM_NUMBER   = LV_ITM_NUMBER.
  LS_ORDER_ITEM_INX-ITM_NUMBER  = LV_ITM_NUMBER.
  LS_ORDER_ITEM_INX-UPDATEFLAG  = LV_UPDATEFLAG.
  APPEND LS_ORDER_ITEM_IN   TO GT_ORDER_ITEM_IN.
  APPEND LS_ORDER_ITEM_INX  TO GT_ORDER_ITEM_INX.

  CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
    EXPORTING
      SALESDOCUMENT    = 销售订单号
      ORDER_HEADER_INX = ORDER_HEADER_INX
    TABLES
      RETURN           = GT_RETURN
      ORDER_ITEM_IN    = GT_ORDER_ITEM_IN
      ORDER_ITEM_INX   = GT_ORDER_ITEM_INX
      .
  READ TABLE GT_RETURN TRANSPORTING NO FIELDS WITH KEY TYPE = 'E'.
  IF SY-SUBRC = 0.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    EV_FLG = 'E'.
    LOOP AT GT_RETURN INTO LS_RETURN WHERE TYPE = 'E'.
      EV_MSG = |{ EV_MSG } { LS_RETURN-MESSAGE }|.
      CLEAR:LS_RETURN.
    ENDLOOP.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    EV_FLG = 'S'.
    EV_MSG = '删除成功'.
  ENDIF.

 

posted @ 2021-12-08 11:32  骑着蜗牛着世界  阅读(560)  评论(0编辑  收藏  举报