mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Frontend services util (#2219)
* extract file system calls from zip * fs to utils package * rename fs to frontend services * linter fix * fix zip class * review fixes
This commit is contained in:
parent
11a175d467
commit
2b887bb7c3
175
src/utils/zcl_abapgit_frontend_services.clas.abap
Normal file
175
src/utils/zcl_abapgit_frontend_services.clas.abap
Normal file
|
@ -0,0 +1,175 @@
|
||||||
|
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.
|
||||||
|
|
||||||
|
DATA:
|
||||||
|
lt_data TYPE TABLE OF x255,
|
||||||
|
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.
|
19
src/utils/zcl_abapgit_frontend_services.clas.xml
Normal file
19
src/utils/zcl_abapgit_frontend_services.clas.xml
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_ABAPGIT_FRONTEND_SERVICES</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>File system utils</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSFINAL>X</CLSFINAL>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
33
src/utils/zif_abapgit_frontend_services.intf.abap
Normal file
33
src/utils/zif_abapgit_frontend_services.intf.abap
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
INTERFACE zif_abapgit_frontend_services
|
||||||
|
PUBLIC .
|
||||||
|
METHODS file_upload
|
||||||
|
IMPORTING
|
||||||
|
!iv_path TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_xstr) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS file_download
|
||||||
|
IMPORTING
|
||||||
|
!iv_path TYPE string
|
||||||
|
!iv_xstr TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS show_file_save_dialog
|
||||||
|
IMPORTING
|
||||||
|
!iv_title TYPE string
|
||||||
|
!iv_extension TYPE string
|
||||||
|
!iv_default_filename TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_path) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
METHODS show_file_open_dialog
|
||||||
|
IMPORTING
|
||||||
|
!iv_title TYPE string
|
||||||
|
!iv_default_filename TYPE string
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_path) TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
|
ENDINTERFACE.
|
16
src/utils/zif_abapgit_frontend_services.intf.xml
Normal file
16
src/utils/zif_abapgit_frontend_services.intf.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_ABAPGIT_FRONTEND_SERVICES</CLSNAME>
|
||||||
|
<VERSION>1</VERSION>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Frontend services interface</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -57,6 +57,11 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
CLASS-METHODS get_cts_api
|
CLASS-METHODS get_cts_api
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api.
|
VALUE(ri_cts_api) TYPE REF TO zif_abapgit_cts_api.
|
||||||
|
CLASS-METHODS get_frontend_services
|
||||||
|
RETURNING
|
||||||
|
VALUE(ri_fe_serv) TYPE REF TO zif_abapgit_frontend_services.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
TYPES:
|
TYPES:
|
||||||
|
@ -92,11 +97,41 @@ CLASS zcl_abapgit_factory DEFINITION
|
||||||
CLASS-DATA gi_stage_logic TYPE REF TO zif_abapgit_stage_logic .
|
CLASS-DATA gi_stage_logic TYPE REF TO zif_abapgit_stage_logic .
|
||||||
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api.
|
CLASS-DATA gi_cts_api TYPE REF TO zif_abapgit_cts_api.
|
||||||
CLASS-DATA gi_adhoc_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
CLASS-DATA gi_adhoc_code_inspector TYPE REF TO zif_abapgit_code_inspector.
|
||||||
|
CLASS-DATA gi_fe_services TYPE REF TO zif_abapgit_frontend_services.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_factory IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_FACTORY IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_abap_unit_tests.
|
||||||
|
|
||||||
|
IF gi_adhoc_code_inspector IS BOUND.
|
||||||
|
ri_abap_unit_tests = gi_adhoc_code_inspector.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ri_abap_unit_tests
|
||||||
|
TYPE zcl_abapgit_abap_unit_tests
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_adhoc_code_inspector.
|
||||||
|
|
||||||
|
IF gi_adhoc_code_inspector IS BOUND.
|
||||||
|
ri_adhoc_code_inspector = gi_adhoc_code_inspector.
|
||||||
|
ELSE.
|
||||||
|
CREATE OBJECT ri_adhoc_code_inspector
|
||||||
|
TYPE zcl_abapgit_adhoc_code_insp
|
||||||
|
EXPORTING
|
||||||
|
iv_package = iv_package
|
||||||
|
iv_test_name = iv_test_name.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_branch_overview.
|
METHOD get_branch_overview.
|
||||||
|
@ -137,6 +172,26 @@ CLASS zcl_abapgit_factory IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_cts_api.
|
||||||
|
IF gi_cts_api IS NOT BOUND.
|
||||||
|
CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_cts_api = gi_cts_api.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_frontend_services.
|
||||||
|
|
||||||
|
IF gi_fe_services IS INITIAL.
|
||||||
|
CREATE OBJECT gi_fe_services TYPE zcl_abapgit_frontend_services.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ri_fe_serv = gi_fe_services.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD get_sap_package.
|
METHOD get_sap_package.
|
||||||
|
|
||||||
DATA: ls_sap_package TYPE ty_sap_package.
|
DATA: ls_sap_package TYPE ty_sap_package.
|
||||||
|
@ -208,40 +263,4 @@ CLASS zcl_abapgit_factory IMPLEMENTATION.
|
||||||
ri_tadir = gi_tadir.
|
ri_tadir = gi_tadir.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD get_cts_api.
|
|
||||||
IF gi_cts_api IS NOT BOUND.
|
|
||||||
CREATE OBJECT gi_cts_api TYPE zcl_abapgit_cts_api.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ri_cts_api = gi_cts_api.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD get_adhoc_code_inspector.
|
|
||||||
|
|
||||||
IF gi_adhoc_code_inspector IS BOUND.
|
|
||||||
ri_adhoc_code_inspector = gi_adhoc_code_inspector.
|
|
||||||
ELSE.
|
|
||||||
CREATE OBJECT ri_adhoc_code_inspector
|
|
||||||
TYPE zcl_abapgit_adhoc_code_insp
|
|
||||||
EXPORTING
|
|
||||||
iv_package = iv_package
|
|
||||||
iv_test_name = iv_test_name.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD get_abap_unit_tests.
|
|
||||||
|
|
||||||
IF gi_adhoc_code_inspector IS BOUND.
|
|
||||||
ri_abap_unit_tests = gi_adhoc_code_inspector.
|
|
||||||
ELSE.
|
|
||||||
CREATE OBJECT ri_abap_unit_tests
|
|
||||||
TYPE zcl_abapgit_abap_unit_tests
|
|
||||||
EXPORTING
|
|
||||||
iv_package = iv_package.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -23,6 +23,7 @@ CLASS zcl_abapgit_zip DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception
|
zcx_abapgit_exception
|
||||||
zcx_abapgit_cancel .
|
zcx_abapgit_cancel .
|
||||||
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
CLASS-METHODS file_upload
|
CLASS-METHODS file_upload
|
||||||
RETURNING VALUE(rv_xstr) TYPE xstring
|
RETURNING VALUE(rv_xstr) TYPE xstring
|
||||||
|
@ -249,152 +250,39 @@ CLASS ZCL_ABAPGIT_ZIP IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD file_download.
|
METHOD file_download.
|
||||||
|
|
||||||
DATA: lt_rawdata TYPE solix_tab,
|
DATA:
|
||||||
lv_action TYPE i,
|
|
||||||
lv_filename TYPE string,
|
|
||||||
lv_default TYPE string,
|
|
||||||
lv_path TYPE string,
|
lv_path TYPE string,
|
||||||
lv_fullpath TYPE string,
|
lv_default TYPE string,
|
||||||
|
lo_fe_serv TYPE REF TO zif_abapgit_frontend_services,
|
||||||
lv_package TYPE devclass.
|
lv_package TYPE devclass.
|
||||||
|
|
||||||
|
|
||||||
lv_package = iv_package.
|
lv_package = iv_package.
|
||||||
TRANSLATE lv_package USING '/#'.
|
TRANSLATE lv_package USING '/#'.
|
||||||
CONCATENATE lv_package '_' sy-datlo '_' sy-timlo INTO lv_default.
|
CONCATENATE lv_package '_' sy-datlo '_' sy-timlo INTO lv_default.
|
||||||
|
|
||||||
cl_gui_frontend_services=>file_save_dialog(
|
lo_fe_serv = zcl_abapgit_factory=>get_frontend_services( ).
|
||||||
EXPORTING
|
|
||||||
window_title = 'Export ZIP'
|
|
||||||
default_extension = 'zip'
|
|
||||||
default_file_name = lv_default
|
|
||||||
CHANGING
|
|
||||||
filename = lv_filename
|
|
||||||
path = lv_path
|
|
||||||
fullpath = lv_fullpath
|
|
||||||
user_action = lv_action
|
|
||||||
EXCEPTIONS
|
|
||||||
cntl_error = 1
|
|
||||||
error_no_gui = 2
|
|
||||||
not_supported_by_gui = 3
|
|
||||||
OTHERS = 4 ). "#EC NOTEXT
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'error from file_save_dialog' ).
|
|
||||||
ENDIF.
|
|
||||||
IF lv_action = cl_gui_frontend_services=>action_cancel.
|
|
||||||
zcx_abapgit_exception=>raise( 'cancelled' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
lt_rawdata = cl_bcs_convert=>xstring_to_solix( iv_xstr ).
|
lv_path = lo_fe_serv->show_file_save_dialog(
|
||||||
|
iv_title = 'Export ZIP'
|
||||||
|
iv_extension = 'zip'
|
||||||
|
iv_default_filename = lv_default ).
|
||||||
|
|
||||||
cl_gui_frontend_services=>gui_download(
|
lo_fe_serv->file_download(
|
||||||
EXPORTING
|
iv_path = lv_path
|
||||||
bin_filesize = xstrlen( iv_xstr )
|
iv_xstr = iv_xstr ).
|
||||||
filename = lv_fullpath
|
|
||||||
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' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD file_upload.
|
METHOD file_upload.
|
||||||
|
|
||||||
DATA: lt_data TYPE TABLE OF x255,
|
DATA: lv_path TYPE string.
|
||||||
lt_file_table TYPE filetable,
|
|
||||||
ls_file_table LIKE LINE OF lt_file_table,
|
|
||||||
lv_action TYPE i,
|
|
||||||
lv_string TYPE string,
|
|
||||||
lv_rc TYPE i,
|
|
||||||
lv_length TYPE i.
|
|
||||||
|
|
||||||
|
lv_path = zcl_abapgit_factory=>get_frontend_services( )->show_file_open_dialog(
|
||||||
|
iv_title = 'Import ZIP'
|
||||||
|
iv_default_filename = '*.zip' ).
|
||||||
|
|
||||||
cl_gui_frontend_services=>file_open_dialog(
|
rv_xstr = zcl_abapgit_factory=>get_frontend_services( )->file_upload( lv_path ).
|
||||||
EXPORTING
|
|
||||||
window_title = 'Import ZIP'
|
|
||||||
default_filename = '*.zip'
|
|
||||||
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 ). "#EC NOTEXT
|
|
||||||
IF sy-subrc <> 0.
|
|
||||||
zcx_abapgit_exception=>raise( 'error from file_open_dialog' ).
|
|
||||||
ENDIF.
|
|
||||||
IF lv_action = cl_gui_frontend_services=>action_cancel.
|
|
||||||
zcx_abapgit_exception=>raise( 'cancelled' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
READ TABLE lt_file_table INDEX 1 INTO ls_file_table.
|
|
||||||
ASSERT sy-subrc = 0.
|
|
||||||
lv_string = ls_file_table-filename.
|
|
||||||
|
|
||||||
cl_gui_frontend_services=>gui_upload(
|
|
||||||
EXPORTING
|
|
||||||
filename = lv_string
|
|
||||||
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' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
CONCATENATE LINES OF lt_data INTO rv_xstr IN BYTE MODE.
|
|
||||||
rv_xstr = rv_xstr(lv_length).
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user