DATA:
gs_tophu TYPE /scwm/s_huhdr_int,
gs_hu_ident TYPE /scwm/s_hu_ident,
gs_guid_hu TYPE /scwm/s_guid_hu,
gs_t300_md TYPE /scwm/s_t300_md,
gv_adreese TYPE ad_addrnum,
gt_guid_hu TYPE /scwm/tt_guid_hu,
gs_docid TYPE LINE OF /scdl/dl_guid_tab,
gt_docid1 TYPE /scwm/dlv_docid_item_tab,
gs_docid1 TYPE LINE OF /scwm/dlv_docid_item_tab,
gt_tu_dlv TYPE /scwm/tt_tu_dlv,
* gs_tophu TYPE /scwm/s_huhdr_int,
* gs_huitm TYPE /scwm/s_huitm_int,
* gs_guid_hu TYPE /scwm/s_guid_hu,
* gs_t300_md TYPE /scwm/s_t300_md,
* gv_adreese TYPE ad_addrnum,
* gv_lines TYPE i,
gv_hu_lines TYPE i,
gv_item_lines TYPE i,
gv_addrnumber TYPE ad_addrnum,
gt_headers TYPE /scwm/dlv_header_out_prd_tab,
gs_headers TYPE LINE OF /scwm/dlv_header_out_prd_tab,
gt_items TYPE /scwm/dlv_item_out_prd_tab,
gs_items TYPE LINE OF /scwm/dlv_item_out_prd_tab,
gt_partyloc TYPE /scdl/dl_partyloc_tab WITH HEADER LINE,
gs_partyloc TYPE /scdl/dl_partyloc_str,
gt_hu_headers TYPE /scwm/tt_huhdr_int,
gs_hu_headers TYPE LINE OF /scwm/tt_huhdr_int,
gt_hu_items TYPE /scwm/tt_huitm_int,
gs_hu_items TYPE LINE OF /scwm/tt_huitm_int,
gt_matid TYPE /scwm/tt_matid,
gs_matid TYPE /scwm/de_matid,
gt_mat_global TYPE /scwm/tt_material_global,
gs_mat_global TYPE LINE OF /scwm/tt_material_global,
gv_text TYPE /scwm/de_desc40,
gt_tu_sr_act TYPE /scwm/tt_tu_sr_activity,
gs_tu_sr_act TYPE LINE OF /scwm/tt_tu_sr_activity,
gt_tu_hdr TYPE /scwm/tt_tunit_int,
gs_tu_hdr TYPE LINE OF /scwm/tt_tunit_int,
gt_docid TYPE /scdl/dl_guid_tab,
gv_week TYPE scal-week,
gv_lines1 TYPE i.
* gt_serid TYPE /SCWM/TT_SERID,
* gs_serid TYPE /SCWM/S_SERID.
DATA:me TYPE REF TO /scwm/cl_dlv_management_prd.
CREATE OBJECT me.
CLEAR gt_tophu.
DATA:gv_sel TYPE rsdsselopt,
gt_hu_ident TYPE /scwm/tt_hu_ident,
gt_idart TYPE rseloption.
CLEAR gt_tophu.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'I'.
APPEND gv_sel TO gt_idart.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'J'.
APPEND gv_sel TO gt_idart.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'K'.
APPEND gv_sel TO gt_idart.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'L'.
APPEND gv_sel TO gt_idart.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'M'.
APPEND gv_sel TO gt_idart.
gv_sel-sign = 'I'.
gv_sel-option = 'EQ'.
gv_sel-low = 'N'.
APPEND gv_sel TO gt_idart.
LOOP AT tophu INTO gs_tophu.
CLEAR gt_guid_hu.
gs_guid_hu-guid_hu = gs_tophu-guid_hu.
APPEND gs_guid_hu TO gt_guid_hu.
gs_huhdr = gs_tophu.
******logic for S/G/M Handling unit bar code
DESCRIBE TABLE huhdr LINES gv_hu_lines.
DESCRIBE TABLE huitm LINES gv_item_lines.
gv_hu_num = gs_huhdr-huident.
CONDENSE gs_huhdr-huident.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = gv_hu_num
IMPORTING
output = gv_hu_num.
IF gv_hu_lines GT 1.
CONCATENATE 'M' gv_hu_num INTO gv_hu_num.
ELSE.
CONCATENATE 'S' gv_hu_num INTO gv_hu_num.
ENDIF.
CONDENSE gv_hu_num.
CALL FUNCTION '/SCWM/HU_SELECT_IDENT'
EXPORTING
iv_lgnum = gs_tophu-lgnum
it_guid_hu = gt_guid_hu
ir_idart = gt_idart
IMPORTING
et_hu_ident = gt_hu_ident.
READ TABLE gt_hu_ident INTO gs_hu_ident INDEX 1.
IF sy-subrc = 0.
* APPEND gv_tophu TO wt_tophu.
* gv_tophu-huident = gv_hu_ident-huident(20).
** gv_tophu-sel_all = 'F'.
* APPEND gv_tophu TO wt_tophu.
ELSE.
APPEND gs_tophu TO gt_tophu.
ENDIF.
**********logic for supplier ID V
CALL FUNCTION '/SCWM/T300_MD_READ_SINGLE'
EXPORTING
iv_lgnum = gs_tophu-lgnum
* IV_SCUGUID =
IMPORTING
es_t300_md = gs_t300_md
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
SELECT SINGLE adresse FROM /scmb/toentity
INTO gv_adreese WHERE scuguid = gs_t300_md-scuguid.
SELECT SINGLE name1 name2 county FROM adrc INTO CORRESPONDING FIELDS OF
gs_adrc_supply
WHERE addrnumber = gv_adreese.
CONCATENATE 'V' gs_adrc_supply-name2 INTO gv_supplier.
ENDLOOP.
DESCRIBE TABLE huitm LINES gv_lines.
LOOP AT huitm INTO gs_huitm.
*********** Docid for Dispatch Unit
gs_docid1-docid = gs_huitm-qdocid.
gs_docid-docid = gs_huitm-qdocid.
APPEND gs_docid TO gt_docid.
APPEND gs_docid1 TO gt_docid1.
gs_huitm = gs_huitm.
IF sy-tabix NE 1.
ON CHANGE OF gs_huitm-matid.
gs_huitm-matid = ''.
CONCATENATE 'G' gv_hu_num INTO gv_hu_num.
CONDENSE gv_hu_num.
ENDON.
ENDIF.
APPEND LINES OF gs_huitm-serid TO gt_serid.
ENDLOOP.
LOOP AT gt_serid INTO gs_serid.
CASE sy-tabix.
WHEN '1'.
gv_serid1 = gs_serid-serid.
gv_lines1 = gv_lines1 + 1.
WHEN '2'.
gv_serid2 = gs_serid-serid.
gv_lines1 = gv_lines1 + 1.
WHEN '3'.
gv_serid3 = gs_serid-serid.
gv_lines1 = gv_lines1 + 1.
WHEN '4'.
gv_serid4 = gs_serid-serid.
gv_lines1 = gv_lines1 + 1.
WHEN '5'.
gv_serid5 = gs_serid-serid.
gv_lines1 = gv_lines1 + 1.
WHEN '6'.
gv_serid6 = gs_serid-serid..
gv_lines1 = gv_lines1 + 1.
ENDCASE.
ENDLOOP.
****** Quantity
gs_huitm-quan = gv_lines1.
gv_quan = gs_huitm-quan.
REPLACE ALL OCCURRENCES OF '0' IN gv_quan WITH space.
REPLACE ALL OCCURRENCES OF '.' IN gv_quan WITH space.
CONDENSE gv_quan.
********RECIEVER
CALL METHOD me->query
EXPORTING
it_docid = gt_docid1
IMPORTING
et_hu_headers = gt_hu_headers
et_hu_items = gt_hu_items
et_headers = gt_headers
et_items = gt_items.
LOOP AT gt_headers INTO gs_headers.
APPEND LINES OF gs_headers-partyloc TO gt_partyloc.
ENDLOOP.
READ TABLE gt_partyloc INTO gs_partyloc WITH KEY party_role = 'STPRT' role_cat =
'BP'.
IF sy-subrc IS INITIAL.
SELECT SINGLE addrnumber FROM but020 INTO gv_addrnumber WHERE partner EQ
gs_partyloc-partyno.
IF sy-subrc IS INITIAL.
SELECT SINGLE name1 city1 post_code1 country FROM adrc INTO CORRESPONDING
FIELDS OF gs_adrc
WHERE addrnumber = gv_addrnumber.
ENDIF.
ENDIF.
********** GATE NO
READ TABLE gt_partyloc INTO gs_partyloc WITH KEY party_role = 'UP' role_cat = 'LO'.
IF sy-subrc IS INITIAL.
SELECT SINGLE addrnumber FROM but020 INTO gv_addrnumber WHERE partner EQ
gs_partyloc-partyno.
IF sy-subrc IS INITIAL.
SELECT SINGLE name1 city1 post_code1 country FROM adrc INTO CORRESPONDING
FIELDS OF gs_adrc1
WHERE addrnumber = gv_addrnumber.
ENDIF.
ENDIF.
********* Dispatch Unit
CALL METHOD /scwm/cl_sr_db_tu=>read_dlv
EXPORTING
* it_tu_sr_act =
it_docid = gt_docid
* it_guid_hu =
IMPORTING
et_tu_dlv = gt_tu_dlv.
IF sy-subrc EQ 0.
ENDIF.
READ TABLE gt_tu_dlv INTO gs_tu_dlv INDEX 1.
gv_tu_num = gs_tu_dlv-tu_num.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = gv_tu_num
IMPORTING
output = gv_tu_num.
CONCATENATE 'N' gv_tu_num INTO gv_tu_num.
**:Description: KAMAXEL AVGAS,
CALL FUNCTION 'CONVERSION_EXIT_MDLPD_OUTPUT'
EXPORTING
input = gs_huitm-matid
IMPORTING
output = gv_matid.
SELECT SINGLE matid FROM
/sapapo/matkey INTO gv_matid
WHERE matnr = gv_matid.
SELECT SINGLE maktg FROM
/sapapo/mattxt INTO gv_maktg
WHERE matid = gv_matid.
CONCATENATE 'P' gv_matid INTO gv_matid.
* prod date
CALL FUNCTION 'DATE_GET_WEEK'
EXPORTING
date = sy-datum
IMPORTING
week = gv_week
EXCEPTIONS
date_invalid = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
CONCATENATE sy-datum+2(2) gv_week+4(2) sy-datum+6(2) INTO gv_prod_date.