ABAP-删除交货单
FUNCTION zsd_fm_45.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_VBELN_DN) LIKE LIKP-VBELN
*" EXPORTING
*" VALUE(STATUS) TYPE C
*" VALUE(MESSAGE) TYPE CHAR200
*"----------------------------------------------------------------------
DATA:lv_delivery LIKE bapiobdlvhdrchg-deliv_numb,
ls_header_data LIKE bapiobdlvhdrchg,
ls_header_control LIKE bapiobdlvhdrctrlchg.
DATA:lt_return LIKE TABLE OF bapiret2.
DATA:ls_return LIKE LINE OF lt_return.
DATA: ls_re TYPE bapireturn.
CLEAR ls_header_data.
CLEAR ls_header_control.
CLEAR lv_delivery.
CLEAR lt_return[].
ls_header_data-deliv_numb = i_vbeln_dn.
ls_header_control-deliv_numb = i_vbeln_dn.
ls_header_control-dlv_del = 'X'.
lv_delivery = i_vbeln_dn.
"Deleting delivery doc (VL02)
CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
EXPORTING
header_data = ls_header_data
header_control = ls_header_control
delivery = lv_delivery
TABLES
return = lt_return.
READ TABLE lt_return INTO ls_return WITH KEY type = 'E'.
IF sy-subrc NE 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
status = 'S'.
message = '删除成功'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' .
status = 'E'.
CLEAR ls_re.
CALL FUNCTION 'BALW_BAPIRETURN_GET'
EXPORTING
type = 'E'
cl = ls_return-id
number = ls_return-number
* PAR1 = ' '
* PAR2 = ' '
* PAR3 = ' '
* PAR4 = ' '
* LOG_NO = ' '
* LOG_MSG_NO = ' '
IMPORTING
bapireturn = ls_re
* EXCEPTIONS
* ONLY_2_CHAR_FOR_MESSAGE_ID = 1
* OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
message = ls_re-message.
* message = '冲销失败:'&& ls_return-message.
ENDIF.
ENDFUNCTION.