*----------------------------------------------------------------------*
* *
* 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.
sap RMA Upload details
于 2023-06-13 09:11:07 首次发布