REPORT ZTEST72.
PARAMETERS:p_vbeln TYPE vbeln OBLIGATORY.
START-OF-SELECTION.
DATA: ls_so_headerx TYPE bapisdh1x ,
ls_dn_header TYPE bapiobdlvhdrchg ,
ls_dn_hcont TYPE bapiobdlvhdrctrlchg ,
lt_return TYPE STANDARD TABLE OF bapiret2,
ls_return TYPE bapiret2,
ov_msg TYPE char200.
SELECT COUNT(*) FROM VBAK WHERE vbeln = p_vbeln.
IF SY-SUBRC = 0.
CLEAR :ls_so_headerx,lt_return .
ls_so_headerx-updateflag = 'D'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = p_vbeln
order_header_inx = ls_so_headerx
TABLES
return = lt_return.
READ TABLE lt_return INTO ls_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT lt_return INTO ls_return WHERE type = 'E'.
CONCATENATE ls_return-message ov_msg INTO ov_msg SEPARATED BY '/'.
ENDLOOP.
ELSE.
READ TABLE lt_return INTO ls_return TRANSPORTING NO FIELDS WITH KEY type = 'A'.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
LOOP AT lt_return INTO ls_return WHERE type = 'A'.
CONCATENATE ls_return-message ov_msg INTO ov_msg SEPARATED BY '/'.
ENDLOOP.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ov_msg = '删除成功' .
ENDIF .
ENDIF .
ENDIF.