*----------------------------------------------------------------------*
* INCLUDE ZGENERALFILE *
*----------------------------------------------------------------------*
*& Purpose: Include can be used for all file search helps and *
*& following file loads so long the variables / tables are *
*& passed and defined correct. *
*& Author: Volker Lehari - 22.12.2005 *
*&-Change Log----------------------------------------------------------*
*& Date | Name | Description *
*& 02.10.2007 VL Replace WS function modules for unicode *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form ws_filename_get
*&---------------------------------------------------------------------*
* Search Help for file
*----------------------------------------------------------------------*
* <--P_P_FILE path and file name
*----------------------------------------------------------------------*
FORM ws_filename_get CHANGING p_file.
DATA: lt_file TYPE filetable,
lw_file TYPE file_table,
lv_title TYPE string,
lv_retcode TYPE i.
MOVE 'Select file'(x01) TO lv_title.
* Get the file name
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = lv_title
* default_extension =
* default_filename =
* file_filter =
* with_encoding =
* initial_directory =
multiselection = ''
CHANGING
file_table = lt_file
rc = lv_retcode
* user_action =
* file_encoding =
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5 .
IF sy-subrc NE 0.
MESSAGE w051.
ELSEIF lv_retcode GT 0.
READ TABLE lt_file INTO lw_file INDEX 1.
MOVE lw_file TO p_file.
ENDIF.
ENDFORM. " ws_filename_get
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* Read data into defined structure with name of table gt_data
*----------------------------------------------------------------------*
* -->P_P_FILE path and file name
*----------------------------------------------------------------------*
FORM get_data USING p_file.
* Before getting the path create global object
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = p_file
filetype = 'DAT'
* has_field_separator = SPACE
* header_length = 0
* read_by_line = 'X'
* dat_mode = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
replacement = ''
* virus_scan_profile =
* IMPORTING
* filelength =
* header =
CHANGING
data_tab = gt_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
access_denied = 13
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19 .
IF sy-subrc <> 0.
PERFORM flush.
MESSAGE ID sy-msgid TYPE 'W' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* MESSAGE e053.
ENDIF.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form flush
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM flush .
* Flush
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
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. " flush
*&---------------------------------------------------------------------*
*& Form download_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LT_DATA_OUT text
* -->P_L_FILENAME text
*----------------------------------------------------------------------*
FORM download_file USING p_file.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
* bin_filesize =
filename = p_file
filetype = 'DAT'
* append = SPACE
* write_field_separator = SPACE
* header = '00'
* trunc_trailing_blanks = SPACE
* write_lf = 'X'
* col_select = SPACE
* col_select_mask = SPACE
* dat_mode = SPACE
* confirm_overwrite = SPACE
* no_auth_check = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
replacement = ''
* write_bom = SPACE
* trunc_trailing_blanks_eol = 'X'
* wk1_n_format = SPACE
* wk1_n_size = SPACE
* wk1_t_format = SPACE
* wk1_t_size = SPACE
* IMPORTING
* filelength =
CHANGING
data_tab = gt_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24 .
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. " download_file
*&---------------------------------------------------------------------*
*& Form delete_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_FILE text
*----------------------------------------------------------------------*
FORM delete_file USING p_file.
DATA: lv_retcode TYPE i.
CALL METHOD cl_gui_frontend_services=>file_delete
EXPORTING
filename = p_file
CHANGING
rc = lv_retcode
EXCEPTIONS
file_delete_failed = 1
cntl_error = 2
error_no_gui = 3
file_not_found = 4
access_denied = 5
unknown_error = 6
not_supported_by_gui = 7
wrong_parameter = 8
OTHERS = 9.
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. " delete_file
* INCLUDE ZGENERALFILE *
*----------------------------------------------------------------------*
*& Purpose: Include can be used for all file search helps and *
*& following file loads so long the variables / tables are *
*& passed and defined correct. *
*& Author: Volker Lehari - 22.12.2005 *
*&-Change Log----------------------------------------------------------*
*& Date | Name | Description *
*& 02.10.2007 VL Replace WS function modules for unicode *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form ws_filename_get
*&---------------------------------------------------------------------*
* Search Help for file
*----------------------------------------------------------------------*
* <--P_P_FILE path and file name
*----------------------------------------------------------------------*
FORM ws_filename_get CHANGING p_file.
DATA: lt_file TYPE filetable,
lw_file TYPE file_table,
lv_title TYPE string,
lv_retcode TYPE i.
MOVE 'Select file'(x01) TO lv_title.
* Get the file name
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = lv_title
* default_extension =
* default_filename =
* file_filter =
* with_encoding =
* initial_directory =
multiselection = ''
CHANGING
file_table = lt_file
rc = lv_retcode
* user_action =
* file_encoding =
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5 .
IF sy-subrc NE 0.
MESSAGE w051.
ELSEIF lv_retcode GT 0.
READ TABLE lt_file INTO lw_file INDEX 1.
MOVE lw_file TO p_file.
ENDIF.
ENDFORM. " ws_filename_get
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* Read data into defined structure with name of table gt_data
*----------------------------------------------------------------------*
* -->P_P_FILE path and file name
*----------------------------------------------------------------------*
FORM get_data USING p_file.
* Before getting the path create global object
CALL METHOD cl_gui_frontend_services=>gui_upload
EXPORTING
filename = p_file
filetype = 'DAT'
* has_field_separator = SPACE
* header_length = 0
* read_by_line = 'X'
* dat_mode = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
replacement = ''
* virus_scan_profile =
* IMPORTING
* filelength =
* header =
CHANGING
data_tab = gt_data
EXCEPTIONS
file_open_error = 1
file_read_error = 2
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
access_denied = 13
not_supported_by_gui = 17
error_no_gui = 18
OTHERS = 19 .
IF sy-subrc <> 0.
PERFORM flush.
MESSAGE ID sy-msgid TYPE 'W' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* MESSAGE e053.
ENDIF.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form flush
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM flush .
* Flush
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
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. " flush
*&---------------------------------------------------------------------*
*& Form download_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_LT_DATA_OUT text
* -->P_L_FILENAME text
*----------------------------------------------------------------------*
FORM download_file USING p_file.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
* bin_filesize =
filename = p_file
filetype = 'DAT'
* append = SPACE
* write_field_separator = SPACE
* header = '00'
* trunc_trailing_blanks = SPACE
* write_lf = 'X'
* col_select = SPACE
* col_select_mask = SPACE
* dat_mode = SPACE
* confirm_overwrite = SPACE
* no_auth_check = SPACE
* codepage = SPACE
* ignore_cerr = ABAP_TRUE
replacement = ''
* write_bom = SPACE
* trunc_trailing_blanks_eol = 'X'
* wk1_n_format = SPACE
* wk1_n_size = SPACE
* wk1_t_format = SPACE
* wk1_t_size = SPACE
* IMPORTING
* filelength =
CHANGING
data_tab = gt_data
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24 .
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. " download_file
*&---------------------------------------------------------------------*
*& Form delete_file
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_FILE text
*----------------------------------------------------------------------*
FORM delete_file USING p_file.
DATA: lv_retcode TYPE i.
CALL METHOD cl_gui_frontend_services=>file_delete
EXPORTING
filename = p_file
CHANGING
rc = lv_retcode
EXCEPTIONS
file_delete_failed = 1
cntl_error = 2
error_no_gui = 3
file_not_found = 4
access_denied = 5
unknown_error = 6
not_supported_by_gui = 7
wrong_parameter = 8
OTHERS = 9.
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. " delete_file