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.