DATA:
BEGIN OF gt_file OCCURS 0,
line TYPE c LENGTH 400,
END OF gt_file.
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY DEFAULT 'C:\'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM z_upload_file.
START-OF-SELECTION.
PERFORM z_load_file.
FORM z_load_file.
DATA: lv_arq TYPE string,
vl_extab TYPE slis_t_extab.
* Abre arquivo de entrada.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
filetype = 'ASC'
TABLES
data_tab = gt_arquivo.
IF sy-subrc <> 0.
MESSAGE 'Error upload file' TYPE 'I'.
EXIT.
ENDIF.
ENDFORM. " z_load_file
FORM z_upload_file.
DATA: ret TYPE int4,
act TYPE int4.
DATA: t_file TYPE TABLE OF file_table,
s_file TYPE file_table.
CLEAR: t_file[].
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Abrir...'
default_extension = '*.txt|*.csv|*.*'
file_filter = ' TXT (*.txt)|*.txt| CSV(*.csv)|*.csv| Todas(*.*)|*.* '
multiselection = space
CHANGING
file_table = t_file[]
rc = ret
user_action = act
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0.
READ TABLE t_file INTO s_file INDEX 1.
MOVE s_file TO p_file.
ENDIF.
ENDFORM. "z_upload_file