REPORT zrg1_upload NO STANDARD PAGE HEADING LINE-SIZE 255.
TABLES : j_2irg1bal.
TYPE-POOLS: truxs.
TYPES: BEGIN OF ty_itab,
exgrp TYPE string,
datum TYPE string,
matnr TYPE string,
form TYPE string,
werks TYPE string,
* open_bal TYPE string,
op_fn_uom TYPE string,
END OF ty_itab.
*DATA : BEGIN OF itab OCCURS 0,
* exgrp(02),
* datum(10),
* matnr(18),
* form(01),
* werks(04),
* op_fn_uom(03),
* END OF itab.
DATA : itab TYPE STANDARD TABLE OF ty_itab,
wa_itab LIKE LINE OF itab,
msg_log TYPE STANDARD TABLE OF matnr,
wa_msg_log TYPE matnr,
it_raw TYPE truxs_t_text_data,
wa_rg1 TYPE j_2irg1bal.
*********************INTERNAL TABLE DECLARATION****************************
INITIALIZATION.
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: zvm TYPE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR zvm.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
field_name = ' '
IMPORTING
file_name = zvm.
START-OF-SELECTION.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* I_FIELD_SEPERATOR =
* i_line_header = 'X'
i_tab_raw_data = it_raw
i_filename = zvm
TABLES
i_tab_converted_data = itab[]
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF .
DELETE itab INDEX 1.
LOOP AT itab INTO wa_itab.
wa_rg1-mandt = sy-mandt.
wa_rg1-exgrp = wa_itab-exgrp.
wa_rg1-datum = wa_itab-datum.
CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
EXPORTING
date_external = wa_itab-datum
IMPORTING
date_internal = wa_rg1-datum
EXCEPTIONS
date_external_is_invalid = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = wa_itab-matnr
IMPORTING
output = wa_rg1-matnr
EXCEPTIONS
length_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
wa_rg1-form = wa_itab-form.
wa_rg1-werks = wa_itab-werks.
** REPLACE ALL OCCURRENCES OF ',' IN wa_itab-open_bal WITH ''.
** wa_rg1-op_cf = wa_itab-open_bal.
wa_rg1-op_fn_uom = wa_itab-op_fn_uom.
wa_rg1-usnam = sy-uname.
wa_rg1-cpudt = sy-datum.
wa_rg1-cputm = sy-uzeit.
INSERT j_2irg1bal FROM wa_rg1.
IF sy-subrc IS INITIAL.
wa_msg_log = wa_itab-matnr.
APPEND wa_msg_log TO msg_log.
CLEAR: wa_msg_log.
ENDIF.
CLEAR: wa_rg1,wa_itab.
ENDLOOP.
IF msg_log IS NOT INITIAL.
WRITE :/ 'Uploaded Material.........!'.
LOOP AT msg_log INTO wa_msg_log.
WRITE :/ wa_msg_log.
ENDLOOP.
ENDIF.