CLASS zcl_abapgit_frontend_services DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. INTERFACES zif_abapgit_frontend_services. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS ZCL_ABAPGIT_FRONTEND_SERVICES IMPLEMENTATION. METHOD zif_abapgit_frontend_services~file_download. DATA: lt_rawdata TYPE solix_tab. lt_rawdata = cl_bcs_convert=>xstring_to_solix( iv_xstr ). cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = xstrlen( iv_xstr ) filename = iv_path filetype = 'BIN' CHANGING data_tab = lt_rawdata 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. zcx_abapgit_exception=>raise( 'error from gui_download' ). "#EC NOTEXT ENDIF. ENDMETHOD. METHOD zif_abapgit_frontend_services~file_upload. TYPES: ty_hex TYPE x LENGTH 255. DATA: lt_data TYPE TABLE OF ty_hex WITH DEFAULT KEY, lv_length TYPE i. cl_gui_frontend_services=>gui_upload( EXPORTING filename = iv_path filetype = 'BIN' IMPORTING filelength = lv_length CHANGING data_tab = lt_data 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 not_supported_by_gui = 17 error_no_gui = 18 OTHERS = 19 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'error from gui_upload' ). "#EC NOTEXT ENDIF. CONCATENATE LINES OF lt_data INTO rv_xstr IN BYTE MODE. rv_xstr = rv_xstr(lv_length). ENDMETHOD. METHOD zif_abapgit_frontend_services~show_file_open_dialog. DATA: lt_file_table TYPE filetable, ls_file_table LIKE LINE OF lt_file_table, lv_action TYPE i, lv_rc TYPE i. cl_gui_frontend_services=>file_open_dialog( EXPORTING window_title = iv_title default_filename = iv_default_filename CHANGING file_table = lt_file_table rc = lv_rc user_action = lv_action EXCEPTIONS file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 OTHERS = 5 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'error from file_open_dialog' ). "#EC NOTEXT ENDIF. IF lv_action = cl_gui_frontend_services=>action_cancel. zcx_abapgit_exception=>raise( 'cancelled' ). "#EC NOTEXT ENDIF. READ TABLE lt_file_table INDEX 1 INTO ls_file_table. ASSERT sy-subrc = 0. rv_path = ls_file_table-filename. ENDMETHOD. METHOD zif_abapgit_frontend_services~show_file_save_dialog. DATA: lv_action TYPE i, lv_filename TYPE string, lv_path TYPE string. cl_gui_frontend_services=>file_save_dialog( EXPORTING window_title = iv_title default_extension = iv_extension default_file_name = iv_default_filename CHANGING filename = lv_filename path = lv_path fullpath = rv_path user_action = lv_action EXCEPTIONS cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4 ). IF sy-subrc <> 0. zcx_abapgit_exception=>raise( 'error from file_save_dialog' ). "#EC NOTEXT ENDIF. IF lv_action = cl_gui_frontend_services=>action_cancel. zcx_abapgit_exception=>raise( 'cancelled' ). "#EC NOTEXT ENDIF. ENDMETHOD. ENDCLASS.