Académique Documents
Professionnel Documents
Culture Documents
*&---------------------------------------------------------------------*
* At Selection Screen
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN .
IF p_r1 = 'X' AND
screen-active =
ENDIF.
IF p_r2 = 'X' AND
screen-active =
ENDIF.
MODIFY SCREEN.
ENDLOOP.
screen-group1 = 'MOD'.
'1'.
screen-group1 = 'MOD'.
'0'.
*&---------------------------------------------------------------------*
* Start Of Selection
*&---------------------------------------------------------------------*
START-OF-SELECTION.
IF p_r2 IS NOT INITIAL.
* Perform To Download Sample Data to Upload facts.
PERFORM download_sample_data.
ENDIF.
IF p_r1 IS NOT INITIAL.
PERFORM upload_data.
PERFORM insert_ettifn_table.
IF it_elog IS NOT INITIAL.
PERFORM display_error_log.
ENDIF.
ENDIF.
*----------------------------------------------------------------------*
***INCLUDE ZBIR_INST_EMP_FACT_UPDATE_FF01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form FILE_F4
*&---------------------------------------------------------------------*
*
Providing F4 Help to Upload The File
*----------------------------------------------------------------------*
FORM file_f4 USING
p_p_file.
DATA: lv_subrc LIKE sy-subrc,
lt_it_tab TYPE filetable.
CONSTANTS: lc_window_title
TYPE string VALUE 'Select Source Excel Fil
e',
lc_default_filename TYPE string VALUE '*.xls'.
* Display File Open Dialog control/screen
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title
= lc_window_title
default_filename = lc_default_filename
multiselection
= ' '
CHANGING
file_table
= lt_it_tab
rc
= lv_subrc.
* Write path on input parameter
LOOP AT lt_it_tab INTO p_p_file.
ENDLOOP.
ENDFORM.
" FILE_F4
*&---------------------------------------------------------------------*
*&
Form DOWNLOAD_SAMPLE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM download_sample_data .
TYPES: BEGIN OF t_raw,
anlage TYPE anlage ,
operand TYPE e_operand,
ab
bis
value
text
END
OF
TYPE char10,
TYPE char10,
TYPE char12,
TYPE char50,
t_raw.
TYPE string
TYPE string
TYPE string
TYPE
TYPE
TYPE
TYPE
VALUE
VALUE
VALUE
VALUE
string
c
char10
xstring
'C:\',
'X',
'DAT',
'00'.
wa_fieldname-fieldname = text-t01.
APPEND wa_fieldname TO lt_fieldname.
CLEAR wa_fieldname.
wa_fieldname-fieldname = text-t02.
APPEND wa_fieldname TO lt_fieldname.
CLEAR wa_fieldname.
wa_fieldname-fieldname = text-t04.
APPEND wa_fieldname TO lt_fieldname.
CLEAR wa_fieldname.
wa_fieldname-fieldname = text-t05.
APPEND wa_fieldname TO lt_fieldname.
CLEAR wa_fieldname.
wa_fieldname-fieldname = text-t03.
APPEND wa_fieldname TO lt_fieldname.
CLEAR wa_fieldname.
wa_excel-anlage =
wa_excel-operand =
wa_excel-ab
=
wa_excel-bis
=
wa_excel-value
=
wa_excel-text
=
APPEND wa_excel TO
CLEAR wa_excel.
wa_excel-anlage = '3000001846'.
wa_excel-operand = 'QUARTER_NO'.
wa_excel-value
= 'Z/WING-321'.
wa_excel-ab
=
wa_excel-bis
=
wa_excel-text
=
APPEND wa_excel TO
CLEAR wa_excel.
'01.01.2014'.
'31.01.2014'.
'Value should be updated with Char10'.
it_excel.
wa_excel-anlage =
wa_excel-operand =
wa_excel-value
=
wa_excel-ab
=
wa_excel-bis
=
wa_excel-text
=
APPEND wa_excel TO
CLEAR wa_excel.
wa_excel-anlage =
wa_excel-operand =
wa_excel-value
=
wa_excel-ab
=
wa_excel-bis
=
wa_excel-text
=
APPEND wa_excel TO
CLEAR wa_excel.
wa_excel-anlage =
wa_excel-operand =
wa_excel-value
=
wa_excel-ab
=
wa_excel-bis
=
wa_excel-text
=
APPEND wa_excel TO
CLEAR wa_excel.
TABLES
data_tab
= it_excel
fieldnames
= lt_fieldname.
ENDIF.
ENDFORM.
" DOWNLOAD_SAMPLE_DATA
*&---------------------------------------------------------------------*
*&
Form UPLOAD_DATA
*&---------------------------------------------------------------------*
*
Upload Data From Flat File (XL Sheet)
*----------------------------------------------------------------------*
FORM upload_data .
IF p_file IS NOT INITIAL.
* Uploading Data from XLS file to Internal Table
CALL FUNCTION 'UPLOAD_XLS_FILE_2_ITAB'
EXPORTING
i_filename = p_file
TABLES
e_itab
= it_udata
EXCEPTIONS
file_error = 1
OTHERS
= 2.
IF sy-subrc <> 0.
*
MESSAGE ''006.'
ENDIF.
wa_ettifn_new-ab
wa_ettifn_new-bis
*
*
*
*
*
*
*
*
*
*
*
*
= wa_udata-anlage.
= lv_ab.
= lv_bis.
IF wa_udata-operand = 'F_EMPLOYEE'.
wa_ettifn_new-string3 = wa_udata-value.
wa_ettifn_new-operand = wa_udata-operand.
ELSEIF wa_udata-operand = 'QUARTER_NO'.
wa_ettifn_new-string1 = wa_udata-value.
wa_ettifn_new-operand = wa_udata-operand.
ELSEIF wa_udata-operand = 'EMPLOYE_NO'.
wa_ettifn_new-string1 = wa_udata-value.
wa_ettifn_new-operand = wa_udata-operand.
*
*
*
*
*
ENDIF.
ENDIF.
ENDIF.
IF wa_ettifn_new-operand IS INITIAL.
wa_elog-anlage
= wa_udata-anlage.
wa_elog-operand = wa_udata-operand.
wa_elog-value
= wa_udata-value.
wa_elog-remark = 'Operand Not Exist'.
APPEND wa_elog TO it_elog.
CLEAR wa_elog.
ELSE.
APPEND wa_ettifn_new TO it_ettifn_new.
CLEAR wa_ettifn_new.
ENDIF.
ENDFORM.
" PREPARE_NEW_DATA
*&---------------------------------------------------------------------*
*&
Form DISPLAY_ERROR_LOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_error_log .
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
wa_fieldcat-col_pos
= 1.
wa_fieldcat-fieldname = 'ANLAGE'.
wa_fieldcat-tabname
= 'LT_ELOG'.
wa_fieldcat-seltext_l = 'Installation'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos
= 2.
wa_fieldcat-fieldname = 'OPERAND'.
wa_fieldcat-tabname
= 'LT_ELOG'.
wa_fieldcat-seltext_l = 'Operand'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos
= 3.
wa_fieldcat-fieldname = 'VALUE'.
wa_fieldcat-tabname
= 'LT_ELOG'.
wa_fieldcat-seltext_l = 'Value'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-col_pos
= 4.
wa_fieldcat-fieldname = 'REMARK'.
wa_fieldcat-tabname
= 'LT_ELOG'.
wa_fieldcat-seltext_l = 'Remark'.
wa_fieldcat-outputlen = 10.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR wa_fieldcat.
EXPORTING
i_callback_program = sy-repid
i_grid_title
= 'Error Log'
it_fieldcat
= it_fieldcat
TABLES
t_outtab
= it_elog.
ENDFORM.
" DISPLAY_ERROR_LOG
*&---------------------------------------------------------------------*
*&
Form INSERT_ETTIFN_TABLE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM insert_ettifn_table .
*
ettifn
TABLE it_ettifn_old
ALL ENTRIES IN it_udata
anlage = it_udata-anlage
operand = it_udata-operand.
IF sy-subrc = 0.
SORT it_ettifn_old BY anlage operand bis DESCENDING .
DELETE ADJACENT DUPLICATES FROM it_ettifn_old COMPARING anlage operan
d.
ENDIF.
SELECT operand
optyp
FROM te221
INTO TABLE it_te221
FOR ALL ENTRIES IN it_udata
WHERE operand = it_udata-operand.
IF sy-subrc = 0.
SORT it_te221 BY operand.
DELETE ADJACENT DUPLICATES FROM it_te221 COMPARING operand.
SORT it_te221 BY operand.
ENDIF.
wa_udata-anlage.
wa_udata-operand.
wa_udata-value.
'Data Already Exist For Same Period'.
it_elog.
wa_udata-anlage.
wa_udata-operand.
wa_udata-value.
'End Date Is Less Than Start Date'.
it_elog.
ENDLOOP.
IF it_ettifn_new IS NOT INITIAL.
CALL FUNCTION 'ISU_DB_ETTIFN_UPDATE'
EXPORTING
x_upd_mode = 'I'
x_iettifn = it_ettifn_new.
IF sy-subrc = 0.
COMMIT WORK.
DESCRIBE TABLE it_ettifn_new LINES lv_scount.
CONCATENATE lv_scount text-m10
INTO lv_sstring SEPARATED BY space.
MESSAGE lv_sstring TYPE 'I'.
ENDIF.
ENDIF.
ELSE.