object to zip

This commit is contained in:
larshp 2016-10-12 14:58:34 +02:00
parent f176fa8866
commit 58e7e957e3
5 changed files with 95 additions and 11 deletions

View File

@ -160,6 +160,7 @@ CONSTANTS: BEGIN OF gc_action,
zip_export TYPE string VALUE 'zip_export',
zip_package TYPE string VALUE 'zip_package',
zip_transport TYPE string VALUE 'zip_transport',
zip_object TYPE string VALUE 'zip_object',
git_pull TYPE string VALUE 'git_pull',
git_reset TYPE string VALUE 'git_reset',

View File

@ -158,6 +158,9 @@ CLASS lcl_gui_router IMPLEMENTATION.
WHEN gc_action-zip_transport. " Export transport as ZIP
lcl_transport=>zip( ).
ev_state = gc_event_state-no_more_act.
WHEN gc_action-zip_object. " Export object as ZIP
lcl_zip=>export_object( ).
ev_state = gc_event_state-no_more_act.
" Remote origin manipulations
WHEN gc_action-repo_remote_attach. " Remote attach

View File

@ -204,6 +204,7 @@ CLASS lcl_gui_page_main IMPLEMENTATION.
lo_betasub->add( iv_txt = 'Database util' iv_act = gc_action-go_db ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Package to zip' iv_act = gc_action-zip_package ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Transport to zip' iv_act = gc_action-zip_transport ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Object to zip' iv_act = gc_action-zip_object ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Page playground' iv_act = gc_action-go_playground ) ##NO_TEXT.
lo_betasub->add( iv_txt = 'Debug info' iv_act = gc_action-go_debuginfo ) ##NO_TEXT.

View File

@ -18,7 +18,10 @@ CLASS lcl_popups DEFINITION.
CLASS-METHODS:
popup_package_export
RETURNING VALUE(rv_package) TYPE devclass
RAISING lcx_exception,
RAISING lcx_exception,
popup_object
RETURNING VALUE(rs_tadir) TYPE tadir
RAISING lcx_exception,
create_branch_popup
EXPORTING ev_name TYPE string
ev_cancel TYPE abap_bool
@ -43,19 +46,19 @@ CLASS lcl_popups DEFINITION.
iv_freeze_package TYPE abap_bool OPTIONAL
iv_freeze_url TYPE abap_bool OPTIONAL
iv_title TYPE clike DEFAULT 'Clone repository ...'
RETURNING VALUE(rs_popup) TYPE ty_popup
RETURNING VALUE(rs_popup) TYPE ty_popup
RAISING lcx_exception ##NO_TEXT,
popup_to_confirm
IMPORTING
titlebar TYPE clike
text_question TYPE clike
text_button_1 TYPE clike DEFAULT 'Yes'
icon_button_1 TYPE ICON-NAME DEFAULT space
text_button_2 TYPE clike DEFAULT 'No'
icon_button_2 TYPE ICON-NAME DEFAULT space
default_button TYPE char1 DEFAULT '1'
display_cancel_button TYPE char1 DEFAULT abap_true
RETURNING VALUE(rv_answer) TYPE char1
titlebar TYPE clike
text_question TYPE clike
text_button_1 TYPE clike DEFAULT 'Yes'
icon_button_1 TYPE icon-name DEFAULT space
text_button_2 TYPE clike DEFAULT 'No'
icon_button_2 TYPE icon-name DEFAULT space
default_button TYPE char1 DEFAULT '1'
display_cancel_button TYPE char1 DEFAULT abap_true
RETURNING VALUE(rv_answer) TYPE char1
RAISING lcx_exception.
ENDCLASS.
@ -72,6 +75,51 @@ CLASS lcl_popups IMPLEMENTATION.
END-OF-DEFINITION.
METHOD popup_object.
DATA: lv_returncode TYPE c,
lt_fields TYPE TABLE OF sval.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
" TAB FLD LABEL DEF ATTR
_add_dialog_fld 'TADIR' 'OBJECT' 'Type' '' ''.
_add_dialog_fld 'TADIR' 'OBJ_NAME' 'Name' '' ''.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
no_value_check = abap_true
popup_title = 'Object' "#EC NOTEXT
IMPORTING
returncode = lv_returncode
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 2.
IF sy-subrc <> 0.
lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ).
ENDIF.
IF lv_returncode = 'A'.
RETURN.
ENDIF.
READ TABLE lt_fields INDEX 1 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
TRANSLATE <ls_field>-value TO UPPER CASE.
rs_tadir-object = <ls_field>-value.
READ TABLE lt_fields INDEX 2 ASSIGNING <ls_field>.
ASSERT sy-subrc = 0.
TRANSLATE <ls_field>-value TO UPPER CASE.
rs_tadir-obj_name = <ls_field>-value.
rs_tadir = lcl_tadir=>read_single( iv_object = rs_tadir-object
iv_obj_name = rs_tadir-obj_name ).
ENDMETHOD.
METHOD popup_package_export.
DATA: lv_returncode TYPE c,

View File

@ -22,6 +22,9 @@ CLASS lcl_zip DEFINITION FINAL.
CLASS-METHODS export_package
RAISING lcx_exception lcx_cancel.
CLASS-METHODS export_object
RAISING lcx_exception lcx_cancel.
PRIVATE SECTION.
CLASS-METHODS file_upload
RETURNING VALUE(rv_xstr) TYPE xstring
@ -455,4 +458,32 @@ CLASS lcl_zip IMPLEMENTATION.
ENDMETHOD. "export_package
METHOD export_object.
DATA: lo_repo TYPE REF TO lcl_repo_offline,
ls_data TYPE lcl_persistence_repo=>ty_repo,
lt_tadir TYPE scts_tadir,
ls_tadir TYPE tadir.
ls_tadir = lcl_popups=>popup_object( ).
IF ls_tadir IS INITIAL.
RAISE EXCEPTION TYPE lcx_cancel.
ENDIF.
ls_data-key = 'TZIP'.
ls_data-package = ls_tadir-devclass.
ls_data-master_language = sy-langu.
CREATE OBJECT lo_repo
EXPORTING
is_data = ls_data.
APPEND ls_tadir TO lt_tadir.
lcl_zip=>export( io_repo = lo_repo
it_filter = lt_tadir ).
ENDMETHOD. "export_package
ENDCLASS. "lcl_zip IMPLEMENTATION