交货单过账
BAPI_OUTB_DELIVERY_CONFIRM_DEC 会有冲销不掉的问题,具体可以查看:
外向交货单发货过账BAPI:BAPI_OUTB_DELIVERY_CONFIRM_DEC
一般使用WS_DELIVERY_UPDATE
DEMO比较简单:
*&---------------------------------------------------------------------*
*& Report ZDEMO_VL02N_POST
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZDEMO_VL02N_POST.
TABLES:likp,lips.
PARAMETERS:p_vbeln TYPE vbeln_vl.
DATA:lt_likp TYPE TABLE OF likp.
DATA:ls_likp LIKE LINE OF lt_likp.
DATA:lt_lips LIKE TABLE OF lips.
DATA:ls_lips LIKE LINE OF lt_lips.
DATA:ls_vbkok TYPE vbkok.
DATA:lt_vbpok_tab TYPE TABLE OF vbpok .
DATA lt_prot LIKE TABLE OF prott .
DATA:ls_vbpok_tab LIKE LINE OF lt_vbpok_tab.
DATA ls_prot LIKE LINE OF lt_prot.
*& get delivery data
SELECT SINGLE * INTO ls_likp FROM likp
WHERE vbeln = p_vbeln.
SELECT * INTO TABLE lt_lips FROM lips
WHERE vbeln = p_vbeln.
CLEAR ls_vbkok.
ls_vbkok-vbeln_vl = ls_likp-vbeln.
ls_vbkok-wabuc = 'X'.
ls_vbkok-wadat_ist = ls_likp-bldat.
CLEAR ls_lips.
CLEAR lt_vbpok_tab[].
CLEAR ls_vbpok_tab.
LOOP AT lt_lips INTO ls_lips..
ls_vbpok_tab-vbeln_vl = ls_lips-vbeln. "Delivery number
ls_vbpok_tab-posnr_vl = ls_lips-posnr.
ls_vbpok_tab-vbeln = ls_lips-vgbel . "SO
ls_vbpok_tab-posnn = ls_lips-vgpos.
ls_vbpok_tab-matnr = ls_lips-matnr.
ls_vbpok_tab-pikmg = ls_lips-lfimg .
APPEND ls_vbpok_tab TO lt_vbpok_tab.
CLEAR ls_lips.
CLEAR ls_vbpok_tab.
ENDLOOP.
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
vbkok_wa = ls_vbkok
* SYNCHRON = ' '
* NO_MESSAGES_UPDATE = ' '
* COMMIT = ' '
delivery = p_vbeln
update_picking = 'X'
* NICHT_SPERREN = ' '
* IF_CONFIRM_CENTRAL = ' '
* IF_WMPP = ' '
* IF_GET_DELIVERY_BUFFERED = ' '
* IF_NO_GENERIC_SYSTEM_SERVICE = ' '
* IF_DATABASE_UPDATE = '1'
* IF_NO_INIT = ' '
* IF_NO_READ = ' '
* IF_ERROR_MESSAGES_SEND_0 = 'X'
* IF_NO_BUFFER_REFRESH = ' '
* IT_PARTNER_UPDATE =
* IT_SERNR_UPDATE =
* IF_NO_REMOTE_CHG = ' '
* IF_NO_MES_UPD_PACK = ' '
* IF_LATE_DELIVERY_UPD = ' '
* IMPORTING
* EF_ERROR_ANY_0 =
* EF_ERROR_IN_ITEM_DELETION_0 =
* EF_ERROR_IN_POD_UPDATE_0 =
* EF_ERROR_IN_INTERFACE_0 =
* EF_ERROR_IN_GOODS_ISSUE_0 =
* EF_ERROR_IN_FINAL_CHECK_0 =
* EF_ERROR_PARTNER_UPDATE =
* EF_ERROR_SERNR_UPDATE =
TABLES
vbpok_tab = lt_vbpok_tab
prot = lt_prot
* VERKO_TAB =
* VERPO_TAB =
* VBSUPCON_TAB =
* IT_VERPO_SERNR =
* IT_PACKING =
* IT_PACKING_SERNR =
* IT_REPACK =
* IT_HANDLING_UNITS =
* IT_OBJECTS =
* ET_CREATED_HUS =
* TVPOD_TAB =
* IT_TMSTMP =
* IT_BAPIADDR1 =
* IT_TEXTL =
* IT_TEXTH =
* IT_AAC_ITEM_BLOCK =
* IT_HU_HEADER_EPC =
* IT_HU_ITEMS_EPC =
* SERNR_TAB =
* IT_HURES =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.