Update (WMATGRP02) Material assignment to article Hierarchy using BAPI
*&---------------------------------------------------------------------*
*& Report ZMM_MAT_ARTICLE_HIERARCHY*&---------------------------------------------------------------------*
*& Program : ZMM_MAT_ARTICLE_HIERARCHY
*& Author : King Of ABAP'r
*& Created on : 2023
*& Requested By : Functional
*& Description : Material assignment to article hireachy(WMATGRP02)
*&---------------------------------------------------------------------*
REPORT zmm_mat_article_hierarchy.
INCLUDE zmm_mat_article_hierarchy_top.
INCLUDE zmm_mat_article_hierarchy_sel.
INCLUDE zmm_mat_article_hierarchy_f01.
START-OF-SELECTION.
*** Get the records
PERFORM get_data.
*&---------------------------------------------------------------------*
*& Include ZMM_MAT_ARTICLE_HIERARCHY_TOP
*&---------------------------------------------------------------------*
TYPES:BEGIN OF ty_final,
hier_id TYPE wrf_hier_cnt,
matnr TYPE matnr,
node TYPE wrf_struc_node,
date_from(10) TYPE c, "wrf_date_from,
date_to(10) TYPE c, "wrf_date_to,
mainflg TYPE wrf_main_flag,
END OF ty_final.
DATA:wa_final TYPE ty_final,
it_final TYPE TABLE OF ty_final.
DATA: wa_WRF_MATGRP_SKU LIKE wrf_matgrp_sku.
*& Include ZMM_MAT_ARTICLE_HIERARCHY_TOP
*&---------------------------------------------------------------------*
TYPES:BEGIN OF ty_final,
hier_id TYPE wrf_hier_cnt,
matnr TYPE matnr,
node TYPE wrf_struc_node,
date_from(10) TYPE c, "wrf_date_from,
date_to(10) TYPE c, "wrf_date_to,
mainflg TYPE wrf_main_flag,
END OF ty_final.
DATA:wa_final TYPE ty_final,
it_final TYPE TABLE OF ty_final.
DATA: wa_WRF_MATGRP_SKU LIKE wrf_matgrp_sku.
*&---------------------------------------------------------------------*
*& Include ZMM_MAT_ARTICLE_HIERARCHY_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS:p_file TYPE rlgrap-filename.
SELECTION-SCREEN:END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM file_upload.
*& Include ZMM_MAT_ARTICLE_HIERARCHY_SEL
*&---------------------------------------------------------------------*
SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS:p_file TYPE rlgrap-filename.
SELECTION-SCREEN:END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM file_upload.
*&---------------------------------------------------------------------*
*& Include ZMM_MAT_ARTICLE_HIERARCHY_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form file_upload
*&---------------------------------------------------------------------*
FORM file_upload .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
DATA:
t_raw TYPE truxs_t_text_data,
lv_matnr TYPE matnr18,
lt_hierarchy_items TYPE bapi_wrf_hier_ch_items_tty,
ls_hierarchy_data TYPE bapi_wrf_hier_change_head,
lt_hierarchy_structure TYPE bapi_wrf_hier_ch_struc_tty,
lt_description_hierarchy TYPE bapi_wrf_desc_ch_hier_tty,
lt_description_structure TYPE bapi_wrf_desc_ch_struc_tty,
lt_extension_in TYPE bapi_wrf_extension_tty,
lt_return TYPE bapi_wrf_return_tty,
ls_testrun TYPE bapi_wrf_testrun_sty.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = t_raw
i_filename = p_file
TABLES
i_tab_converted_data = it_final.
IF it_final IS INITIAL.
MESSAGE 'NO Records Found' TYPE 'E'.
ENDIF.
DATA:lv_date_from(10) TYPE c,
lv_date_to TYPE sy-datum VALUE '99991231'.
LOOP AT it_final INTO wa_final.
CLEAR: lt_hierarchy_items.
APPEND INITIAL LINE TO lt_hierarchy_items ASSIGNING FIELD-SYMBOL(<ls_hierarchy_items>).
<ls_hierarchy_items>-change = 'I'.
<ls_hierarchy_items>-matnr = |{ wa_final-matnr ALPHA = IN }|.
<ls_hierarchy_items>-mainflg = wa_final-mainflg.
<ls_hierarchy_items>-node = wa_final-node.
* <ls_hierarchy_items>-matnr_long = |{ wa_final-matnr ALPHA = IN }|.
ls_hierarchy_data-hier_id = wa_final-hier_id.
<ls_hierarchy_items>-date_from = sy-datum.
<ls_hierarchy_items>-date_to = lv_date_to.
CALL FUNCTION 'BAPI_WRF_MATGRP_CHANGE'
EXPORTING
hierarchy_data = ls_hierarchy_data
testrun = ls_testrun
hierarchy_structure = lt_hierarchy_structure
description_hierarchy = lt_description_hierarchy
description_structure = lt_description_structure
hierarchy_items = lt_hierarchy_items
extension_in = lt_extension_in
IMPORTING
return = lt_return.
READ TABLE lt_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
IF sy-subrc NE 0.
MESSAGE 'Successfully uploaded records' TYPE 'S'.
ELSE.
LOOP AT lt_return INTO DATA(ls_return) WHERE type = 'E'
AND type = 'A'.
WRITE: / ls_return-message.
ENDLOOP.
ENDIF.
ENDLOOP.
* wa_wrf_matgrp_sku-hier_id = wa_final-hier_id.
* lv_matnr = |{ wa_final-matnr ALPHA = IN }|.
* wa_wrf_matgrp_sku-matnr = lv_matnr.
* wa_wrf_matgrp_sku-node = wa_final-node.
*
* CLEAR:lv_date_from.
* CONCATENATE wa_final-date_from+6(4) wa_final-date_from+3(2) wa_final-date_from+0(2) INTO wa_wrf_matgrp_sku-date_from."
*
* CONCATENATE lv_date_to+6(4) lv_date_to+3(2) lv_date_to+0(2) INTO wa_wrf_matgrp_sku-date_to.
* wa_wrf_matgrp_sku-mainflg = 'X'.
*
* INSERT wrf_matgrp_sku FROM wa_wrf_matgrp_sku.
* MESSAGE 'Successfully uploaded records' TYPE 'S'.
* ENDLOOP.
ENDFORM.
*& Include ZMM_MAT_ARTICLE_HIERARCHY_F01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form file_upload
*&---------------------------------------------------------------------*
FORM file_upload .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = 'P_FILE'
IMPORTING
file_name = p_file.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
FORM get_data .
DATA:
t_raw TYPE truxs_t_text_data,
lv_matnr TYPE matnr18,
lt_hierarchy_items TYPE bapi_wrf_hier_ch_items_tty,
ls_hierarchy_data TYPE bapi_wrf_hier_change_head,
lt_hierarchy_structure TYPE bapi_wrf_hier_ch_struc_tty,
lt_description_hierarchy TYPE bapi_wrf_desc_ch_hier_tty,
lt_description_structure TYPE bapi_wrf_desc_ch_struc_tty,
lt_extension_in TYPE bapi_wrf_extension_tty,
lt_return TYPE bapi_wrf_return_tty,
ls_testrun TYPE bapi_wrf_testrun_sty.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
i_line_header = 'X'
i_tab_raw_data = t_raw
i_filename = p_file
TABLES
i_tab_converted_data = it_final.
IF it_final IS INITIAL.
MESSAGE 'NO Records Found' TYPE 'E'.
ENDIF.
DATA:lv_date_from(10) TYPE c,
lv_date_to TYPE sy-datum VALUE '99991231'.
LOOP AT it_final INTO wa_final.
CLEAR: lt_hierarchy_items.
APPEND INITIAL LINE TO lt_hierarchy_items ASSIGNING FIELD-SYMBOL(<ls_hierarchy_items>).
<ls_hierarchy_items>-change = 'I'.
<ls_hierarchy_items>-matnr = |{ wa_final-matnr ALPHA = IN }|.
<ls_hierarchy_items>-mainflg = wa_final-mainflg.
<ls_hierarchy_items>-node = wa_final-node.
* <ls_hierarchy_items>-matnr_long = |{ wa_final-matnr ALPHA = IN }|.
ls_hierarchy_data-hier_id = wa_final-hier_id.
<ls_hierarchy_items>-date_from = sy-datum.
<ls_hierarchy_items>-date_to = lv_date_to.
CALL FUNCTION 'BAPI_WRF_MATGRP_CHANGE'
EXPORTING
hierarchy_data = ls_hierarchy_data
testrun = ls_testrun
hierarchy_structure = lt_hierarchy_structure
description_hierarchy = lt_description_hierarchy
description_structure = lt_description_structure
hierarchy_items = lt_hierarchy_items
extension_in = lt_extension_in
IMPORTING
return = lt_return.
READ TABLE lt_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
IF sy-subrc NE 0.
MESSAGE 'Successfully uploaded records' TYPE 'S'.
ELSE.
LOOP AT lt_return INTO DATA(ls_return) WHERE type = 'E'
AND type = 'A'.
WRITE: / ls_return-message.
ENDLOOP.
ENDIF.
ENDLOOP.
* wa_wrf_matgrp_sku-hier_id = wa_final-hier_id.
* lv_matnr = |{ wa_final-matnr ALPHA = IN }|.
* wa_wrf_matgrp_sku-matnr = lv_matnr.
* wa_wrf_matgrp_sku-node = wa_final-node.
*
* CLEAR:lv_date_from.
* CONCATENATE wa_final-date_from+6(4) wa_final-date_from+3(2) wa_final-date_from+0(2) INTO wa_wrf_matgrp_sku-date_from."
*
* CONCATENATE lv_date_to+6(4) lv_date_to+3(2) lv_date_to+0(2) INTO wa_wrf_matgrp_sku-date_to.
* wa_wrf_matgrp_sku-mainflg = 'X'.
*
* INSERT wrf_matgrp_sku FROM wa_wrf_matgrp_sku.
* MESSAGE 'Successfully uploaded records' TYPE 'S'.
* ENDLOOP.
ENDFORM.
Comments
Post a Comment