ABAP-删除销售订单
FUNCTION zsd_fm_036.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" REFERENCE(VBELN_IN) TYPE VBELN_VA
*" EXPORTING
*" REFERENCE(VBELN_OUT) TYPE VBELN_VA
*" REFERENCE(STATUS) TYPE CHAR1
*" REFERENCE(MSG) TYPE CHAR50
*"----------------------------------------------------------------------
DATA: ls_vbak TYPE vbak, lt_vbak TYPE TABLE OF vbak.
DATA: f_headinx LIKE bapisdh1x,
t_ret TYPE TABLE OF bapiret2,
l_ret TYPE bapiret2,
lv_vbeln TYPE bapivbeln-vbeln.
lv_vbeln = vbeln_in.
CLEAR: f_headinx .
IF lv_vbeln IS NOT INITIAL.
f_headinx-updateflag = 'D'.
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = lv_vbeln
order_header_inx = f_headinx
TABLES
return = t_ret.
READ TABLE t_ret INTO l_ret WITH KEY type = 'S'.
IF sy-subrc EQ 0.
COMMIT WORK AND WAIT .
ELSE.
ROLLBACK WORK .
ENDIF.
ENDIF.
SELECT SINGLE * INTO ls_vbak FROM vbak WHERE vbeln = lv_vbeln .
IF ls_vbak IS INITIAL.
vbeln_out = lv_vbeln.
status = 'S'.
msg = '删除成功!'.
ELSE.
vbeln_out = lv_vbeln.
status = 'E'.
LOOP AT t_ret INTO l_ret WHERE type EQ 'E'.
msg = msg && l_ret-message.
ENDLOOP.
ENDIF.
ENDFUNCTION.