sap RMA Upload details

*----------------------------------------------------------------------*
*                                                                      *
*          S M A R T   M O D U L A R   T E C H N O L O G I E S         *
*                                                                      *
*----------------------------------------------------------------------*
* Program    : ZCREE_LOAD_DATA                                         *
* Module     :                                                         *
* Purpose    : Create basic data from File                             *
*----------------------------------------------------------------------*
* Created by :                                         *
* Date       :                                             *
*----------------------------------------------------------------------*
* History:                                                             *
* Request     Date        Reason                                       *
* MRDK945798  27.02.2020 Initial release                               *
*----------------------------------------------------------------------*

REPORT zcree_load_data_s MESSAGE-ID zmm NO STANDARD PAGE HEADING.


*----------------------------------------------------------------------*
*                  Includes
*----------------------------------------------------------------------*

INCLUDE:
ZCREE_LOAD_DATA_TOP2,
ZCREE_LOAD_DATA_C02.
*         zcree_load_data_c01.      " Include Class
*        ZEC_MKT_LOAD_DATA_O01,
*        ZEC_MKT_LOAD_DATA_I01.

*----------------------------------------------------------------------*
*
*                  M A I N   P R O G R A M
*
*----------------------------------------------------------------------*

*----------------------------------------------------------------------*
*                  INITIALIZATION
*----------------------------------------------------------------------*
*INITIALIZATION.

*----------------------------------------------------------------------*
*                  AT SELECTION-SCREEN
*----------------------------------------------------------------------*
*AT SELECTION-SCREEN  OUTPUT.

*PARAMETERS: p_file TYPE  rlgrap-filename.

* At selection screen


*AT SELECTION-SCREEN.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

*** Matchcode for File
  p_file = lcl_load=>f4_file(  ).

*----------------------------------------------------------------------*
*                  START OF SELECTION
*----------------------------------------------------------------------*
START-OF-SELECTION.

*** Get file data
  lcl_load=>get_filedata( ).


**----------------------------------------------------------------------*
**                  END OF SELECTION
**----------------------------------------------------------------------*
END-OF-SELECTION.

*  IF NOT p_dir  IS INITIAL.
**** Process Directly
*    lcl_ctdi=>process_directly( ).
*  ELSE.
*    IF NOT lcl_ctdi=>t_vbap[] IS INITIAL.
*      CALL SCREEN 0100.
*    ENDIF.
*

*  At selection screen
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.




**&---------------------------------------------------------------------*
**&  INCLUDE           ZEC_load_SDCREATION_C01
**&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
*       CLASS lcl_load_TEST DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
  CLASS lcl_load DEFINITION.

    PUBLIC SECTION.

      CLASS-DATA:
**********************************************************************
*** Internal Tables
**********************************************************************
        t_file           TYPE tt_file.

**********************************************************************
*** Ranges
**********************************************************************

**********************************************************************
*** Variables
**********************************************************************

*----------------------------------------------------------------------*
*                  ALV Objects
*----------------------------------------------------------------------*


**********************************************************************
*** Methods
**********************************************************************
      CLASS-METHODS:

        f4_file
          RETURNING
            VALUE(r_result) TYPE rlgrap-filename,

        get_filedata.


    PROTECTED SECTION.

    PRIVATE SECTION.

  ENDCLASS.                    "lcl_load_TEST DEFINITION


*----------------------------------------------------------------------*
*       CLASS lcl_load_TEST IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
  CLASS lcl_load IMPLEMENTATION.

*&---------------------------------------------------------------------*
*&      Method  F4_FILE
*&---------------------------------------------------------------------*
*       Matchcode for File
*----------------------------------------------------------------------*
  METHOD f4_file.

      DATA:
*** Local Internal Table
        lt_file_table   TYPE TABLE OF file_table,
        lt_file         TYPE tt_file,
*** Local Structures
        lw_file_table   TYPE file_table,
        lw_file         TYPE ty_file,
*** Local Variables
*        lv_window_title TYPE string,
*        lv_file_filter  TYPE string,
        lv_filename     TYPE string,
        lv_file         TYPE rlgrap-filename,
        lv_extension    TYPE char10,
        lv_rc           TYPE i.

*      lv_window_title = 'Open file'(020).
*      lv_file_filter  = 'Excel Files (*.XLS;*.XLSX)|*.XLS;*.XLSX'(021).
*       lv_file_filter  = 'Excel Files (*.XLS;*.XLSX)|*.XLS;*.XLSX'.
*        DATA(lv_file_filter) = |.xlsx|.
*        DATA(lv_window_title) = | { TEXT-010 } |.
*  DATA : l_returncode TYPE i,
*         it_file      TYPE filetable,
*         x_file       TYPE file_table.
**
*      REFRESH lt_file_table.
*
*      CALL METHOD cl_gui_frontend_services=>file_open_dialog
*        EXPORTING
*          window_title = lv_window_title
*          file_filter  = lv_file_filter
**         multiselection = 'X'            "Multiple selections possible
*        CHANGING
*          file_table   = lt_file_table
*          rc           = lv_rc.
*
*      CHECK NOT lt_file_table IS INITIAL.
*
*      SORT lt_file_table.
*      DELETE ADJACENT DUPLICATES FROM lt_file_table COMPARING ALL FIELDS.
*
*    IF sy-subrc <> 0.
*    WRITE : /2 TEXT-002.
*  ENDIF.
*
*     READ TABLE lt_file_table INTO x_file INDEX 1.
**      READ TABLE lt_file_table  INTO lw_file_table INDEX 1.
**      SPLIT lw_file_table-filename AT '\' INTO TABLE DATA(lt_table).
**      DESCRIBE TABLE lt_table LINES DATA(lv_lines).
**      READ TABLE lt_table INTO DATA(lv_table)  INDEX lv_lines.
**      SPLIT lv_table AT '.' INTO lv_filename lv_extension.
**      IF lv_filename CA '~!@#$%^&*()çÇÁáÂâÉéÊêÃãÕõ+{}|:"<>?/.,;]['.
***** Files with special characters will not be consider
**        MESSAGE i000 WITH TEXT-i05.
**      ENDIF.
**
**         lv_file     = lw_file_table-filename.
*
*      r_result = x_file.
*
*
*
*   IF sy-subrc EQ 0.
*   lv_file = x_file-filename.
*  ENDIF.






  DATA(l_defaultextension) = |.xlsx|.
  DATA(l_title) = | { TEXT-010 } |.
  DATA : l_returncode TYPE i,
         it_file      TYPE filetable,
         x_file       TYPE file_table.
* Fetch file name from Presentation Server
  CALL METHOD cl_gui_frontend_services=>file_open_dialog
    EXPORTING
      window_title            = l_title
      default_extension       = l_defaultextension
    CHANGING
      file_table              = it_file
      rc                      = l_returncode
    EXCEPTIONS
      file_open_dialog_failed = 1
      cntl_error              = 2
      error_no_gui            = 3
      not_supported_by_gui    = 4
      OTHERS                  = 5.
  IF sy-subrc <> 0.
    WRITE : /2 TEXT-002.
  ENDIF.

  READ TABLE it_file INTO x_file INDEX 1.
  IF sy-subrc EQ 0.
      lv_file = x_file-filename.
  ENDIF.

  r_result = x_file.

 ENDMETHOD.

*&---------------------------------------------------------------------*
*&      Method  GET_FILEDATA
*&---------------------------------------------------------------------*
*       Get file data
*----------------------------------------------------------------------*
    METHOD get_filedata.

      DATA:
*** Local Internal Table
        lt_content          TYPE TABLE OF STRING,
*        lt_zsghledrmaitm_l  TYPE TABLE OF zsghledrmaitm_l,
             lt_zsghledrmaitm_l  TYPE TABLE OF   ty_zsghledrmaitm_l,
*        lt_zsghledrmaitm_ins  TYPE TABLE OF zsghledrmaitm_l,
        lt_zsghledrmaitm_upd  TYPE TABLE OF ty_zsghledrmaitm_l,
*        lt_zsghledrmaitm_old  TYPE TABLE OF zsghledrmaitm_l,

*        x_zsghledrmaitm_upd   TYPE   ty_fzsghledrmaitm_l,
*   x_zsghledrmaitm_new TYPE   ty_fzsghledrmaitm_l,

*** Local Structures
        lw_content          TYPE STRING,
        lw_file             TYPE ty_file,
        lw_fzsghledrmaitm_l TYPE ty_fzsghledrmaitm_l,
*        lw_zsghledrmaitm_l  TYPE zsghledrmaitm_l,
     lw_zsghledrmaitm_l  TYPE  ty_zsghledrmaitm_l,

*** Local Variables
        lv_count            TYPE char10,
*       lv_filename    TYPE rlgrap-filename.
        lv_update_flag      type char10,
        lv_filename         TYPE string.
**SoC - AJYOTHI/21-Feb-2023-------------------------
      DATA: x_alv_display  TYPE zsd_struc_legacy_alv,
            it_alv_display TYPE STANDARD TABLE OF zsd_struc_legacy_alv,
            o_layout       TYPE REF TO cl_salv_layout,
            o_msg          TYPE REF TO cx_salv_msg,
            o_alv          TYPE REF TO cl_salv_table,
            o_columns      TYPE REF TO cl_salv_columns_table,
            l_repid        TYPE sy-repid,
            l_sel1_status  TYPE sypfkey VALUE 'STATUS_FULLSCREEN',
*           it_raw  TYPE truxs_t_text_data,
            l_update_flag  type char05,
            x_key          TYPE salv_s_layout_key.
      TYPES: it_final_tab  TYPE STANDARD TABLE OF zsd_struc_legacy_alv WITH EMPTY KEY. "04-Apr-2023/AJYOTHI/MRDK977999
      CONSTANTS:  c_e      TYPE c VALUE 'E',
                  c_upd         type  c Value 'Y',
                  c_ins    type  c Value  'N'.
**SoC - AJYOTHI/21-Feb-2023-------------------------
      CHECK NOT p_file     IS INITIAL.

      lv_filename = p_file.

      REFRESH:
        lt_content.


* Function module to Data Transfer with Excel
*    CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
*      EXPORTING
*        i_line_header        = abap_true
*        i_tab_raw_data       = it_raw
*        i_filename            = p_file
**        i_filename           = l_fname
*      TABLES
*       data_tab = lt_content
*
*      EXCEPTIONS
*        conversion_failed    = 1
*        OTHERS               = 2.


      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename = lv_filename
          filetype = 'ASC'

*         has_field_separator = 'X'
*         HEADER_LENGTH       = 0
*         READ_BY_LINE        = 'X'
*         DAT_MODE = ' '
*         CODEPAGE = ' '
*         IGNORE_CERR         = ABAP_TRUE
*         REPLACEMENT         = '#'
*         CHECK_BOM           = ' '
*         VIRUS_SCAN_PROFILE  = VIRUS_SCAN_PROFILE
*         NO_AUTH_CHECK       = ' '
*     IMPORTING
*         FILELENGTH          = FILELENGTH
*         HEADER   = HEADER

        TABLES
          data_tab = lt_content.

   CHECK NOT lt_content[] IS INITIAL.


      CLEAR lv_count.

     LOOP AT lt_content   INTO lw_content.


        CASE abap_true.
          WHEN p_rb01.   " ZSGHLEDRMAITM_L
            SPLIT lw_content
               AT ','
             INTO lw_fzsghledrmaitm_l-so
                  lw_fzsghledrmaitm_l-line
                  lw_fzsghledrmaitm_l-delivery
                  lw_fzsghledrmaitm_l-customer
                  lw_fzsghledrmaitm_l-company
                  lw_fzsghledrmaitm_l-soorg
                  lw_fzsghledrmaitm_l-distchan
                  lw_fzsghledrmaitm_l-division
                  lw_fzsghledrmaitm_l-toplevelmat
                  lw_fzsghledrmaitm_l-binitem
                  lw_fzsghledrmaitm_l-batch
                  lw_fzsghledrmaitm_l-lotnumber
                  lw_fzsghledrmaitm_l-price
                  lw_fzsghledrmaitm_l-shipqty
                  lw_fzsghledrmaitm_l-amount
                  lw_fzsghledrmaitm_l-bol
                  lw_fzsghledrmaitm_l-uom
                  lw_fzsghledrmaitm_l-currency
                  lw_fzsghledrmaitm_l-update_flag. "add by suli on 20230510

            lw_zsghledrmaitm_l-mandt     = sy-mandt.

            TRANSLATE lw_fzsghledrmaitm_l-so TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-so LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-so
              IMPORTING
                output = lw_zsghledrmaitm_l-so.

            SHIFT lw_zsghledrmaitm_l-line LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-line     = lw_fzsghledrmaitm_l-line.

            TRANSLATE lw_fzsghledrmaitm_l-delivery TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-delivery LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-delivery
              IMPORTING
                output = lw_zsghledrmaitm_l-delivery.

            TRANSLATE lw_fzsghledrmaitm_l-customer TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-customer LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-customer
              IMPORTING
                output = lw_zsghledrmaitm_l-customer.

            SHIFT lw_zsghledrmaitm_l-company LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-company     = lw_fzsghledrmaitm_l-company.

            SHIFT lw_zsghledrmaitm_l-soorg LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-soorg     = lw_fzsghledrmaitm_l-soorg.

            SHIFT lw_zsghledrmaitm_l-distchan LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-distchan     = lw_fzsghledrmaitm_l-distchan.

            SHIFT lw_zsghledrmaitm_l-division LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-division     = lw_fzsghledrmaitm_l-division.

            TRANSLATE lw_fzsghledrmaitm_l-toplevelmat TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-toplevelmat LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-toplevelmat
              IMPORTING
                output = lw_zsghledrmaitm_l-toplevelmat.

            TRANSLATE lw_fzsghledrmaitm_l-binitem TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-binitem LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-binitem
              IMPORTING
                output = lw_zsghledrmaitm_l-binitem.

            TRANSLATE lw_fzsghledrmaitm_l-batch TO UPPER CASE.
            SHIFT lw_fzsghledrmaitm_l-batch LEFT DELETING LEADING space.
            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
              EXPORTING
                input  = lw_fzsghledrmaitm_l-batch
              IMPORTING
                output = lw_zsghledrmaitm_l-batch.

            SHIFT lw_zsghledrmaitm_l-lotnumber LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-lotnumber     = lw_fzsghledrmaitm_l-lotnumber.

            SHIFT lw_fzsghledrmaitm_l-price LEFT DELETING LEADING space.
            REPLACE ',' WITH space INTO lw_fzsghledrmaitm_l-price.
            CONDENSE lw_fzsghledrmaitm_l-price NO-GAPS.
** BOC by KAMRUTHAA
*            lw_zsghledrmaitm_l-price = lw_fzsghledrmaitm_l-price.
            IF lw_zsghledrmaitm_l-price_unit IS INITIAL.
              lw_zsghledrmaitm_l-price_unit = 1000.
            ENDIF.
            lw_zsghledrmaitm_l-price = lw_fzsghledrmaitm_l-price * lw_zsghledrmaitm_l-price_unit.
** EOC by KAMRUTHAA

            SHIFT lw_fzsghledrmaitm_l-shipqty LEFT DELETING LEADING space.
            REPLACE ',' WITH space INTO lw_fzsghledrmaitm_l-shipqty.
            CONDENSE lw_fzsghledrmaitm_l-shipqty NO-GAPS.
            lw_zsghledrmaitm_l-shipqty = lw_fzsghledrmaitm_l-shipqty.

            SHIFT lw_fzsghledrmaitm_l-amount LEFT DELETING LEADING space.
            REPLACE ',' WITH space INTO lw_fzsghledrmaitm_l-amount.
            CONDENSE lw_fzsghledrmaitm_l-amount NO-GAPS.
            lw_zsghledrmaitm_l-amount = lw_fzsghledrmaitm_l-amount.

            SHIFT lw_zsghledrmaitm_l-bol LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-bol     = lw_fzsghledrmaitm_l-bol.

            SHIFT lw_zsghledrmaitm_l-uom LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-uom     = lw_fzsghledrmaitm_l-uom.

            SHIFT lw_zsghledrmaitm_l-currency LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-currency     = lw_fzsghledrmaitm_l-currency.

            SHIFT lw_zsghledrmaitm_l-update_flag LEFT DELETING LEADING space.
            lw_zsghledrmaitm_l-update_flag     = lw_fzsghledrmaitm_l-update_flag.

            APPEND lw_zsghledrmaitm_l   TO lt_zsghledrmaitm_l.
            CLEAR  lw_zsghledrmaitm_l.

          WHEN p_rb02.   "
          WHEN p_rb03.   "
*          WHEN p_rb04.   " ZEC_ROYALTY  Smart EC ZSGHLEDRMAITM_L & Royalty Information
*            SPLIT lw_content
*               AT '|'
*             INTO lw_froyalty-matnr
*                  lw_froyalty-ZSGHLEDRMAITM_L
*                  lw_froyalty-ltext
*                  lw_froyalty-date_from
*                  lw_froyalty-date_to
*                  lw_froyalty-menge
*                  lw_froyalty-lifnr
**                  lw_froyalty-name1
**                  lw_froyalty-name2
**                  lw_froyalty-maktx
*                  lw_froyalty-stprs
*                  lw_froyalty-waers.
*
**            CLEAR  lw_ZSGHLEDRMAITM_L.
**            lw_ZSGHLEDRMAITM_L-mandt     = sy-mandt.
**            lw_ZSGHLEDRMAITM_L-ZSGHLEDRMAITM_L   = lw_froyalty-ZSGHLEDRMAITM_L.
**            TRANSLATE lw_ZSGHLEDRMAITM_L-ZSGHLEDRMAITM_L TO UPPER CASE.
**            SHIFT lw_ZSGHLEDRMAITM_L-ZSGHLEDRMAITM_L LEFT DELETING LEADING space.
**            lw_ZSGHLEDRMAITM_L-ltext     = lw_froyalty-ltext.
**            SHIFT lw_ZSGHLEDRMAITM_L-ltext LEFT DELETING LEADING space.
**            APPEND lw_ZSGHLEDRMAITM_L   TO lt_ZSGHLEDRMAITM_L.
*
*            lw_royalty-mandt     = sy-mandt.
*
*            TRANSLATE lw_froyalty-matnr TO UPPER CASE.
*            SHIFT lw_froyalty-matnr LEFT DELETING LEADING space.
*            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*              EXPORTING
*                input  = lw_froyalty-matnr
*              IMPORTING
*                output = lw_royalty-matnr.
*
*            lw_royalty-ZSGHLEDRMAITM_L   = lw_ZSGHLEDRMAITM_L-ZSGHLEDRMAITM_L.
*            lw_royalty-ltext     = lw_ZSGHLEDRMAITM_L-ltext.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_froyalty-date_from
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_royalty-date_from
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_froyalty-date_to
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_royalty-date_to
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            SHIFT lw_froyalty-menge LEFT DELETING LEADING space.
*            REPLACE ',' WITH space INTO lw_froyalty-menge.
*            CONDENSE lw_froyalty-menge NO-GAPS.
*            lw_royalty-menge = lw_froyalty-menge.
*
*            TRANSLATE lw_froyalty-lifnr TO UPPER CASE.
*            SHIFT lw_froyalty-lifnr LEFT DELETING LEADING space.
*            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*              EXPORTING
*                input  = lw_froyalty-lifnr
*              IMPORTING
*                output = lw_royalty-lifnr.
*
**** Vendor name
*            CLEAR lw_lfa1.
*            SELECT SINGLE *
*              INTO lw_lfa1
*              FROM lfa1
*             WHERE lifnr  EQ lw_royalty-lifnr.
*            IF sy-subrc IS INITIAL.
*              lw_royalty-name1     = lw_lfa1-name1.
*              lw_royalty-name2     = lw_lfa1-name2.
*            ENDIF.
*
**** Material Description
*            CLEAR lw_makt.
*            SELECT SINGLE *
*              INTO lw_makt
*              FROM makt
*             WHERE matnr   EQ lw_royalty-matnr
*               AND spras   EQ sy-langu.
*            IF sy-subrc IS INITIAL.
*              lw_royalty-maktx     = lw_makt-maktx.
*            ENDIF.
*
*            SHIFT lw_froyalty-stprs LEFT DELETING LEADING space.
*            REPLACE ',' WITH space INTO lw_froyalty-stprs.
*            CONDENSE lw_froyalty-stprs NO-GAPS.
*            lw_royalty-stprs = lw_froyalty-stprs.
*
*            lw_royalty-waers     = lw_froyalty-waers.
*
*            APPEND lw_royalty   TO lt_royalty.
*            CLEAR  lw_royalty.

          WHEN p_rb05.    " ZEC_MTLMB    Material Marketing workbench
*            SPLIT lw_content
*               AT '|'
*             INTO lw_fmtlmb-matnr
*                  lw_fmtlmb-prodowner
*                  lw_fmtlmb-technology
*                  lw_fmtlmb-prodfamily
*                  lw_fmtlmb-prodline
*                  lw_fmtlmb-itemclass
*                  lw_fmtlmb-processortype
*                  lw_fmtlmb-comments
*                  lw_fmtlmb-status
*                  lw_fmtlmb-reasoncode
*                  lw_fmtlmb-eol_number
*                  lw_fmtlmb-replacement
*                  lw_fmtlmb-ce_mark
*                  lw_fmtlmb-compliance
*                  lw_fmtlmb-special_item
*                  lw_fmtlmb-special_customer
*                  lw_fmtlmb-rev_control
*                  lw_fmtlmb-first_order
*                  lw_fmtlmb-early_access
*                  lw_fmtlmb-planned_release
*                  lw_fmtlmb-actual_release
*                  lw_fmtlmb-eol_date
*                  lw_fmtlmb-last_orddate
*                  lw_fmtlmb-last_shipdate
*                  lw_fmtlmb-late_stage
*                  lw_fmtlmb-releasedate
*                  lw_fmtlmb-first_shipdate
*                  lw_fmtlmb-gadate
*                  lw_fmtlmb-relefactdt
*                  lw_fmtlmb-buyer_notes
*                  lw_fmtlmb-eccn
*                  lw_fmtlmb-subeccn
*                  lw_fmtlmb-hts
*                  lw_fmtlmb-msl
*                  lw_fmtlmb-rohs
*                  lw_fmtlmb-rohs_status
*                  lw_fmtlmb-safety_cat
*                  lw_fmtlmb-comp_cat
*                  lw_fmtlmb-ipc_cat
*                  lw_fmtlmb-scml
*                  lw_fmtlmb-checksum
*                  lw_fmtlmb-garbage.
*
*            lw_mtlmb-mandt     = sy-mandt.
*            TRANSLATE lw_fmtlmb-matnr TO UPPER CASE.
*            SHIFT lw_fmtlmb-matnr LEFT DELETING LEADING space.
*            CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
*              EXPORTING
*                input  = lw_fmtlmb-matnr
*              IMPORTING
*                output = lw_mtlmb-matnr.
*
*            TRANSLATE lw_fmtlmb-prodowner TO UPPER CASE.
*            SHIFT lw_fmtlmb-prodowner LEFT DELETING LEADING space.
*            lw_mtlmb-prodowner     = lw_fmtlmb-prodowner.
*
*            TRANSLATE lw_fmtlmb-technology TO UPPER CASE.
*            SHIFT lw_fmtlmb-technology LEFT DELETING LEADING space.
*            lw_mtlmb-technology     = lw_fmtlmb-technology.
*
*            TRANSLATE lw_fmtlmb-prodfamily TO UPPER CASE.
*            SHIFT lw_fmtlmb-prodfamily LEFT DELETING LEADING space.
*            lw_mtlmb-prodfamily     = lw_fmtlmb-prodfamily.
*
*            TRANSLATE lw_fmtlmb-prodline TO UPPER CASE.
*            SHIFT lw_fmtlmb-prodline LEFT DELETING LEADING space.
*            lw_mtlmb-prodline     = lw_fmtlmb-prodline.
*
*            TRANSLATE lw_fmtlmb-itemclass TO UPPER CASE.
*            SHIFT lw_fmtlmb-itemclass LEFT DELETING LEADING space.
*            lw_mtlmb-itemclass    = lw_fmtlmb-itemclass.
*
*            TRANSLATE lw_fmtlmb-processortype TO UPPER CASE.
*            SHIFT lw_fmtlmb-processortype LEFT DELETING LEADING space.
*            lw_mtlmb-processortype     = lw_fmtlmb-processortype.
*
*            TRANSLATE lw_fmtlmb-comments TO UPPER CASE.
*            SHIFT lw_fmtlmb-comments LEFT DELETING LEADING space.
*            lw_mtlmb-comments     = lw_fmtlmb-comments.
*
*            TRANSLATE lw_fmtlmb-status TO UPPER CASE.
*            SHIFT lw_fmtlmb-status LEFT DELETING LEADING space.
*            lw_mtlmb-status     = lw_fmtlmb-status.
*
*            TRANSLATE lw_fmtlmb-reasoncode TO UPPER CASE.
*            SHIFT lw_fmtlmb-reasoncode LEFT DELETING LEADING space.
*            lw_mtlmb-reasoncode     = lw_fmtlmb-reasoncode.
*
*            TRANSLATE lw_fmtlmb-eol_number TO UPPER CASE.
*            SHIFT lw_fmtlmb-eol_number LEFT DELETING LEADING space.
*            lw_mtlmb-eol_number    = lw_fmtlmb-eol_number.
*
*            TRANSLATE lw_fmtlmb-replacement TO UPPER CASE.
*            SHIFT lw_fmtlmb-replacement LEFT DELETING LEADING space.
*            lw_mtlmb-replacement     = lw_fmtlmb-replacement.
*
*            TRANSLATE lw_fmtlmb-ce_mark TO UPPER CASE.
*            SHIFT lw_fmtlmb-ce_mark LEFT DELETING LEADING space.
*            lw_mtlmb-ce_mark     = lw_fmtlmb-ce_mark.
*
*            TRANSLATE lw_fmtlmb-compliance TO UPPER CASE.
*            SHIFT lw_fmtlmb-compliance LEFT DELETING LEADING space.
*            lw_mtlmb-compliance     = lw_fmtlmb-compliance.
*
*            TRANSLATE lw_fmtlmb-special_item TO UPPER CASE.
*            SHIFT lw_fmtlmb-special_item LEFT DELETING LEADING space.
*            lw_mtlmb-special_item     = lw_fmtlmb-special_item.
*
*            TRANSLATE lw_fmtlmb-special_customer TO UPPER CASE.
*            SHIFT lw_fmtlmb-special_customer LEFT DELETING LEADING space.
*            lw_mtlmb-special_customer     = lw_fmtlmb-special_customer.
*
*            TRANSLATE lw_fmtlmb-rev_control TO UPPER CASE.
*            SHIFT lw_fmtlmb-rev_control LEFT DELETING LEADING space.
*            lw_mtlmb-rev_control     = lw_fmtlmb-rev_control.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-first_order
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-first_order
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-early_access
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-early_access
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-planned_release
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-planned_release
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-actual_release
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-actual_release
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-eol_date
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-eol_date
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-last_orddate
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-last_orddate
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-last_shipdate
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-last_shipdate
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-releasedate
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-releasedate
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-first_shipdate
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-first_shipdate
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-gadate
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-gadate
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
*              EXPORTING
*                date_external            = lw_fmtlmb-relefactdt
**               ACCEPT_INITIAL_DATE      =
*              IMPORTING
*                date_internal            = lw_mtlmb-relefactdt
*              EXCEPTIONS
*                date_external_is_invalid = 1
*                OTHERS                   = 2.
*
*            TRANSLATE lw_fmtlmb-late_stage TO UPPER CASE.
*            SHIFT lw_fmtlmb-late_stage LEFT DELETING LEADING space.
*            lw_mtlmb-late_stage     = lw_fmtlmb-late_stage.
*
*            TRANSLATE lw_fmtlmb-buyer_notes TO UPPER CASE.
*            SHIFT lw_fmtlmb-buyer_notes LEFT DELETING LEADING space.
*            lw_mtlmb-buyer_notes     = lw_fmtlmb-buyer_notes.
*
*            TRANSLATE lw_fmtlmb-eccn TO UPPER CASE.
*            SHIFT lw_fmtlmb-eccn LEFT DELETING LEADING space.
*            lw_mtlmb-eccn    = lw_fmtlmb-eccn.
*
*            TRANSLATE lw_fmtlmb-subeccn TO UPPER CASE.
*            SHIFT lw_fmtlmb-subeccn LEFT DELETING LEADING space.
*            lw_mtlmb-subeccn     = lw_fmtlmb-subeccn.
*
*            TRANSLATE lw_fmtlmb-hts TO UPPER CASE.
*            SHIFT lw_fmtlmb-rev_control LEFT DELETING LEADING space.
*            lw_mtlmb-hts     = lw_fmtlmb-hts.
*
*            TRANSLATE lw_fmtlmb-msl TO UPPER CASE.
*            SHIFT lw_fmtlmb-msl LEFT DELETING LEADING space.
*            lw_mtlmb-msl    = lw_fmtlmb-msl.
*
*            TRANSLATE lw_fmtlmb-rohs TO UPPER CASE.
*            SHIFT lw_fmtlmb-rohs LEFT DELETING LEADING space.
*            lw_mtlmb-rohs     = lw_fmtlmb-rohs.
*
*            TRANSLATE lw_fmtlmb-rohs_status TO UPPER CASE.
*            SHIFT lw_fmtlmb-rohs_status LEFT DELETING LEADING space.
*            lw_mtlmb-rohs_status     = lw_fmtlmb-rohs_status.
*
*            TRANSLATE lw_fmtlmb-safety_cat TO UPPER CASE.
*            SHIFT lw_fmtlmb-safety_cat LEFT DELETING LEADING space.
*            lw_mtlmb-safety_cat     = lw_fmtlmb-safety_cat.
*
*            TRANSLATE lw_fmtlmb-comp_cat TO UPPER CASE.
*            SHIFT lw_fmtlmb-comp_cat LEFT DELETING LEADING space.
*            lw_mtlmb-comp_cat     = lw_fmtlmb-comp_cat.
*
*            TRANSLATE lw_fmtlmb-ipc_cat TO UPPER CASE.
*            SHIFT lw_fmtlmb-ipc_cat LEFT DELETING LEADING space.
*            lw_mtlmb-ipc_cat     = lw_fmtlmb-ipc_cat.
*
*            TRANSLATE lw_fmtlmb-scml TO UPPER CASE.
*            SHIFT lw_fmtlmb-scml LEFT DELETING LEADING space.
*            lw_mtlmb-scml     = lw_fmtlmb-scml.
*
*            TRANSLATE lw_fmtlmb-checksum TO UPPER CASE.
*            SHIFT lw_fmtlmb-checksum LEFT DELETING LEADING space.
*            lw_mtlmb-checksum     = lw_fmtlmb-checksum.
*
*            APPEND lw_mtlmb   TO lt_mtlmb.
*            CLEAR  lw_mtlmb.

          WHEN OTHERS.
        ENDCASE.
      ENDLOOP.   " LT_CONTENT
      IF NOT lt_zsghledrmaitm_l[] IS INITIAL  . "(内表不为空)
        SORT lt_zsghledrmaitm_l BY so line delivery lotnumber. "Added lotnumber by KAMRUTHAA
        DELETE ADJACENT DUPLICATES FROM lt_zsghledrmaitm_l COMPARING so line delivery lotnumber. "Added lotnumber by KAMRUTHAA
**SoC - AJYOTHI/21-Feb-2023-------------------------
**Display Status of uploaded data via ALV-----------
**SoC - 04-Apr-2023/AJYOTHI/MRDK977999----------------
**Performance Optimization

*
        lt_zsghledrmaitm_upd[] = lt_zsghledrmaitm_l[].
*        DELETE  lt_zsghledrmaitm_upd WHERE update_flag NE c_upd."'N'.
*        IF  lt_zsghledrmaitm_upd IS NOT INITIAL.
     LOOP AT  lt_zsghledrmaitm_l   ASSIGNING FIELD-SYMBOL(<x_all>).


      if <x_all>-update_flag = 'Y'.

          SELECT SINGLE *
          FROM zsghledrmaitm_l
            INTO  @DATA(y_zsghledrmaitm_upd)
              WHERE so = @<x_all>-so
              AND line = @<x_all>-line
              AND delivery = @<x_all>-delivery
              AND lotnumber = @<x_all>-lotnumber.

         IF sy-subrc IS INITIAL.
           MOVE-CORRESPONDING <x_all> TO y_zsghledrmaitm_upd.
           <x_all> =  y_zsghledrmaitm_upd.
           UPDATE  zsghledrmaitm_l  FROM y_zsghledrmaitm_upd.

          MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
          x_alv_display-message =  'S:Entry Update Successful'(000).

          APPEND x_alv_display  TO   it_alv_display.
               COMMIT WORK.
              ELSE.
       UPDATE   zsghledrmaitm_l  FROM y_zsghledrmaitm_upd.

          MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
          x_alv_display-message =   'E:Entry Update Unsuccessful'.

          APPEND x_alv_display  TO   it_alv_display.
             ROLLBACK WORK.

    endif .





        ELSE.

            READ TABLE  lt_zsghledrmaitm_upd ASSIGNING FIELD-SYMBOL(<x_upd>) WITH KEY so = <x_all>-so
                                                                           line = <x_all>-line
                                                                        delivery =  <x_all>-delivery
                                                                       lotnumber = <x_all>-lotnumber
                                                                       update_flag = ''.

         SELECT SINGLE *
          FROM zsghledrmaitm_l
            INTO  @DATA(y_zsghledrmaitm_old)
              WHERE so = @<x_all>-so
              AND line = @<x_all>-line
              AND delivery = @<x_all>-delivery
              AND lotnumber = @<x_all>-lotnumber.





         IF sy-subrc IS  INITIAL.

                 MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
          x_alv_display-message =  'S:Entry exist '.

          APPEND x_alv_display  TO   it_alv_display.
               COMMIT WORK.

      else.

               modify  zsghledrmaitm_l FROM  <x_all>.
                      COMMIT WORK.

              MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
          x_alv_display-message =  'S:Entry Create Successful'.

          APPEND x_alv_display  TO   it_alv_display.
               COMMIT WORK.

         ENDIF.



*
     endif.




       endloop.
*   CLEAR: y_zsghledrmaitm_upd.
*      CLEAR:   lt_zsghledrmaitm_l .
*
*        IF sy-subrc IS INITIAL.
*          WRITE sy-dbcnt  TO lv_count.
***SoC - AJYOTHI/21-Feb-2023-------------------------
***Display Status of uploaded data via ALV-----------
***          MESSAGE i000 WITH lv_count TEXT-i01.
*          MESSAGE s000 WITH TEXT-i01 lv_count.
***EoC - AJYOTHI/21-Feb-2023-------------------------
*          COMMIT WORK AND WAIT.
*        ENDIF.
*      ENDIF.
**SoC - AJYOTHI/21-Feb-2023-------------------------
**Display Status of uploaded data via ALV-----------
*      IF lt_zsghledrmaitm_l IS NOT INITIAL .    "(用于检查一个变量的值是否为其数据类型对应的初始值)
**SoC - 04-Apr-2023/AJYOTHI/MRDK977999----------------
**Performance Optimization

*
*     LOOP AT  lt_zsghledrmaitm_l   ASSIGNING FIELD-SYMBOL(<x_new>).

*      if <x_new>-update_flag = 'N'.
*
*          SELECT SINGLE *
*          FROM zsghledrmaitm_l
*            INTO  @DATA(y_zsghledrmaitm_new)
*              WHERE so = @<x_new>-so
*              AND line = @<x_new>-line
*              AND delivery = @<x_new>-delivery
*              AND lotnumber = @<x_new>-lotnumber.
*
*         IF sy-subrc IS INITIAL.
*
**           DATA(SO)= y_zsghledrmaitm_upd-SO.
*           MOVE-CORRESPONDING <x_new> TO y_zsghledrmaitm_new.
*           <x_new> =  y_zsghledrmaitm_new.
*
**              READ TABLE  lt_zsghledrmaitm_new ASSIGNING FIELD-SYMBOL(<x_new>) WITH KEY so = <x_new>-so
**                                                                           line = <x_new>-line
**                                                                        delivery =  <x_new>-delivery
**                                                                       lotnumber = <x_new>-lotnumber.
*
*
*
*
*        MODIFY zsghledrmaitm_l  FROM y_zsghledrmaitm_new.
*
*          MOVE-CORRESPONDING  <x_new> TO   x_alv_display .
*          x_alv_display-message =  'S:Entry new Successful'(000).
*
*          APPEND x_alv_display  TO   it_alv_display.
*               COMMIT WORK.
*              ELSE.
*             MODIFY zsghledrmaitm_l  FROM y_zsghledrmaitm_new.
*
*          MOVE-CORRESPONDING  <x_new> TO   x_alv_display .
*          x_alv_display-message =   'E:Entry new Unsuccessful'(001).
*
*          APPEND x_alv_display  TO   it_alv_display.
*             ROLLBACK WORK.
*
*
*    endif .
*
**       if <x_all>-update_flag = 'N'.
**
**           SELECT SINGLE *
**          FROM zsghledrmaitm_l
**            INTO  @DATA(y_zsghledrmaitm_new)
**              WHERE so = @<x_all>-so
**              AND line = @<x_all>-line
**              AND delivery = @<x_all>-delivery
**              AND lotnumber = @<x_all>-lotnumber.
**
**           IF sy-subrc IS INITIAL.
**
***           DATA(SO)= y_zsghledrmaitm_upd-SO.
**           MOVE-CORRESPONDING <x_all> TO y_zsghledrmaitm_new.
**           <x_all> =  y_zsghledrmaitm_new.
**
**              READ TABLE  lt_zsghledrmaitm_upd ASSIGNING FIELD-SYMBOL(<x_upd>) WITH KEY so = <x_all>-so
**                                                                           line = <x_all>-line
**                                                                        delivery =  <x_all>-delivery
**                                                                       lotnumber = <x_all>-lotnumber.
**
**
**
**
**        MODIFY zsghledrmaitm_l  FROM y_zsghledrmait_new.
**
**          MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
**          x_alv_display-message =  'S:Entry Update Successful'(000).
**
**          APPEND x_alv_display  TO   it_alv_display.
**               COMMIT WORK.
**              ELSE.
**             MODIFY zsghledrmaitm_l  FROM y_zsghledrmait_new.
**
**          MOVE-CORRESPONDING  <x_all> TO   x_alv_display .
**          x_alv_display-message =   'E:Entry Update Unsuccessful'(001).
**
**          APPEND x_alv_display  TO   it_alv_display.
**             ROLLBACK WORK.
**
**
**        ENDIF.
*
*
*
*IF sy-subrc IS INITIAL.
*          WRITE sy-dbcnt  TO lv_count.
***SoC - AJYOTHI/21-Feb-2023-------------------------
***Display Status of uploaded data via ALV-----------
***          MESSAGE i000 WITH lv_count TEXT-i01.
*          MESSAGE s000 WITH TEXT-i01 lv_count.
***EoC - AJYOTHI/21-Feb-2023-------------------------
*          COMMIT WORK AND WAIT.
*        ENDIF.
*
*     endif.
*endloop.





*        SELECT *
*          FROM zsghledrmaitm_l
*            FOR ALL ENTRIES IN @lt_zsghledrmaitm_l
*              WHERE so = @lt_zsghledrmaitm_l-so
*              AND line = @lt_zsghledrmaitm_l-line
*              AND delivery = @lt_zsghledrmaitm_l-delivery
*              AND lotnumber = @lt_zsghledrmaitm_l-lotnumber
*              INTO TABLE @DATA(it_legacy_new_data).
*





*
*        it_alv_display = VALUE it_final_tab( FOR <fs_final_tab> IN lt_zsghledrmaitm_l
**                                   WHERE (  update_flag = 'N' or update_flag =''  )
*
*        ( so = <fs_final_tab>-so
*          line = <fs_final_tab>-line
*          delivery = <fs_final_tab>-delivery
*          lotnumber = <fs_final_tab>-lotnumber
*          customer = <fs_final_tab>-customer
*          company = <fs_final_tab>-company
*          soorg = <fs_final_tab>-soorg
*          distchan = <fs_final_tab>-distchan
*          division = <fs_final_tab>-division
*          toplevelmat = <fs_final_tab>-toplevelmat
*          binitem = <fs_final_tab>-binitem
*          batch = <fs_final_tab>-batch
*          price = <fs_final_tab>-price
*          price_unit = <fs_final_tab>-price_unit
*          shipqty = <fs_final_tab>-shipqty
*          amount = <fs_final_tab>-amount
*          bol = <fs_final_tab>-bol
*          uom = <fs_final_tab>-uom
*          currency = <fs_final_tab>-currency
*          update_flag = <fs_final_tab>-update_flag
*          message = COND #( WHEN NOT line_exists( it_legacy_old_data[ so = <fs_final_tab>-so
*                                     line = <fs_final_tab>-line
*                                     delivery = <fs_final_tab>-delivery
*                                     lotnumber = <fs_final_tab>-lotnumber ] )
*                            THEN COND #( WHEN line_exists( it_legacy_new_data[ so = <fs_final_tab>-so
*                                              line = <fs_final_tab>-line
*                                              delivery = <fs_final_tab>-delivery
*                                              lotnumber = <fs_final_tab>-lotnumber ] )
*                                         THEN 'Record Created Successfully'(001)
*                                         ELSE 'Record Not Created'(004) )
*                            ELSE COND #( WHEN line_exists( it_legacy_old_data[ so = <fs_final_tab>-so
*                                              line = <fs_final_tab>-line
*                                              delivery = <fs_final_tab>-delivery
*                                              lotnumber = <fs_final_tab>-lotnumber
*                                              customer = <fs_final_tab>-customer
*                                              company = <fs_final_tab>-company
*                                              soorg = <fs_final_tab>-soorg
*                                              distchan = <fs_final_tab>-distchan
*                                              division = <fs_final_tab>-division
*                                              toplevelmat = <fs_final_tab>-toplevelmat
*                                              binitem = <fs_final_tab>-binitem
*                                              batch = <fs_final_tab>-batch
*                                              price = <fs_final_tab>-price
*                                              price_unit = <fs_final_tab>-price_unit
*                                              shipqty = <fs_final_tab>-shipqty
*                                              amount = <fs_final_tab>-amount
*                                              bol = <fs_final_tab>-bol
*                                              uom = <fs_final_tab>-uom
*                                              currency = <fs_final_tab>-currency
*
*                                               ]  )
*                                         THEN 'Entry with same key is already updated'(003)
*                                         ELSE COND #( WHEN line_exists( it_legacy_new_data[ so = <fs_final_tab>-so
*                                                           line = <fs_final_tab>-line
*                                                           delivery = <fs_final_tab>-delivery
*                                                           lotnumber = <fs_final_tab>-lotnumber
*                                                           customer = <fs_final_tab>-customer
*                                                           company = <fs_final_tab>-company
*                                                           soorg = <fs_final_tab>-soorg
*                                                           distchan = <fs_final_tab>-distchan
*                                                           division = <fs_final_tab>-division
*                                                           toplevelmat = <fs_final_tab>-toplevelmat
*                                                           binitem = <fs_final_tab>-binitem
*                                                           batch = <fs_final_tab>-batch
*                                                           price = <fs_final_tab>-price
*                                                           price_unit = <fs_final_tab>-price_unit
*                                                           shipqty = <fs_final_tab>-shipqty
*                                                           amount = <fs_final_tab>-amount
*                                                           bol = <fs_final_tab>-bol
*                                                           uom = <fs_final_tab>-uom
*                                                           currency = <fs_final_tab>-currency ] )
*                                                      THEN 'Record Updated Successfully'(002) ) ) )

* ) ).



**EoC - 04-Apr-2023/AJYOTHI/MRDK977999----------------
**Display ALV
        IF it_alv_display IS NOT INITIAL.
          TRY.
              CALL METHOD cl_salv_table=>factory
                IMPORTING
                  r_salv_table = o_alv
                CHANGING
                  t_table      = it_alv_display.
            CATCH cx_salv_msg.
              DATA(l_sel1_info) =  o_msg->get_longtext( ).
              MESSAGE l_sel1_info TYPE c_e.
              CLEAR o_msg.
          ENDTRY.
          IF o_alv IS NOT INITIAL.
***Get All the Required Functions for ALV
            l_repid = sy-repid.
            CALL METHOD o_alv->set_screen_status
              EXPORTING
                report        = l_repid
                pfstatus      = l_sel1_status
                set_functions = o_alv->c_functions_all.
***Optimize Column width
            o_columns = o_alv->get_columns( ).
            o_columns->set_optimize( abap_true ).
**Set Layout
            o_layout = o_alv->get_layout( ).
            x_key-report = sy-repid.
            o_layout->set_key( x_key ).
            o_layout->set_save_restriction( if_salv_c_layout=>restrict_none ).
**Display ALV
            o_alv->display( ).
          ENDIF.
        ENDIF.
      ENDIF.
**EoC - AJYOTHI/21-Feb-2023-------------------------
    ENDMETHOD.

  ENDCLASS.                    "lcl_load IMPLEMENTATION







top2

*----------------------------------------------------------------------*
*                  Transparent Tables
*----------------------------------------------------------------------*


 TABLES:
   vbak,
   vbap,
   likp,
   lips.

*----------------------------------------------------------------------*
*                  Types
*----------------------------------------------------------------------*
 TYPE-POOLS: slis.

**** Report
* TYPES BEGIN OF ty_report.
*         INCLUDE STRUCTURE zmm_s_grossreqmnt_main.
* TYPES END OF ty_report.
* TYPES  tt_report   TYPE STANDARD TABLE OF ty_report.

 TYPES:

*** File
   BEGIN OF ty_file,
     index TYPE char10,
     data  TYPE char30,
   END OF ty_file,
   tt_file TYPE STANDARD TABLE OF ty_file,

*** File license
   BEGIN OF ty_license,
     key       TYPE char40,
     matnr     TYPE c LENGTH 18,
     desc      TYPE char200,
     date_from TYPE c LENGTH 10,
     date_to   TYPE c LENGTH 10,
     menge     TYPE c LENGTH 20,
     lifnr     TYPE c LENGTH 10,
     stprs     TYPE c LENGTH 20,
     waers     TYPE c LENGTH 05,
   END OF ty_license,
   tt_license TYPE STANDARD TABLE OF ty_license,

*** File for royalty
   BEGIN OF ty_fzsghledrmaitm_l,
     so          TYPE c LENGTH 10,   " Sales and Distribution Document Number
     line        TYPE n LENGTH 06,   " Item number of the SD document
     delivery    TYPE c LENGTH 10,   " Sales and Distribution Document Number
     customer    TYPE c LENGTH 10,   " Customer Number
     company     TYPE c LENGTH 04,   " Company Code
     soorg       TYPE c LENGTH 04,   " Sales Organization
     distchan    TYPE c LENGTH 02,   " Distribution Channel
     division    TYPE c LENGTH 02,   " Division
     toplevelmat TYPE c LENGTH 40,   " Material Number
     binitem     TYPE c LENGTH 40,   " Material Number
     batch       TYPE c LENGTH 10,   " Batch Number
     lotnumber   TYPE c LENGTH 70,   " Characteristic Value
     price       TYPE c LENGTH 11,   " Condition Amount or Percentage
     price_unit  TYPE c LENGTH 6, "Price Unit
     shipqty     TYPE c LENGTH 20,   " Actual quantity delivered (in sales units)
     amount      TYPE c LENGTH 20,   " Condition value
     bol         TYPE c LENGTH 35,   " Bill of Lading
     uom         TYPE c LENGTH 03,   " Base Unit of Measure
     currency    TYPE c LENGTH 05,   " Currency Key
     update_flag type c lENGTH 05,   " UPDATE exist RMA Line Y or N
   END OF ty_fzsghledrmaitm_l,



*** File for royalty  --add by suli.lai on 2023-05-25
   BEGIN OF ty_zsghledrmaitm_l ,
    MANDT       TYPE MANDT,
     so          TYPE VBELN,   " Sales and Distribution Document Number
     line        TYPE ZSD_DEL_RMA_POSNR,   " Item number of the SD document
     delivery    TYPE ZSD_DEL_RMA_VBELN,   " Sales and Distribution Document Number
     lotnumber   TYPE ZSD_DEL_RMA_LOT,   " Characteristic Value
     customer    TYPE KUNNR,   " Customer Number
     company     TYPE BUKRS,   " Company Code
     soorg       TYPE VKORG,   " Sales Organization
     distchan    TYPE VTWEG,   " Distribution Channel
     division    TYPE SPART,   " Division
     toplevelmat TYPE ZSD_DEL_RMA_KIT_MATNR,   " Material Number
     binitem     TYPE ZSD_DEL_RMA_BIN_MATNR,   " Material Number
     batch       TYPE CHARG_D,   " Batch Number
     price       TYPE ZSD_DEL_RMA_PRICE," Condition Amount or Percentage
     price_unit  TYPE EPEIN, "Price Unit
     shipqty     TYPE LFIMG,   " Actual quantity delivered (in sales units)
     amount      TYPE KWERT,   " Condition value
     bol         TYPE BOLNR,   " Bill of Lading
     uom         TYPE MEINS,   " Base Unit of Measure
     currency    TYPE WAERS,   " Currency Key
     update_flag type c lENGTH 05,  " UPDATE exist RMA Line Y or N
   END OF  ty_zsghledrmaitm_l  ,






*** File for Material Marketing workbench
   BEGIN OF ty_fmtlmb,
     matnr            TYPE c LENGTH	18,
     prodowner        TYPE c LENGTH	30,
     technology       TYPE c LENGTH	25,
     prodfamily       TYPE c LENGTH	30,
     prodline         TYPE c LENGTH	30,
     itemclass        TYPE c LENGTH	25,
     processortype    TYPE c LENGTH 30,
     comments         TYPE c LENGTH	80,
     status           TYPE c LENGTH	2,
     reasoncode       TYPE c LENGTH	2,
     eol_number       TYPE c LENGTH	20,
     replacement      TYPE c LENGTH	20,
     ce_mark          TYPE c LENGTH	3,
     compliance       TYPE c LENGTH	30,
     special_item     TYPE c LENGTH 2,
     special_customer TYPE c LENGTH	20,
     rev_control      TYPE c LENGTH	2,
     first_order      TYPE c LENGTH	10,
     early_access     TYPE c LENGTH	10,
     planned_release  TYPE c LENGTH	10,
     actual_release   TYPE c LENGTH	10,
     eol_date         TYPE c LENGTH	10,
     last_orddate     TYPE c LENGTH	10,
     last_shipdate    TYPE c LENGTH	10,
     releasedate      TYPE c LENGTH 10,
     first_shipdate   TYPE c LENGTH 10,
     gadate           TYPE c LENGTH 10,
     relefactdt       TYPE c LENGTH 10,
     late_stage       TYPE c LENGTH	2,
     buyer_notes      TYPE c LENGTH	500,
     eccn             TYPE c LENGTH	14,
     subeccn          TYPE c LENGTH	17,
     hts              TYPE c LENGTH 17,
     msl              TYPE c LENGTH 2,
     rohs             TYPE c LENGTH 18,
     rohs_status      TYPE c LENGTH	18,
     safety_cat       TYPE c LENGTH	20,
     comp_cat         TYPE c LENGTH	20,
     ipc_cat          TYPE c LENGTH	20,
     scml             TYPE c LENGTH	20,
     checksum         TYPE c LENGTH	40,
     garbage          TYPE c LENGTH 100,
   END OF ty_fmtlmb.


*----------------------------------------------------------------------*
*                  Constants
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
*                  Internal Tables
*----------------------------------------------------------------------*


*----------------------------------------------------------------------*
*                  Internal Tables
*----------------------------------------------------------------------*



*----------------------------------------------------------------------*
*                  Selection Screen
*----------------------------------------------------------------------*
 SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-t01.

   PARAMETERS:
            p_file  TYPE rlgrap-filename  OBLIGATORY.

   SELECTION-SCREEN SKIP.

   PARAMETERS:
     p_rb01 RADIOBUTTON GROUP rb,   " ZSGHLEDRMAITM_L  RMA Items for Legacy
     p_rb02 RADIOBUTTON GROUP rb,   "
     p_rb03 RADIOBUTTON GROUP rb,   "
     p_rb04 RADIOBUTTON GROUP rb,   "
     p_rb05 RADIOBUTTON GROUP rb.   "

 SELECTION-SCREEN END OF BLOCK b1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值