Monday, February 16, 2015

RG1 Balance Update Opening/Closing balance table for RG1

REPORT zr_rg1_j_2irg1bal_update.
TABLES : j_2irg1bal.
TYPES : BEGIN OF ty_jbal.
INCLUDE STRUCTURE j_2irg1bal.
TYPES : END OF ty_jbal.
DATA : it_jbal TYPE TABLE OF ty_jbal.
DATA : wa_jbal LIKE LINE OF it_jbal.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: pr_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
* Getting the file name for uploading the legacy data.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = pr_file.
START-OF-SELECTION.
PERFORM f001_file_upload.
PERFORM process_data.
*&---------------------------------------------------------------------*
*& Form f001_file_upload
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f001_file_upload .
DATA: i_file TYPE string.
i_file = pr_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = i_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_jbal
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f001_file_upload
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
DATA: v_year TYPE char4,
v_month TYPE char2,
v_day TYPE char2,
v_date TYPE char8.
LOOP AT it_jbal INTO wa_jbal.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_jbal-matnr
IMPORTING
output = wa_jbal-matnr.
v_day = wa_jbal-datum(2).
v_month = wa_jbal-datum+2(2).
v_year = wa_jbal-datum+4(4).
CONCATENATE v_year v_month v_day INTO v_date.
wa_jbal-datum = v_date.
CLEAR v_date.
v_day = wa_jbal-cpudt(2).
v_month = wa_jbal-cpudt+2(2).
v_year = wa_jbal-cpudt+4(4).
CONCATENATE v_year v_month v_day INTO v_date.
* wa_jbal-usnam = sy-uname.
wa_jbal-cpudt = v_date.
* wa_jbal-cputm = sy-uzeit.
* insert j_2irg1bal from wa_jbal.
* modify j_2irg1bal from wa_jbal.
MODIFY it_jbal FROM wa_jbal TRANSPORTING matnr datum cpudt.
IF sy-subrc EQ 0.
ENDIF.
ENDLOOP.
IF it_jbal IS NOT INITIAL.
MODIFY j_2irg1bal FROM TABLE it_jbal.
IF sy-subrc = 0.
MESSAGE 'Records Updated' TYPE 'S'.
ENDIF.
ENDIF.
ENDFORM. " process_data

No comments:

Post a Comment