Delivery Proxy Code
Delivery Proxy Code
ECC
save_and_publish_document
METHOD if_ex_le_shp_delivery_proc~save_and_publish_document.
************************************************************************
* Class Method name : IF_EX_LE_SHP_DELIVERY_PROC~ *
* SAVE_AND_PUBLISH_DOCUMENT *
* Online/Batch : ONLINE/BATCH *
* Date : 01/18/2018 *
* Transport no. : DEVK943253 *
* Description : WMS Integration - Fulfillment Order Interface *
* Trigger delivery proxy *
*----------------------------------------------------------------------*
* Changes (History) *
*----------------------------------------------------------------------*
* Date Name Transport no. Description *
*----------------------------------------------------------------------*
* 01/18/2018 Smita Patel DEVK943253 Initial Program *
************************************************************************
* Data declaration
TYPES:
BEGIN OF ty_vbkd,
zterm TYPE vbkd-zterm,
bstkd TYPE vbkd-bstkd,
bstdk TYPE bstdk,
END OF ty_vbkd.
TYPES:
BEGIN OF ty_vbak,
bname TYPE vbak-bname,
telf1 TYPE vbak-telf1,
END OF ty_vbak.
TYPES:
BEGIN OF ty_adrc,
kunnr TYPE kna1-kunnr,
addrnumber TYPE adrc-addrnumber,
name1 TYPE adrc-name1,
street TYPE adrc-street,
city1 TYPE adrc-city1,
region TYPE adrc-region,
post_code1 TYPE adrc-post_code1,
country TYPE adrc-country,
END OF ty_adrc.
TYPES:
tt_adrc TYPE STANDARD TABLE OF ty_adrc.
TYPES:
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln,
posnr TYPE vbap-posnr,
kwmeng TYPE vbap-kwmeng,
END OF ty_vbap,
BEGIN OF t_matnr,
matnr TYPE matnr,
END OF t_matnr.
TYPES:
tt_vbap TYPE STANDARD TABLE OF ty_vbap.
* STO Orders
DATA: l_menge TYPE bstmg,
l_zbom_exist TYPE char01,
lt_svc_matnr TYPE SORTED TABLE OF t_matnr WITH UNIQUE KEY matnr.
SELECT SINGLE
bname
telf1
INTO ls_vbak
FROM vbak
WHERE vbeln = ls_xlips-vgbel.
ls_header-payment_terms_code = ls_vbkd-zterm.
ls_header-shipment_terms_code = ls_xlikp-inco1.
ls_header-carrier_code = ls_xlikp-vsart.
ls_header-customer_ponumber = ls_vbkd-bstkd.
ls_header-date_promised = ls_vbkd-bstdk. " Customer expected date.
READ TABLE it_xvbpa INTO ls_xvbpa_ag WITH KEY parvw = 'AG'. "Sold To
READ TABLE it_xvbpa INTO ls_xvbpa_we WITH KEY parvw = 'WE'. "Ship To
ls_header-contact_name = ls_vbak-bname.
ls_header-contact_phone_number = ls_vbak-telf1.
ls_header-order_type = ls_xlikp-lfart.
ls_header-user_name = ls_xlikp-ernam.
ls_header-warehouse_message = s_proxy_header-warehouse_message.
ls_header-customer_message = s_proxy_header-customer_message.
ls_header-sales_order_number = ls_xlips-vgbel.
* Do not send Lot price items to WLINK - NTDC Issue list Line 23.
IF ls_xlips-pstyv = 'ZHBI' OR
ls_xlips-pstyv = 'ZHTS'.
CLEAR: ls_xlips. CONTINUE.
ENDIF.
ls_detail-order_number = ls_xlips-vbeln.
ls_detail-line_number = ls_xlips-posnr.
ls_detail-item_number = ls_xlips-matnr.
ls_detail-item_status = ls_xlips-lgort.
ls_detail-uom = ls_xlips-meins.
* Make sure BOM, KIT and TEXT Items are sent by the WLINK requirements.
* Send ENDOFKIT where there is a text and no material exist for KIT items
* Send ship complete indicator for KIT items.
IF ls_xlips-pstyv = 'ZBOM'.
l_zbom_exist = 'X'.
ENDIF.
CLEAR: l_zbom_exist.
ls_detail-item_number = 'ENDOFKIT'.
ENDIF.
ls_detail-qty_released = ls_xlips-lfimg.
ls_detail-lot_number = ls_xlips-charg.
ENDLOOP.
* Generate proxy - Send Delivery information to WLINK. Only upon delivery creation.
IF if_trtyp = 'H'. " Only on delivery creation.
TRY.
CREATE OBJECT lo_delv_ob_proxy.
lo_delv_ob_proxy->si_summit_fulfillment_order_ou( ls_output ).
CATCH cx_ai_system_fault INTO lo_sys_fault.
lv_object = 'ZVDC_INTF'.
lv_subobject = 'FULFILLMENT_ORD'.
lv_extnumber = ls_xlikp-vbeln.
DATA(lo_msg_list) =
cf_reca_message_list=>create( id_object = lv_object
id_subobject = lv_subobject
id_extnumber = lv_extnumber ).
lo_msg_list->add_from_exception( lo_sys_fault ).
lo_msg_list->store( ).
ENDTRY.
ENDIF.
_call_erp_ship_order_proxy(
it_xlikp = it_xlikp
it_xvbuk = it_xvbuk
).
ENDMETHOD.