Procedure for Mass Upload of HU Identification Data in SAP EWM

Step 1: I want to update HU Identification details via mass upload.

Step 2: Run the T-code SE38 and create executable program.

Report: 

*&---------------------------------------------------------------------*
*& Report Z575R_EWM_UPD_HU_IDENT_DETL
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT z575r_ewm_upd_hu_ident_detl.

INCLUDE z575n_ewm_upd_hu_ident_top.
INCLUDE z575n_ewm_upd_hu_ident_sel.
INCLUDE z575n_ewm_upd_hu_ident_forms.

INITIALIZATION.
  PERFORM init_selscr_icons.
  PERFORM clear_variables.

AT SELECTION-SCREEN.
  CASE sscrfields-ucomm.
    WHEN 'FC01'.
      PERFORM prepare_template.
      PERFORM download_template.
  ENDCASE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  PERFORM get_file.

START-OF-SELECTION.
  PERFORM read_file .
  PERFORM process_file.
  PERFORM process_hu_change.
  PERFORM call_reuse_alv_grid_display.

*&---------------------------------------------------------------------*
*&  Include           Z575N_EWM_UPD_HU_IDENT_TOP
*&---------------------------------------------------------------------*

TYPE-POOLS:slistruxsicon.
TABLES:sscrfields.
SELECTION-SCREEN FUNCTION KEY 1.

FIELD-SYMBOLS <g_t_data> TYPE STANDARD TABLE .

TYPESBEGIN OF l_s_file,
         lgnum    TYPE /scwm/lgnum,
         hu       TYPE /scwm/de_huident,
         boe      TYPE /scwm/de_ident,
         dec_num  TYPE /scwm/de_ident,
         dec_date TYPE /scwm/de_ident,
         lot_num  TYPE /scwm/de_ident,
       END OF l_s_file.
TYPESBEGIN OF l_s_final,
         hu           TYPE /scwm/de_huident,
         status       TYPE char4,         "Status
         remarks(200TYPE c,             "Remarks
         uname        TYPE sy-uname,      "Updated By
         udate        TYPE sy-datum,     "Updated On
         utime        TYPE sy-uzeit,      "Updated At
       END OF l_s_final.

DATAg_t_file   TYPE STANDARD TABLE OF l_s_file,
      g_r_file   TYPE l_s_file,
      g_t_final  TYPE TABLE OF l_s_final,
      g_r_final  TYPE  l_s_final,
      g_f_error  TYPE boolean,
      g_f_error1 TYPE boolean,
      g_f_check  TYPE boolean,
      g_f_guid   TYPE /scwm/guid_hu,
      g_f_hu     TYPE /scwm/de_huident.
DATAg_functxt TYPE smp_dyntxt.

DATA:g_t_fcat       TYPE  slis_t_fieldcat_alv,
     g_r_fcat       TYPE slis_fieldcat_alv,
     g_r_layout     TYPE slis_layout_alv,
     g_t_listheader TYPE slis_t_listheader,
     g_r_listheader TYPE slis_listheader..

DATA:g_t_template  TYPE TABLE OF l_s_file,
     g_t_itab_cols TYPE abap_component_tab.

DATAg_o_excel_structure      TYPE REF TO data,
      g_o_source_table_descr   TYPE REF TO cl_abap_tabledescr,
      g_o_table_row_descriptor TYPE REF TO cl_abap_structdescr,
      g_f_content              TYPE xstring,
      g_t_binary_tab           TYPE TABLE OF sdokcntasc,
      g_f_length               TYPE i,
      g_f_filename1            TYPE string,
      g_f_path                 TYPE string,
      g_f_fullpath             TYPE string.
DATAg_r_hu_inp  TYPE /scwm/s_huident,
      g_t_hu_inp  TYPE /scwm/tt_huident,
      g_r_huhdr   TYPE /scwm/s_huhdr_int,
      g_t_huhdr   TYPE /scwm/tt_huhdr_int,
      g_r_huiden  TYPE /scwm/s_hu_ident_int,
      g_t_huiden  TYPE /scwm/tt_ident_int,
      g_f_idart   TYPE /scwm/de_huidart,
      g_f_huident TYPE /scwm/de_ident.

DATAg_o_pack TYPE REF TO /scwm/cl_pack.

CONSTANTSg_c_x      TYPE VALUE 'X',
           g_c_e      TYPE VALUE 'E',
           g_c_wme(3TYPE VALUE 'WME'..

*&---------------------------------------------------------------------*
*&  Include           Z575N_EWM_UPD_HU_IDENT_SEL
*&---------------------------------------------------------------------*

PARAMETERSp_file TYPE localfile.


*&---------------------------------------------------------------------*
*&      Form  INIT_SELSCR_ICONS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM init_selscr_icons .
  g_functxt-icon_id     icon_xxl.
  g_functxt-icon_text   TEXT-001.
  sscrfields-functxt_01 g_functxt.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  CLEAR_VARIABLES
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM clear_variables .
  CLEAR:g_r_file,g_r_final,g_r_fcat,g_r_layout.
  REFRESH:g_t_file,g_t_final,g_t_fcat.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PREPARE_TEMPLATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM prepare_template .
  GET REFERENCE OF g_t_template INTO g_o_excel_structure.
  DATA(g_o_itab_services)   cl_salv_itab_services=>create_for_table_refg_o_excel_structure ).
  g_o_source_table_descr   ?= cl_abap_tabledescr=>describe_by_data_refg_o_excel_structure  ).
  g_o_table_row_descriptor ?= g_o_source_table_descr->get_table_line_type).


  DATA(g_o_tool_xlscl_salv_export_tool_ats_xls=>create_for_excel(
                            EXPORTING r_data =  g_o_excel_structure  .

  DATA l_f_lgnum    TYPE string,
         l_f_hu       TYPE string,
         l_f_         TYPE string,
         l_f_boe      TYPE string,
         l_f_dec_num  TYPE string,
         l_f_dec_date TYPE string,
         l_f_lot_num  TYPE string.

  l_f_lgnum    TEXT-002.
  l_f_hu       TEXT-003.
  l_f_boe      TEXT-004.
  l_f_dec_num  TEXT-005.
  l_f_dec_date TEXT-006.
  l_f_lot_num  TEXT-007.

  DATA(g_o_configg_o_tool_xls->configuration).

  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_lgnum " Warehouse
        field_name           =  'LGNUM'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).

  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_hu " Handling Unit
        field_name           =  'HU'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).

  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_boe " BOE
        field_name           =  'BOE'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).
  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_dec_num " Declaration Number
        field_name           =  'DEC_NUM'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).
  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_dec_date " Declaration date
        field_name           =  'DEC_DATE'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).
  g_o_config->add_column(
      EXPORTING
        header_text          =  l_f_lot_num " Lot Number
        field_name           =  'LOT_NUM'
        display_type         =   if_salv_bs_model_column=>uie_text_view ).


  TRY.
      g_o_tool_xls->read_result(  IMPORTING content  g_f_content  ).
    CATCH cx_root.
  ENDTRY.


  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
    EXPORTING
      buffer        g_f_content
    IMPORTING
      output_length g_f_length
    TABLES
      binary_tab    g_t_binary_tab.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  DOWNLOAD_TEMPLATE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM download_template .
  DATA lf_window_title TYPE string.
  lf_window_title TEXT-008.

  CALL METHOD cl_gui_frontend_services=>file_save_dialog
    EXPORTING
      window_title      lf_window_title "'Select file path'
      default_file_name g_f_filename1
      file_filter       cl_gui_frontend_services=>filetype_excel
    CHANGING
      filename          g_f_filename1
      path              g_f_path
      fullpath          g_f_fullpath.

  IF g_f_fullpath IS NOT INITIAL.

    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
        bin_filesize            g_f_length
        filename                g_f_fullpath
        filetype                'BIN'
      TABLES
        data_tab                g_t_binary_tab
      EXCEPTIONS
        file_write_error        1
        no_batch                2
        gui_refuse_filetransfer 3
        invalid_type            4
        no_authority            5
        unknown_error           6
        header_not_allowed      7
        separator_not_allowed   8
        filesize_not_allowed    9
        header_too_long         10
        dp_error_create         11
        dp_error_send           12
        dp_error_write          13
        unknown_dp_error        14
        access_denied           15
        dp_out_of_memory        16
        disk_full               17
        dp_timeout              18
        file_not_found          19
        dataprovider_exception  20
        control_flush_error     21
        OTHERS                  22.
    IF sy-subrc <> 0.

    ELSE.

      CALL METHOD cl_gui_frontend_services=>execute
        EXPORTING
          document               g_f_fullpath
        EXCEPTIONS
          cntl_error             1
          error_no_gui           2
          bad_parameter          3
          file_not_found         4
          path_not_found         5
          file_extension_unknown 6
          error_execute_failed   7
          synchronous_failed     8
          not_supported_by_gui   9
          OTHERS                 10.
      IF sy-subrc <> 0.

      ENDIF.

    ENDIF.

  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  GET_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_file .
  DATAlf_rc           TYPE i,
        lt_file_table   TYPE filetable,
        ls_file_table   TYPE file_table,
        lf_window_title TYPE string.
  lf_window_title TEXT-011.

  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            lf_window_title
    CHANGING
      file_table              lt_file_table
      rc                      lf_rc
    EXCEPTIONS
      file_open_dialog_failed 1
      cntl_error              2
      error_no_gui            3
      not_supported_by_gui    4
      OTHERS                  5.

  IF sy-subrc 0.
    READ TABLE lt_file_table INTO ls_file_table INDEX 1.
    p_file ls_file_table-filename.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  READ_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM read_file .
  DATA l_f_filename      TYPE string,
         l_t_records       TYPE solix_tab,
         l_f_headerxstring TYPE xstring,
         l_f_filelength    TYPE i.

  l_f_filename p_file.

  CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
      filename                l_f_filename
      filetype                'BIN'
    IMPORTING
      filelength              l_f_filelength
      header                  l_f_headerxstring
    TABLES
      data_tab                l_t_records
    EXCEPTIONS
      file_open_error         1
      file_read_error         2
      no_batch                3
      gui_refuse_filetransfer 4
      invalid_type            5
      no_authority            6
      unknown_error           7
      bad_data_format         8
      header_not_allowed      9
      separator_not_allowed   10
      header_too_long         11
      unknown_dp_error        12
      access_denied           13
      dp_out_of_memory        14
      disk_full               15
      dp_timeout              16
      OTHERS                  17.
  IF sy-subrc <> .
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
*  convert binary data to xstring
  CALL FUNCTION 'SCMS_BINARY_TO_XSTRING'
    EXPORTING
      input_length l_f_filelength
    IMPORTING
      buffer       l_f_headerxstring
    TABLES
      binary_tab   l_t_records
    EXCEPTIONS
      failed       1
      OTHERS       2.
  IF sy-subrc <> .
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  DATA lo_excel_ref TYPE REF TO cl_fdt_xl_spreadsheet .

  TRY .
      lo_excel_ref NEW cl_fdt_xl_spreadsheet(
                              document_name l_f_filename
                              xdocument     l_f_headerxstring .
    CATCH cx_fdt_excel_core.
      "Implement suitable error handling here
  ENDTRY .

  "Get List of Worksheets
  lo_excel_ref->if_fdt_doc_spreadsheet~get_worksheet_names(
    IMPORTING
      worksheet_names DATA(l_t_worksheets).

  IF NOT l_t_worksheets IS INITIAL.
    READ TABLE l_t_worksheets INTO DATA(lf_woksheetnameINDEX 1.

    DATA(lo_data_reflo_excel_ref->if_fdt_doc_spreadsheet~get_itab_from_worksheet(
                                             lf_woksheetname ).
    "now you have excel work sheet data in dyanmic internal table
    ASSIGN lo_data_ref->TO <g_t_data>.
  ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PROCESS_FILE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM process_file .
  DATA l_f_numberofcolumns TYPE i.

  FIELD-SYMBOLS <l_r_data>   TYPE any,
                  <l_f_field>  TYPE any,
                  <l_f_field1> TYPE any.

  l_f_numberofcolumns 6.

  LOOP AT <g_t_data> ASSIGNING <l_r_data> FROM .

    "processing columns
    DO l_f_numberofcolumns TIMES.
      ASSIGN COMPONENT sy-index OF STRUCTURE <l_r_data> TO <l_f_field> .
      ASSIGN COMPONENT sy-index OF STRUCTURE g_r_file TO <l_f_field1>.
      IF <l_f_field> IS ASSIGNED AND <l_f_field1> IS ASSIGNED.
        <l_f_field1> <l_f_field>.
      ENDIF.
      UNASSIGN<l_f_field1><l_f_field>.
    ENDDO .
    APPEND g_r_file TO g_t_file.
    CLEAR g_r_file.
  ENDLOOP .
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  PROCESS_HU_CHANGE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM process_hu_change .
  CREATE OBJECT g_o_pack.
  LOOP AT g_t_file INTO g_r_file.
    CLEARg_f_error,g_f_error1g_f_guidg_f_check.
    REFRESH g_t_huhdrg_t_huiden.
    PERFORM fetch_hu_data USING g_r_file
                          CHANGING g_t_huhdr
                                   g_t_huiden.
    IF g_t_huhdr IS NOT INITIAL.
      READ TABLE g_t_huhdr INTO g_r_huhdr INDEX 1.
      IF sy-subrc 0.
        g_f_guid g_r_huhdr-guid_hu.
      ENDIF.
      PERFORM init_hu USING g_r_file.
      IF g_r_file-boe IS NOT INITIAL.      " BOE
        CLEARg_f_idartg_f_huident.
        g_f_idart 'B'.
        g_f_huident g_r_file-boe.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
        IF g_f_error IS INITIAL.
          PERFORM update_hu USING g_f_huident
                                  g_f_idart
                                  g_f_guid
                           CHANGING g_f_error1.
          IF g_f_error1 IS NOT INITIAL.
            g_f_check abap_true.
          ENDIF.
        ENDIF.
      ELSE.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
      ENDIF.
      IF g_r_file-dec_num IS NOT INITIAL.  " Declaration Number
        CLEARg_f_idartg_f_huident.
        g_f_idart 'N'.
        g_f_huident g_r_file-dec_num.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
        IF g_f_error IS INITIAL.
          PERFORM update_hu USING g_f_huident
                                  g_f_idart
                                  g_f_guid
                            CHANGING g_f_error1.
          IF g_f_error1 IS NOT INITIAL.
            g_f_check abap_true.
          ENDIF.
        ENDIF.
      ELSE.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
      ENDIF.
      IF g_r_file-dec_date IS NOT INITIAL" Declaration date
        CLEARg_f_idartg_f_huident.
        g_f_idart 'D'.
        g_f_huident g_r_file-dec_date.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
        IF g_f_error IS INITIAL.
          PERFORM update_hu USING g_f_huident
                                  g_f_idart
                                  g_f_guid
                            CHANGING g_f_error1.
          IF g_f_error1 IS NOT INITIAL.
            g_f_check abap_true.
          ENDIF.
        ENDIF.
      ELSE.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
      ENDIF.
      IF g_r_file-lot_num IS NOT INITIAL.  " Lot Number
        CLEARg_f_idartg_f_huident.
        g_f_idart 'L'.
        g_f_huident g_r_file-lot_num.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
        IF g_f_error IS INITIAL.
          PERFORM update_hu USING g_f_huident
                                  g_f_idart
                                  g_f_guid
                            CHANGING g_f_error1.
          IF g_f_error1 IS NOT INITIAL.
            g_f_check abap_true.
          ENDIF.
        ENDIF.
      ELSE.
        PERFORM clear_boe USING g_f_guid
                                g_f_idart
                          CHANGING g_f_error.
      ENDIF.
    ENDIF.
    IF g_f_check IS NOT INITIAL.
      g_r_final-remarks TEXT-021.
      g_r_final-status icon_red_light.
    ELSE.
      CALL METHOD g_o_pack->/scwm/if_pack_bas~save
        EXPORTING
          iv_commit 'X'
          iv_wait   'X'
        EXCEPTIONS
          error     1
          OTHERS    2.
      IF sy-subrc <> 0.
        g_r_final-remarks TEXT-021.
        g_r_final-status icon_red_light.
      ELSE.
        CALL METHOD /scwm/cl_pack=>/scwm/if_pack_bas~cleanup.
        g_r_final-remarks TEXT-022.
        g_r_final-status icon_green_light.
      ENDIF.
    ENDIF.
    g_r_final-hu       g_r_file-hu.
    g_r_final-uname    sy-uname.
    g_r_final-udate    sy-datum.
    g_r_final-utime    sy-uzeit.
    APPEND g_r_final TO g_t_final.
    CLEARg_r_final.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FETCH_HU_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fetch_hu_data USING i_r_file TYPE l_s_file
                   CHANGING c_t_huhdr TYPE /scwm/tt_huhdr_int
                            c_t_huiden TYPE /scwm/tt_ident_int.
  DATAl_r_hu_inp TYPE /scwm/s_huident,
        l_t_hu_inp TYPE /scwm/tt_huident.
  CLEARl_r_hu_inpREFRESH l_t_hu_inp.
  l_r_hu_inp-lgnum i_r_file-lgnum.
  l_r_hu_inp-huident |{ i_r_file-hu ALPHA IN }|.
  APPEND l_r_hu_inp TO l_t_hu_inp.
  CALL FUNCTION '/SCWM/HU_SELECT'
    EXPORTING
      it_huident l_t_hu_inp
    IMPORTING
      et_huhdr   c_t_huhdr
      et_ident   c_t_huiden
    EXCEPTIONS
      not_found  1
      error      2
      OTHERS     3.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  INIT_HU
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_G_R_FILE  text
*----------------------------------------------------------------------*
FORM init_hu  USING  i_r_file TYPE l_s_file.
  CALL METHOD g_o_pack->init_pack
    EXPORTING
      iv_badi_appl g_c_wme
*     it_guid_hu   =
*     iv_loc_type  =
*     iv_loc_index =
*     iv_no_refresh =
      iv_lgnum     i_r_file-lgnum
*     iv_lock      = SPACE
    IMPORTING
      et_hutree    DATA(l_t_hutree)
      et_huhdr     DATA(huhdr)
      et_huitm     DATA(huitm)
    EXCEPTIONS
      error        1
      OTHERS       2.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  CLEAR_BOE
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_G_R_FINAL  text
*----------------------------------------------------------------------*
FORM clear_boe  USING i_f_guid TYPE /scwm/guid_hu
                      i_f_idart TYPE /scwm/de_huidart
                CHANGING i_f_error TYPE boolean.
  CALL METHOD g_o_pack->/scwm/if_pack_bas~hu_ident_remove
    EXPORTING
      iv_guid_hu i_f_guid
      iv_idart   i_f_idart
    EXCEPTIONS
      error      1
      OTHERS     2.
  IF sy-subrc <> 0.
    i_f_error abap_true.
  ELSE.
    CLEAR i_f_error.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  UPDATE_HU
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_G_R_FILE  text
*----------------------------------------------------------------------*
FORM update_hu  USING i_r_huident TYPE /scwm/de_ident
                      i_f_idart TYPE /scwm/de_huidart
                      i_f_guid TYPE /scwm/guid_hu
                CHANGING i_f_error1 TYPE boolean.

  CALL METHOD g_o_pack->/scwm/if_pack_bas~hu_ident_set
    EXPORTING
      iv_guid_hu i_f_guid
      iv_huident i_r_huident
      iv_idart   i_f_idart
    EXCEPTIONS
      error      1
      OTHERS     2.
  IF sy-subrc 0.
    i_f_error1 abap_false.
  ELSE.
    i_f_error1 abap_true.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  CALL_REUSE_ALV_GRID_DISPLAY
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM call_reuse_alv_grid_display .
  g_r_layout-zebra             g_c_x.
  g_r_layout-colwidth_optimize g_c_x.

  REFRESH:g_t_fcat.
  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   1.
  g_r_fcat-fieldname TEXT-009.
  g_r_fcat-seltext_l TEXT-010.
  g_r_fcat-key       g_c_x.
  APPEND g_r_fcat TO g_t_fcat.

  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   2.
  g_r_fcat-fieldname TEXT-011.
  g_r_fcat-seltext_l TEXT-012.
*  g_r_fcat-key       = g_c_x.
  APPEND g_r_fcat TO g_t_fcat.

  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   3.
  g_r_fcat-fieldname TEXT-013.
  g_r_fcat-seltext_l TEXT-014.
  APPEND g_r_fcat TO g_t_fcat.

  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   4.
  g_r_fcat-fieldname TEXT-015.
  g_r_fcat-seltext_l TEXT-016.
  g_r_fcat-icon g_c_x.
  APPEND g_r_fcat TO g_t_fcat.

  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   5.
  g_r_fcat-fieldname TEXT-017.
  g_r_fcat-seltext_l TEXT-018.
  APPEND g_r_fcat TO g_t_fcat.

  CLEAR:g_r_fcat.
  g_r_fcat-col_pos   6.
  g_r_fcat-fieldname TEXT-019.
  g_r_fcat-seltext_l TEXT-020.
  APPEND g_r_fcat TO g_t_fcat.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program sy-repid
*     i_callback_top_of_page = 'TOP_OF_PAGE'
      is_layout          g_r_layout
      it_fieldcat        g_t_fcat
    TABLES
      t_outtab           g_t_final.
ENDFORM.


001 Download Template(.xls)

002 Warehouse

003 Handling Unit

004 BOE

005 Dec Num

006 Dec date

007 Lot num

008 Select a file path

009 hu

010 Handling Unit

011 status

012 Status

013 remarks

014 Remarks

015 uname

016 Updated By

017 udate

018 Updated on

019 utime

020 Updated At

021 HU Identification details are not changed

022 HU Identification details are changed


Testing: 

    * Run the program 

    * Download the template.

     * Template like this.


Check HU:

    * Run the T-code - /SCWM/MON.

         * Give Warehouse number, monitor and execute.

         * Internal--> Stocks and Bin --> Double clicks on Handling Unit.

Before Update: 

     * Read HU data from database - /SCWM/HU_SELECT. Execute the FM.

                                                        OR

                                    Table - /SCWM/HU_IDENT.

        * Fill the IT_HUIDENT with warehouse and HU number.

         ET_IDENT - This table provides HU identification data.
    

        * B- BOE, D-Declaration date, N-Declaration number, L - Lot Number.
Input File:
        * Execute the Report with this file. HU data will update.
        


After Update: 

        * Execute the FM.



******************************Thank you*******************************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).