Merge pull request #574 from christian1020-94/issue567

Added "Create package" button in "+Offline" #567
This commit is contained in:
Lars Hvam 2017-01-23 14:19:02 +01:00 committed by GitHub
commit 0e437c5ac2
2 changed files with 92 additions and 33 deletions

View File

@ -53,7 +53,8 @@ FORM branch_popup TABLES tt_fields TYPE ty_sval_tt
DATA: lv_url TYPE string,
lx_error TYPE REF TO lcx_exception,
ls_package_data TYPE scompkdtln,
ls_branch TYPE lcl_git_branch_list=>ty_git_branch.
ls_branch TYPE lcl_git_branch_list=>ty_git_branch,
lv_create TYPE boolean.
FIELD-SYMBOLS: <ls_furl> LIKE LINE OF tt_fields,
<ls_fbranch> LIKE LINE OF tt_fields.
@ -88,24 +89,9 @@ FORM branch_popup TABLES tt_fields TYPE ty_sval_tt
ELSEIF pv_code = 'COD2'.
cv_show_popup = abap_true.
CALL FUNCTION 'FUNCTION_EXISTS'
EXPORTING
funcname = 'PB_POPUP_PACKAGE_CREATE'
EXCEPTIONS
function_not_exist = 1
OTHERS = 2.
IF sy-subrc = 1.
* looks like the function module used does not exist on all
* versions since 702, so show an error
lcx_exception=>raise( 'Function module PB_POPUP_PACKAGE_CREATE does not exist' ).
ENDIF.
CALL FUNCTION 'PB_POPUP_PACKAGE_CREATE'
CHANGING
p_object_data = ls_package_data
EXCEPTIONS
action_cancelled = 1.
IF sy-subrc = 1.
lcl_popups=>popup_to_create_package( IMPORTING es_package_data = ls_package_data
ev_create = lv_create ).
IF lv_create = abap_false.
RETURN.
ENDIF.
@ -119,6 +105,38 @@ FORM branch_popup TABLES tt_fields TYPE ty_sval_tt
ENDFORM. "branch_popup
FORM package_popup TABLES tt_fields TYPE ty_sval_tt
USING pv_code TYPE clike
CHANGING cs_error TYPE svale
cv_show_popup TYPE c
RAISING lcx_exception ##called ##needed.
* called dynamically from function module POPUP_GET_VALUES_USER_BUTTONS
DATA: ls_package_data TYPE scompkdtln,
lv_create TYPE boolean.
FIELD-SYMBOLS: <ls_fbranch> LIKE LINE OF tt_fields.
CLEAR cs_error.
IF pv_code = 'COD1'.
cv_show_popup = abap_true.
lcl_popups=>popup_to_create_package( IMPORTING es_package_data = ls_package_data
ev_create = lv_create ).
IF lv_create = abap_false.
RETURN.
ENDIF.
lcl_sap_package=>create( ls_package_data ).
COMMIT WORK.
READ TABLE tt_fields ASSIGNING <ls_fbranch> WITH KEY tabname = 'TDEVC'.
ASSERT sy-subrc = 0.
<ls_fbranch>-value = ls_package_data-devclass.
ENDIF.
ENDFORM. "package_popup
FORM output.
DATA: lt_ucomm TYPE TABLE OF sy-ucomm.
PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND.

View File

@ -64,9 +64,11 @@ CLASS lcl_popups DEFINITION FINAL.
IMPORTING
titlebar TYPE clike
text_message TYPE clike
RAISING lcx_exception,
popup_to_create_package
EXPORTING es_package_data TYPE scompkdtln
ev_create TYPE boolean
RAISING lcx_exception.
ENDCLASS.
CLASS lcl_popups IMPLEMENTATION.
@ -241,7 +243,10 @@ CLASS lcl_popups IMPLEMENTATION.
METHOD repo_new_offline.
DATA: lv_returncode TYPE c,
lt_fields TYPE TABLE OF sval.
lt_fields TYPE TABLE OF sval,
lv_icon_ok TYPE icon-name,
lv_button1 TYPE svalbutton-buttontext,
lv_icon1 TYPE icon-name.
FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
@ -250,10 +255,21 @@ CLASS lcl_popups IMPLEMENTATION.
_add_dialog_fld 'ABAPTXT255' 'LINE' 'Name' '' ''.
_add_dialog_fld 'TDEVC' 'DEVCLASS' 'Package' '' ''.
CALL FUNCTION 'POPUP_GET_VALUES'
lv_icon_ok = icon_okay.
lv_button1 = 'Create package' ##NO_TEXT.
lv_icon1 = icon_folder.
CALL FUNCTION 'POPUP_GET_VALUES_USER_BUTTONS'
EXPORTING
no_value_check = abap_true
popup_title = 'New Offline Project' "#EC NOTEXT
popup_title = 'New Offline Project'
programname = sy-repid
formname = 'PACKAGE_POPUP'
ok_pushbuttontext = ''
icon_ok_push = lv_icon_ok
first_pushbutton = lv_button1
icon_button_1 = lv_icon1
second_pushbutton = ''
icon_button_2 = ''
IMPORTING
returncode = lv_returncode
TABLES
@ -482,4 +498,29 @@ CLASS lcl_popups IMPLEMENTATION.
ENDMETHOD. " popup_to_inform.
METHOD popup_to_create_package.
CALL FUNCTION 'FUNCTION_EXISTS'
EXPORTING
funcname = 'PB_POPUP_PACKAGE_CREATE'
EXCEPTIONS
function_not_exist = 1
OTHERS = 2.
IF sy-subrc = 1.
* looks like the function module used does not exist on all
* versions since 702, so show an error
lcx_exception=>raise( 'Function module PB_POPUP_PACKAGE_CREATE does not exist' ).
ENDIF.
CALL FUNCTION 'PB_POPUP_PACKAGE_CREATE'
CHANGING
p_object_data = es_package_data
EXCEPTIONS
action_cancelled = 1.
IF sy-subrc = 0.
ev_create = abap_true.
ELSE.
ev_create = abap_false.
ENDIF.
ENDMETHOD. " popup_to_create_package
ENDCLASS.