Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *&**********************************************************************
- *OBJECT NAME : ZSTP_R_UPLOAD_MAPPING_DATA_IMP *
- *TITLE : Upload Mapping Data *
- *AUTHOR : IBOUAZZA *
- *DATE : 03/11/2022 *
- *DEVELOPMENT ID : STP_R_114 *
- *CR/Rev-Trac : CHG0034285/7025 *
- *REQUESTED BY : Gee Sin Khoo *
- *TRANSPORT NO. : SR4K902452 *
- *DESCRIPTION : Upload Mapping Data *
- * *
- *&*********************************************************************&
- *& CHANGE HISTORY LOG *
- *&---------------------------------------------------------------------*
- * CR/HPQC #|DATE(MM/DD/YY)| DEVELOPER | REQUESTOR | TRANSPORT # *
- * DESCRIPTION *
- *&---------------------------------------------------------------------&
- CLASS lcl_upload_map_data IMPLEMENTATION.
- METHOD read_file.
- DATA: lv_file TYPE rlgrap-filename,
- lt_xcel TYPE TABLE OF alsmex_tabline,
- ls_xcel TYPE alsmex_tabline.
- lv_file = p_file.
- CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
- EXPORTING
- filename = lv_file
- i_begin_col = '1'
- i_begin_row = '2'
- i_end_col = '7'
- i_end_row = '99999'
- TABLES
- intern = lt_xcel
- EXCEPTIONS
- inconsistent_parameters = 1
- upload_ole = 2
- OTHERS = 3.
- IF p_r1 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- gs_table1-plant = ls_xcel-value. "Plant
- CONDENSE gs_table1-plant NO-GAPS.
- WHEN '0002'.
- gs_table1-str_loc = ls_xcel-value. "Storage Location
- WHEN '0003'.
- gs_table1-mtr_type = ls_xcel-value. "Material Type
- CONDENSE gs_table1-mtr_type NO-GAPS.
- WHEN '0004'.
- gs_table1-inv_org = ls_xcel-value. "Inventory Org.
- REPLACE ALL OCCURRENCES OF ' ' IN gs_table1-inv_org WITH space.
- CONDENSE gs_table1-inv_org NO-GAPS.
- ENDCASE.
- AT END OF row.
- APPEND gs_table1 TO gt_table1.
- CLEAR : gs_table1.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r2 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- gs_table2-plant = ls_xcel-value. "Plant
- WHEN '0002'.
- gs_table2-mtr_type = ls_xcel-value. "Material Type
- WHEN '0003'.
- gs_table2-stock_cat = ls_xcel-value. "Stock Category
- WHEN '0004'.
- gs_table2-spec_stock = ls_xcel-value. "Special Stock
- WHEN '0005'.
- gs_table2-val_type = ls_xcel-value. "Valuation Type
- WHEN '0006'.
- gs_table2-sub_inv = ls_xcel-value. "Sub Inventory
- WHEN '0007'.
- gs_table2-lock_code = ls_xcel-value. "Lock Code
- ENDCASE.
- AT END OF row.
- APPEND gs_table2 TO gt_table2.
- CLEAR : gs_table2.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r3 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- gs_table3-warehouse = ls_xcel-value. "Warehouse
- WHEN '0002'.
- gs_table3-storage_bin = ls_xcel-value. "Storage Bin
- WHEN '0003'.
- gs_table3-orc_locator = ls_xcel-value. "Oracle Locators
- ENDCASE.
- AT END OF row.
- APPEND gs_table3 TO gt_table3.
- CLEAR : gs_table3.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r4 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- gs_table4-inv_org = ls_xcel-value. "Inventory Org.
- WHEN '0002'.
- gs_table4-company_code = ls_xcel-value. "Company Code
- ENDCASE.
- AT END OF row.
- APPEND gs_table4 TO gt_table4.
- CLEAR : gs_table4.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r5 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
- EXPORTING
- input = ls_xcel-value
- language = c_en
- IMPORTING
- output = gv_meins
- EXCEPTIONS
- unit_not_found = 1
- OTHERS = 2.
- IF sy-subrc <> 0.
- * Implement suitable error handling here
- ENDIF.
- gs_table5-meins = gv_meins. "Base UOM
- WHEN '0002'.
- gs_table5-uom_desc = ls_xcel-value. "UOM Description
- WHEN '0003'.
- gs_table5-orc_uom = ls_xcel-value. "Oracle UOM
- ENDCASE.
- AT END OF row.
- APPEND gs_table5 TO gt_table5.
- CLEAR : gs_table5.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r6 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
- EXPORTING
- input = ls_xcel-value
- IMPORTING
- output = gv_matnr
- EXCEPTIONS
- length_error = 1
- OTHERS = 2.
- IF sy-subrc <> 0.
- * Implement suitable error handling here
- ENDIF.
- gs_table6-matnr = gv_matnr. "Material Number
- WHEN '0002'.
- gs_table6-maktx = ls_xcel-value. "Material Description
- WHEN '0003'.
- gs_table6-umrez = ls_xcel-value. "Numerator
- WHEN '0004'.
- CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
- EXPORTING
- input = ls_xcel-value
- language = c_en
- IMPORTING
- output = gv_meins
- EXCEPTIONS
- unit_not_found = 1
- OTHERS = 2.
- IF sy-subrc <> 0.
- * Implement suitable error handling here
- ENDIF.
- gs_table6-meins = gv_meins. "Base UOM
- WHEN '0005'.
- gs_table6-umren = ls_xcel-value. "Denominator
- WHEN '0006'.
- gs_table6-meinh = ls_xcel-value. "Alt UOM
- ENDCASE.
- AT END OF row.
- APPEND gs_table6 TO gt_table6.
- CLEAR : gs_table6.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ELSEIF p_r7 = 'X'.
- LOOP AT lt_xcel INTO ls_xcel.
- CASE
- ls_xcel-col.
- WHEN '0001'.
- gs_table7-inv_org = ls_xcel-value. "Inventory Org.
- WHEN '0002'.
- gs_table7-inv_des = ls_xcel-value. "Company Code
- ENDCASE.
- AT END OF row.
- APPEND gs_table7 TO gt_table7.
- CLEAR : gs_table7.
- ENDAT.
- ENDLOOP.
- CLEAR : lt_xcel, ls_xcel.
- ENDIF.
- ENDMETHOD.
- METHOD get_data.
- IF p_r1 = 'X'.
- IF gt_table1 IS NOT INITIAL.
- SELECT
- werks
- FROM t001w
- INTO TABLE @gt_t001w
- FOR ALL ENTRIES IN @gt_table1
- WHERE werks EQ @gt_table1-plant.
- IF sy-subrc IS INITIAL.
- SORT gt_t001w BY werks.
- ENDIF.
- SELECT
- werks,
- lgort
- FROM t001l
- INTO TABLE @gt_t001l
- FOR ALL ENTRIES IN @gt_table1
- WHERE lgort EQ @gt_table1-str_loc. "#EC CI_GENBUFF
- IF sy-subrc IS INITIAL.
- SORT gt_t001l BY lgort.
- ENDIF.
- SELECT
- mtart
- FROM t134
- INTO TABLE @gt_t134
- FOR ALL ENTRIES IN @gt_table1
- WHERE mtart EQ @gt_table1-mtr_type.
- IF sy-subrc IS INITIAL.
- SORT gt_t134 BY mtart.
- ENDIF.
- ENDIF.
- ELSEIF p_r2 = 'X'.
- IF gt_table2 IS NOT INITIAL.
- SELECT
- werks
- FROM t001w
- INTO TABLE @gt_t001w
- FOR ALL ENTRIES IN @gt_table2
- WHERE werks EQ @gt_table2-plant.
- IF sy-subrc IS INITIAL.
- SORT gt_t001w BY werks.
- ENDIF.
- SELECT
- mtart
- FROM t134
- INTO TABLE @gt_t134
- FOR ALL ENTRIES IN @gt_table2
- WHERE mtart EQ @gt_table2-mtr_type.
- IF sy-subrc IS INITIAL.
- SORT gt_t134 BY mtart.
- ENDIF.
- ENDIF.
- ELSEIF p_r3 = 'X'.
- IF gt_table3 IS NOT INITIAL.
- SELECT
- lgnum
- FROM t300
- INTO TABLE @gt_t300
- FOR ALL ENTRIES IN @gt_table3
- WHERE lgnum EQ @gt_table3-warehouse.
- IF sy-subrc IS INITIAL.
- SORT gt_t300 BY lgnum.
- ENDIF.
- ENDIF.
- ELSEIF p_r5 = 'X'.
- IF gt_table5 IS NOT INITIAL.
- SELECT
- spras,
- msehi
- FROM t006a
- INTO TABLE @gt_t006a
- FOR ALL ENTRIES IN @gt_table5
- WHERE msehi EQ @gt_table5-meins.
- IF sy-subrc IS INITIAL.
- SORT gt_t006a BY msehi.
- ENDIF.
- ENDIF.
- ELSEIF p_r6 = 'X'.
- IF gt_table6 IS NOT INITIAL.
- SELECT
- spras,
- msehi
- FROM t006a
- INTO TABLE @gt_t006a
- FOR ALL ENTRIES IN @gt_table6
- WHERE msehi EQ @gt_table6-meins.
- IF sy-subrc IS INITIAL.
- SORT gt_t006a BY msehi.
- ENDIF.
- SELECT
- matnr
- FROM mara
- INTO TABLE @gt_mara
- FOR ALL ENTRIES IN @gt_table6
- WHERE matnr EQ @gt_table6-matnr.
- IF sy-subrc IS INITIAL.
- SORT gt_mara BY matnr.
- ENDIF.
- ENDIF.
- ENDIF.
- ENDMETHOD.
- METHOD validate_data.
- IF p_r1 = 'X'.
- LOOP AT gt_table1 INTO gs_table1.
- CLEAR gv_check.
- DATA(lv_nbr) = sy-tabix + 1.
- READ TABLE gt_t001w INTO gs_t001w WITH KEY werks = gs_table1-plant BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- READ TABLE gt_t001l INTO gs_t001l WITH KEY lgort = gs_table1-str_loc BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- READ TABLE gt_t134 INTO gs_t134 WITH KEY mtart = gs_table1-mtr_type BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- gv_check = c_valid.
- ENDLOOP.
- ELSEIF p_r2 = 'X'.
- LOOP AT gt_table2 INTO gs_table2.
- CLEAR gv_check.
- lv_nbr = sy-tabix + 1.
- READ TABLE gt_t001w INTO gs_t001w WITH KEY werks = gs_table2-plant BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- READ TABLE gt_t134 INTO gs_t134 WITH KEY mtart = gs_table2-mtr_type BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- CALL FUNCTION 'DD_DOMVALUES_GET'
- EXPORTING
- domname = 'BESTQ'
- TABLES
- dd07v_tab = gt_dd07v
- EXCEPTIONS
- wrong_textflag = 1
- OTHERS = 2.
- IF sy-subrc <> 0.
- * Implement suitable error handling here
- ENDIF.
- READ TABLE gt_dd07v INTO gs_dd07v WITH KEY domvalue_l = gs_table2-stock_cat.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- gv_check = c_valid.
- ENDLOOP.
- ELSEIF p_r3 = 'X'.
- LOOP AT gt_table3 INTO gs_table3.
- CLEAR gv_check.
- lv_nbr = sy-tabix + 1.
- READ TABLE gt_t300 INTO gs_t300 WITH KEY lgnum = gs_table3-warehouse BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- gv_check = c_valid.
- ENDLOOP.
- ELSEIF p_r5 = 'X'.
- LOOP AT gt_table5 INTO gs_table5.
- CLEAR gv_check.
- lv_nbr = sy-tabix + 1.
- READ TABLE gt_t006a INTO gs_t006a WITH KEY msehi = gs_table5-meins BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- gv_check = c_valid.
- ENDLOOP.
- ELSEIF p_r6 = 'X'.
- LOOP AT gt_table6 INTO gs_table6.
- CLEAR gv_check.
- lv_nbr = sy-tabix + 1.
- READ TABLE gt_mara INTO gs_mara WITH KEY matnr = gs_table6-matnr BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- READ TABLE gt_t006a INTO gs_t006a WITH KEY msehi = gs_table6-meins BINARY SEARCH.
- IF sy-subrc IS NOT INITIAL.
- MESSAGE s079(zstp) WITH lv_nbr DISPLAY LIKE c_e. "Invalid Entry at Line &
- EXIT.
- ENDIF.
- gv_check = c_valid.
- ENDLOOP.
- ENDIF.
- ENDMETHOD.
- METHOD populate_table.
- DATA : lv_lines TYPE i,
- lv_current TYPE i,
- lv_lines_c TYPE char10,
- lv_current_c TYPE char10,
- lv_perc TYPE p DECIMALS 2,
- lv_text TYPE char50.
- IF p_r1 = 'X' AND gv_check = c_valid.
- DELETE FROM zstp_inv_org_map.
- lv_lines = lines( gt_table1 ).
- INSERT zstp_inv_org_map FROM TABLE gt_table1.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r2 = 'X' AND gv_check = c_valid.
- DELETE FROM zstp_subinv_map.
- INSERT zstp_subinv_map FROM TABLE gt_table2.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r3 = 'X' AND gv_check = c_valid.
- DELETE FROM zstp_wms_loc_map. "#EC CI_NOWHERE
- INSERT zstp_wms_loc_map FROM TABLE gt_table3.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r4 = 'X'.
- DELETE FROM zstp_cocode_map.
- INSERT zstp_cocode_map FROM TABLE gt_table4.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r5 = 'X' AND gv_check = c_valid.
- DELETE FROM zstp_convsap_uom.
- INSERT zstp_convsap_uom FROM TABLE gt_table5.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r6 = 'X' AND gv_check = c_valid.
- DELETE FROM zstp_conv_factor.
- INSERT zstp_conv_factor FROM TABLE gt_table6.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ELSEIF p_r7 = 'X' .
- DELETE FROM ZSTP_INVORG_NAME.
- INSERT ZSTP_INVORG_NAME FROM TABLE gt_table7.
- MESSAGE s080(zstp). "Data Uploaded Successfuly
- ENDIF.
- ENDMETHOD.
- ENDCLASS.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement