Delivery Bapi
Delivery Bapi
ws_delivery_update.
*"----------------------------------------------------------------------
*"*"Global Interface:
*" IMPORTING
*" VALUE(VBKOK_WA) LIKE VBKOK STRUCTURE VBKOK
*" VALUE(SYNCHRON) LIKE RVSEL-XFELD DEFAULT ' '
*" VALUE(NO_MESSAGES_UPDATE) LIKE RVSEL-XFELD DEFAULT SPACE
*" VALUE(COMMIT) LIKE RVSEL-XFELD DEFAULT SPACE
*" VALUE(DELIVERY) LIKE LIKP-VBELN
*" VALUE(UPDATE_PICKING) LIKE RVSEL-XFELD DEFAULT SPACE
*" VALUE(NICHT_SPERREN) LIKE RVSEL-NO_SP DEFAULT ' '
*" VALUE(IF_CONFIRM_CENTRAL) LIKE RVSEL-XFELD DEFAULT SPACE
*" VALUE(IF_WMPP) LIKE RVSEL-XFELD DEFAULT SPACE
*" VALUE(IF_GET_DELIVERY_BUFFERED) TYPE RVSEL-XFELD DEFAULT SPACE
*" VALUE(IF_NO_GENERIC_SYSTEM_SERVICE) LIKE RVSEL-XFELD DEFAULT
*" SPACE
*" VALUE(IF_DATABASE_UPDATE) TYPE LESHP_DATABASE_UPDATE DEFAULT
*" '1'
*" VALUE(IF_NO_INIT) TYPE XFELD DEFAULT SPACE
*" VALUE(IF_NO_READ) TYPE XFELD DEFAULT SPACE
*" VALUE(IF_ERROR_MESSAGES_SEND_0) TYPE XFELD DEFAULT 'X'
*" VALUE(IF_NO_BUFFER_REFRESH) TYPE V50AGL_NO_BUFFER_REFRESH
*" DEFAULT SPACE
*" VALUE(IT_PARTNER_UPDATE) TYPE SHP_PARTNER_UPDATE_T OPTIONAL
*" VALUE(IT_SERNR_UPDATE) TYPE SHP_SERNR_UPDATE_T OPTIONAL
*" VALUE(IF_NO_REMOTE_CHG) LIKE RVSEL-XFELD DEFAULT ' '
*" VALUE(IF_NO_MES_UPD_PACK) TYPE V50AGL_NO_MES_UPD_PACK DEFAULT
*" SPACE
*" VALUE(IF_LATE_DELIVERY_UPD) TYPE XFELD DEFAULT SPACE
*" EXPORTING
*" VALUE(EF_ERROR_ANY_0) TYPE XFELD
*" VALUE(EF_ERROR_IN_ITEM_DELETION_0) TYPE XFELD
*" VALUE(EF_ERROR_IN_POD_UPDATE_0) TYPE XFELD
*" VALUE(EF_ERROR_IN_INTERFACE_0) TYPE XFELD
*" VALUE(EF_ERROR_IN_GOODS_ISSUE_0) TYPE XFELD
*" VALUE(EF_ERROR_IN_FINAL_CHECK_0) TYPE XFELD
*" VALUE(EF_ERROR_PARTNER_UPDATE) TYPE XFELD
*" VALUE(EF_ERROR_SERNR_UPDATE) TYPE XFELD
*" TABLES
*" VBPOK_TAB STRUCTURE VBPOK OPTIONAL
*" PROT STRUCTURE PROTT OPTIONAL
*" VERKO_TAB STRUCTURE VERKO OPTIONAL
*" VERPO_TAB STRUCTURE VERPO OPTIONAL
*" VBSUPCON_TAB STRUCTURE VBSUPCON OPTIONAL
*" IT_VERPO_SERNR STRUCTURE HUM_VERPO_SERNR OPTIONAL
*" IT_PACKING STRUCTURE REPACK_HU_WM OPTIONAL
*" IT_PACKING_SERNR STRUCTURE HUM_REP_SERNR OPTIONAL
*" IT_REPACK STRUCTURE HUM_REPACK OPTIONAL
*" IT_HANDLING_UNITS STRUCTURE HUM_REHANG_HU OPTIONAL
*" IT_OBJECTS STRUCTURE PGR_OBJECTS OPTIONAL
*" ET_CREATED_HUS STRUCTURE VEKPVB OPTIONAL
*" TVPOD_TAB STRUCTURE TVPODVB OPTIONAL
*" IT_TMSTMP TYPE /SPE/TIMESTAMP_T OPTIONAL
*" IT_BAPIADDR1 STRUCTURE BAPIADDR1 OPTIONAL
*" IT_TEXTL STRUCTURE TEXTL_GN OPTIONAL
*" IT_TEXTH STRUCTURE TEXTH_GN OPTIONAL
*" IT_AAC_ITEM_BLOCK TYPE /SPE/BAPIDLVCOBLITEM_T OPTIONAL
*" IT_HU_HEADER_EPC STRUCTURE /SPE/HU_HEADER_EPC OPTIONAL
*" IT_HU_ITEMS_EPC STRUCTURE /SPE/HU_ITEMS_EPC OPTIONAL
*" SERNR_TAB STRUCTURE VLSER OPTIONAL
*" IT_HURES TYPE ISAUTO_VERPO_HURES_T OPTIONAL
*"----------------------------------------------------------------------
ENHANCEMENT-SECTION WS_DELIVERY_UPDATE_01 SPOTS ES_SAPLV50L.
*Begin Application component: IS-A-GR, Switch: AM_GR , Switch description: G
oods Receipt
data: lt_pabasn type pabasn occurs 1,
ls_objects like line of it_objects,
ls_pabasn type pabasn.
IF SYST-CPROG = 'WS_MONITOR_INB_DEL_GDRC' "1949804
AND vbkok_wa-wabuc = 'X'
AND it_objects[] is initial.
select * from pabasn into table lt_pabasn
where vbeln = vbkok_wa-VBELN_VL.
loop at lt_pabasn into ls_pabasn.
CLEAR ls_objects.
ls_objects-objtyp = '2'.
ls_objects-objkey = ls_pabasn-pabnum.
ls_objects-objpos = ls_pabasn-pabpos.
ls_objects-vbeln = ls_pabasn-vbeln.
ls_objects-posnr = ls_pabasn-posnr.
APPEND ls_objects TO it_objects.
endloop.
ENDIF.
CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
EXPORTING
vbkok_wa = vbkok_wa
synchron = synchron
no_messages_update_1 = no_messages_update
commit = commit
delivery = delivery
update_picking = update_picking
nicht_sperren_1 = nicht_sperren
if_confirm_central = if_confirm_central
if_wmpp = if_wmpp
if_get_delivery_buffered = if_get_delivery_buffered
if_no_buffer_refresh = if_no_buffer_refresh
if_no_mes_upd_pack = if_no_mes_upd_pack "n_526239
if_no_generic_system_service = if_no_generic_system_service
if_database_update_1 = if_database_update
if_no_init_1 = if_no_init
if_no_read_1 = if_no_read
if_error_messages_send = if_error_messages_send_0
if_no_remote_chg_1 = if_no_remote_chg
it_partner_update = it_partner_update
it_sernr_update = it_sernr_update
IF_LATE_DELIVERY_UPD = IF_LATE_DELIVERY_UPD "439448
IMPORTING
ef_error_any = ef_error_any_0
ef_error_in_item_deletion = ef_error_in_item_deletion_0
ef_error_in_pod_update = ef_error_in_pod_update_0
ef_error_in_interface = ef_error_in_interface_0
ef_error_in_goods_issue = ef_error_in_goods_issue_0
ef_error_in_final_check = ef_error_in_final_check_0
ef_error_partner_update = ef_error_partner_update
ef_error_sernr_update = ef_error_sernr_update
TABLES
vbpok_tab = vbpok_tab
prot = prot
verko_tab = verko_tab
verpo_tab = verpo_tab
vbsupcon_tab_1 = vbsupcon_tab
it_verpo_sernr = it_verpo_sernr
it_packing = it_packing
it_packing_sernr = it_packing_sernr
it_repack = it_repack
it_handling_units_1 = it_handling_units
it_hu_header_epc = it_hu_header_epc "standard code
it_hu_items_epc = it_hu_items_epc "standard code
tvpod_tab = tvpod_tab
it_objects = it_objects
it_tmstmp = it_tmstmp
et_created_hus = et_created_hus
it_bapiaddr1 = it_bapiaddr1 "n_1158644
IT_AAC_ITEM_BLOCK = IT_AAC_ITEM_BLOCK "1517205
it_texth = it_texth[]
it_textl = it_textl[]
*MW START Änderung
sernr_tab = sernr_tab
it_hures = it_hures.
*MW ENDE Änderung
IF SYST-CPROG = 'WS_MONITOR_INB_DEL_GDRC' "1949804
AND vbkok_wa-wabuc = 'X'.
refresh it_objects[].
ENDIF.
* Update shipment status after a GR. "1484420
IF vbkok_wa-vbtyp_vl = IF_SD_DOC_CATEGORY=>DELIVERY_SHIPPING_NOTIF "sdi
mp dl i077072 '7'
AND vbkok_wa-wabuc = 'X'
AND ef_error_any_0 is initial
AND ef_error_in_goods_issue_0 is initial.
data: l_is_vbeln type BORGR_VBELN_DET.
l_is_vbeln-vbeln = vbkok_wa-vbeln.
l_is_vbeln-wbstk = 'C'.
l_is_vbeln-imwrk = 'X'. "1503979
CALL FUNCTION 'BORGR_SET_SHIPMENT_STATUS'
EXPORTING
is_vbeln = l_is_vbeln
EXCEPTIONS
OTHERS = 1.
ENDIF.
*End Application component: IS-A-GR, Switch: AM_GR , Switch description: Goo
ds Receipt
END-ENHANCEMENT-SECTION.
*$*$-Start: WS_DELIVERY_UPDATE_01--------------------------------------------
-------------------$*$*
ENHANCEMENT 1 ISOIL_OIG_SAPLV50L_I_1. "active version
clear g_convflg.
CALL FUNCTION 'WS_DELIVERY_UPDATE_2'
EXPORTING
vbkok_wa = vbkok_wa
synchron = synchron
no_messages_update_1 = no_messages_update
commit = commit
delivery = delivery
update_picking = update_picking
nicht_sperren_1 = nicht_sperren
if_confirm_central = if_confirm_central
if_wmpp = if_wmpp
if_get_delivery_buffered = if_get_delivery_buffered
if_no_buffer_refresh = if_no_buffer_refresh
if_no_mes_upd_pack = if_no_mes_upd_pack "n_526239
if_no_generic_system_service = if_no_generic_system_service
if_database_update_1 = if_database_update
if_no_init_1 = if_no_init
if_no_read_1 = if_no_read
if_error_messages_send = if_error_messages_send_0
if_no_remote_chg_1 = if_no_remote_chg
it_partner_update = it_partner_update
it_sernr_update = it_sernr_update
IF_LATE_DELIVERY_UPD = IF_LATE_DELIVERY_UPD "439448
G_SHPMT_AUFRUFER = G_SHPMT_AUFRUFER "n 1424550
IMPORTING
ef_error_any = ef_error_any_0
ef_error_in_item_deletion = ef_error_in_item_deletion_0
ef_error_in_pod_update = ef_error_in_pod_update_0
ef_error_in_interface = ef_error_in_interface_0
ef_error_in_goods_issue = ef_error_in_goods_issue_0
ef_error_in_final_check = ef_error_in_final_check_0
ef_error_partner_update = ef_error_partner_update
ef_error_sernr_update = ef_error_sernr_update
TABLES
vbpok_tab = vbpok_tab
prot = prot
verko_tab = verko_tab
verpo_tab = verpo_tab
vbsupcon_tab_1 = vbsupcon_tab
it_verpo_sernr = it_verpo_sernr
it_packing = it_packing
it_packing_sernr = it_packing_sernr
it_repack = it_repack
it_handling_units_1 = it_handling_units
it_hu_header_epc = it_hu_header_epc
it_hu_items_epc = it_hu_items_epc
tvpod_tab = tvpod_tab
it_objects = it_objects
it_tmstmp = it_tmstmp
et_created_hus = et_created_hus
it_bapiaddr1 = it_bapiaddr1 "n_1031533
IT_AAC_ITEM_BLOCK = IT_AAC_ITEM_BLOCK
it_texth = it_texth[]
it_textl = it_textl[]
.
ENDENHANCEMENT.
*$*$-End: WS_DELIVERY_UPDATE_01--------------------------------------------
-------------------$*$*
ENHANCEMENT-POINT WS_DELIVERY_UPDATE_02 SPOTS ES_SAPLV50L .
*$*$-Start: WS_DELIVERY_UPDATE_02--------------------------------------------
-------------------$*$*
ENHANCEMENT 1 ISOIL_OIG_SAPLV50L_I_2. "active version
export ' ' to memory id 'OIG_WS_DLV_UPD'. "n 1424550
ENDENHANCEMENT.
*$*$-End: WS_DELIVERY_UPDATE_02--------------------------------------------
-------------------$*$*
*
*
*DATA:
* LF_GEWVOL
*, LF_SUBRC TYPE SYSUBRC
*.
** Initialisierung
* PICKINGUPDATE = UPDATE_PICKING.
* PERFORM INIT.
* LIKP-VBELN = DELIVERY.
* IF LIKP-VBELN IS INITIAL.
* LIKP-VBELN = VBKOK_WA-VBELN_VL.
* ENDIF.
*
** Lieferung Lesen
* PERFORM DELIVERY_READ.
*
** Lieferungskopfbearbeitung vorbereiten und
** allgemeine Kopffelder ändern, die für Positionsbearbeitung
** relevant sein können
* PERFORM DELIVERY_UPDATE_HEADER.
*
** Status korrekt bei POD-Rückmeldung ?
* if vbkok_wa-kzpod = 'B'.
* if vbuk-wbstk <> 'C' or vbuk-pdstk <> 'A'.
* perform protokoll_add_item_vl730e.
* check 1 = 2.
* endif.
* endif.
*
** Lieferung löschen
* IF VBKOK_WA-LIKP_DEL NE SPACE.
* PERFORM BELEG_LOESCHEN(SAPMV50A).
* ELSE.
*
** Löschen Positionen
* PERFORM DELIVERY_ITEMS_DELETE CHANGING LF_SUBRC.
* CHECK LF_SUBRC = 0.
*
** POD - Proof of delivery
* if not vbkok_wa-kzpod is initial and vbuk-pdstk ca 'AB'.
* perform delivery_pod_update changing lf_subrc.
* check lf_subrc = 0.
* endif.
*
** Konsistenz-Prüfungen und vervollständigen der Schnittstelle
* PERFORM VBPOK_INTERFACE_CHECK CHANGING LF_GEWVOL LF_SUBRC.
* CHECK LF_SUBRC = 0.
*
** Positionsupdate direkt positionsweise oder über Kommissionierflüsse
* IF PICKINGUPDATE = SPACE.
** ohne Kommissionierfluß
* PERFORM DELIVERY_UPDATE_ITEM USING LF_GEWVOL.
* ELSE.
** über Kommissionierfluß
* PERFORM DELIVERY_UPDATE_PICKING USING LF_GEWVOL.
* ENDIF.
*
** Verpackungsrückmeldung
* PERFORM DELIVERY_UPDATE_PACKING.
*
** Gewicht und Volumen ändern
* IF VBKOK_WA-KZBRG NE SPACE OR
* VBKOK_WA-KZNTG NE SPACE OR
* VBKOK_WA-KZVOL NE SPACE.
* PERFORM DELIVERY_UPDATE_HEADER_WEIGHT.
* ENDIF.
*
** Post Goods Issue
* PERFORM POST_GOODS_ISSUE.
** Lieferung sichern
* PERFORM DELIVERY_SAVE.
* ENDIF.
*
** Protokoll aufbereiten
* PERFORM PROTOKOLL_GOODS_ISSUE_ADD.
*
** Commit nur, wenn der Aufrufer dies explizit mitgibt
* IF COMMIT = 'X'. COMMIT WORK. ENDIF.
ENDFUNCTION.