adesso business consulting Stellenangebote
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP | Senior Frontend Software Engineer SAP BTP
| (Senior) Consultant Technologie
Werkstudent Softwareentwicklung · Consulting
MASTER IDOC DISTRIBUTE
Aus SAP Wiki ツ
Deklaration
e1mbgmcr TYPE e1mbgmcr,
e1bp2017_gm_head_01 TYPE e1bp2017_gm_head_01,
e1bp2017_gm_code TYPE e1bp2017_gm_code,
e1bp2017_gm_item_create TYPE e1bp2017_gm_item_create,
/spe/e1bp2017_servicepart_d TYPE /spe/e1bp2017_servicepart_d,
ls_idoc_data TYPE edidd,
lt_idoc_data TYPE TABLE OF edidd,
lt_comm_control TYPE TABLE OF edidc,
ls_idoc_control_master TYPE edidc,
lt_messages TYPE bal_t_msg,
ls_message TYPE bal_s_msg.
Codeschnipsel
* control data
CLEAR ls_idoc_control_master.
ls_idoc_control_master-mestyp = 'MBGMCR'.
ls_idoc_control_master-idoctp = 'MBGMCR03'.
ls_idoc_control_master-rcvprt = 'LI'. "Partnerart Empfänger
ls_idoc_control_master-rcvpfc = 'ZW'. "Partnerrolle Empfänger
zcl_ldl_functions=>get_partner( EXPORTING iv_code = p_ldlco IMPORTING ev_partner = ls_idoc_control_master-rcvprn ).
ls_idoc_control_master-rcvpor = 'A000000005'. "Empfängerport
ls_idoc_control_master-sndprt = 'LS'. "Partnerart Empfänger
ls_idoc_control_master-sndprn = 'XX'.
CONCATENATE 'SAP' sy-sysid INTO ls_idoc_control_master-sndpor.
* for segment 'E1MBGMCR' *
CLEAR: e1mbgmcr, ls_idoc_data, lt_idoc_data.
ls_idoc_data-sdata = e1mbgmcr.
ls_idoc_data-segnam = 'E1MBGMCR'.
APPEND ls_idoc_data TO lt_idoc_data.
* for segment 'E1BP2017_GM_HEAD_01' *
CLEAR: e1bp2017_gm_head_01, ls_idoc_data.
MOVE-CORRESPONDING is_goodsmvtheader TO e1bp2017_gm_head_01. "#EC ENHOK
IF NOT e1bp2017_gm_head_01 IS INITIAL.
ls_idoc_data-sdata = e1bp2017_gm_head_01.
ls_idoc_data-segnam = 'E1BP2017_GM_HEAD_01'.
APPEND ls_idoc_data TO lt_idoc_data.
ENDIF.
* for segment 'E1BP2017_GM_CODE' *
CLEAR: e1bp2017_gm_code, ls_idoc_data.
MOVE-CORRESPONDING is_goodsmvtcode TO e1bp2017_gm_code. "#EC ENHOK
IF NOT e1bp2017_gm_code IS INITIAL.
ls_idoc_data-sdata = e1bp2017_gm_code.
ls_idoc_data-segnam = 'E1BP2017_GM_CODE'.
APPEND ls_idoc_data TO lt_idoc_data.
ENDIF.
* for segment 'E1BP2017_GM_ITEM_CREATE'
LOOP AT it_goodsmvtitem INTO DATA(ls_goodsmvtitem).
CLEAR: e1bp2017_gm_item_create, ls_idoc_data.
"Für Items muss eine Konvertierung stattfinden.
"XYZ braucht für Paletten, Palettenmenge
"Es muss aus Gründen die Konvertierung auf führende Nullen stattfinden
DATA: lv_matnr_mit_nullen TYPE matnr.
DATA: lv_mhd_int_date TYPE char08.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = ls_goodsmvtitem-material
IMPORTING
output = lv_matnr_mit_nullen.
zcl_ldl_functions=>calc_quant( EXPORTING iv_matnr = lv_matnr_mit_nullen iv_menge = ls_goodsmvtitem-entry_qnt iv_out = 'X' IMPORTING ev_menge = ls_goodsmvtitem-entry_qnt ).
zcl_ldl_functions=>get_partner( EXPORTING iv_code = p_ldlco IMPORTING ev_partner = ls_goodsmvtitem-vendor ).
SHIFT ls_goodsmvtitem-vendor LEFT DELETING LEADING '0'.
"MHD wird wie folgt gebraucht -> YYYYMMDD
READ TABLE it_servicepart_data INTO DATA(ls_need_hu_for_mhd) INDEX 1.
SELECT SINGLE mhd FROM zbestand_ldl INTO lv_mhd_int_date WHERE code = p_ldlco AND sscc = ls_need_hu_for_mhd-hu_number.
ls_goodsmvtitem-expirydate = lv_mhd_int_date.
"Mapping MOVE_TYPE in LDL Bewegungsart
zcl_ldl_functions=>map_mmt( EXPORTING iv_bwa = ls_goodsmvtitem-move_type iv_out = 'X' IMPORTING ev_bwa = ls_goodsmvtitem-move_type ).
MOVE-CORRESPONDING ls_goodsmvtitem TO e1bp2017_gm_item_create. "#EC ENHOK
CONDENSE e1bp2017_gm_item_create-entry_qnt.
CONDENSE e1bp2017_gm_item_create-po_pr_qnt.
CONDENSE e1bp2017_gm_item_create-amount_lc.
CONDENSE e1bp2017_gm_item_create-amount_sv.
CONDENSE e1bp2017_gm_item_create-su_pl_stck_1.
CONDENSE e1bp2017_gm_item_create-st_un_qtyy_1.
CONDENSE e1bp2017_gm_item_create-su_pl_stck_2.
CONDENSE e1bp2017_gm_item_create-st_un_qtyy_2.
e1bp2017_gm_item_create-material = zcl_ldl_functions=>convert_matnr_external( iv_matnr = e1bp2017_gm_item_create-material ).
ls_idoc_data-sdata = e1bp2017_gm_item_create.
ls_idoc_data-segnam = 'E1BP2017_GM_ITEM_CREATE'.
APPEND ls_idoc_data TO lt_idoc_data.
** for segment 'E1BP2017_GM_ITEM_CREATE1' *
* CLEAR: e1bp2017_gm_item_create1, ls_idoc_data, lt_idoc_data.
* MOVE-CORRESPONDING goodsmvtitem
* TO e1bp2017_gm_item_create1. "#EC ENHOK
* CONDENSE e1bp2017_gm_item_create1-quantity.
* idoc_data-sdata = e1bp2017_gm_item_create1.
* idoc_data-segnam = 'E1BP2017_GM_ITEM_CREATE1'.
* APPEND ls_idoc_data TO lt_idoc_data.
ENDLOOP.
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
EXPORTING
master_idoc_control = ls_idoc_control_master
* OBJ_TYPE =
* CHNUM =
TABLES
communication_idoc_control = lt_comm_control
master_idoc_data = lt_idoc_data
EXCEPTIONS
error_in_idoc_control = 1
error_writing_idoc_status = 2
error_in_idoc_data = 3
sending_logical_system_unknown = 4
OTHERS = 5.
IF sy-subrc <> 0.
READ TABLE lt_comm_control INTO DATA(ls_comm_doc) INDEX 1.
ls_message-msgty = 'E'.
ls_message-msgid = 'ZLDL_BESTMONI'.
ls_message-msgno = '021'.
ls_message-msgv1 = ls_comm_doc-docnum.
APPEND ls_message TO et_results.
ENDIF.
Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud