ABAP 删除销售单
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.