删除外向交货单 BAPI_OUTB_DE…

来源:互联网 发布:java 计算时间的差 编辑:程序博客网 时间:2024/05/22 08:11
删除外向交货单是没有直接以delete结尾的bapi的,是使用的change:BAPI_OUTB_DELIVERY_CHANGE

已经过账的交货单应该是先冲销,再删除,这里暂时不写了。
仅考虑没过帐的交货单。

一般而言,做删除操作都是打删除标记,
但是交货单(未过账)的是直接物理删除(前台和bapi同样是物理删除)。

删除的参考代码:
【原URL地址:https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=79954245】

Change outbound delivery(VL02)
 To delete the outbound delivery pass VBRP-VGBEL(Document number of the reference document) to the function module& set dlv_del flag 'X'. To check the functionality of thefunction module go to ME23N transaction, pass the purchase ordernumber. After successfully execution of function module it willdelete the delivery from ME23N transaction.
 *---declaration of BAPI
   DATA:wa_hdata    LIKEbapiobdlvhdrchg,
        wa_hcont    LIKEbapiobdlvhdrctrlchg,
        d_delivy    LIKEbapiobdlvhdrchg-deliv_numb,
        it_bapiret2 LIKE bapiret2 OCCURS 0 WITH HEADERLINE.
 Loop at it_vbrp.
CLEAR: wa_hdata, wa_hcont, d_delivy, it_bapiret2.
    wa_hdata-deliv_numb = it_vbrp-vgbel.
    wa_hcont-deliv_numb = it_vbrp-vgbel.
    wa_hcont-dlv_del   = c_x.
    d_delivy           = it_vbrp-vgbel.
*---Deleting delivery doc (VL02)
    CALL FUNCTION 'BAPI_OUTB_DELIVERY_CHANGE'
      EXPORTING
        header_data    =wa_hdata
        header_control = wa_hcont
        delivery      =d_delivy
      TABLES
        return        = it_bapiret2.
 *---commit
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
Endloop.

最后感谢好友 彭 提供的参考代码。


0 0