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, DATA: lv_url TYPE string,
lx_error TYPE REF TO lcx_exception, lx_error TYPE REF TO lcx_exception,
ls_package_data TYPE scompkdtln, 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, FIELD-SYMBOLS: <ls_furl> LIKE LINE OF tt_fields,
<ls_fbranch> 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'. ELSEIF pv_code = 'COD2'.
cv_show_popup = abap_true. cv_show_popup = abap_true.
CALL FUNCTION 'FUNCTION_EXISTS' lcl_popups=>popup_to_create_package( IMPORTING es_package_data = ls_package_data
EXPORTING ev_create = lv_create ).
funcname = 'PB_POPUP_PACKAGE_CREATE' IF lv_create = abap_false.
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.
RETURN. RETURN.
ENDIF. ENDIF.
@ -119,6 +105,38 @@ FORM branch_popup TABLES tt_fields TYPE ty_sval_tt
ENDFORM. "branch_popup 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. FORM output.
DATA: lt_ucomm TYPE TABLE OF sy-ucomm. DATA: lt_ucomm TYPE TABLE OF sy-ucomm.
PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND. PERFORM set_pf_status IN PROGRAM rsdbrunt IF FOUND.

View File

@ -61,12 +61,14 @@ CLASS lcl_popups DEFINITION FINAL.
RETURNING VALUE(rv_answer) TYPE char1 RETURNING VALUE(rv_answer) TYPE char1
RAISING lcx_exception, RAISING lcx_exception,
popup_to_inform popup_to_inform
IMPORTING IMPORTING
titlebar TYPE clike titlebar TYPE clike
text_message TYPE clike text_message TYPE clike
RAISING lcx_exception. RAISING lcx_exception,
popup_to_create_package
EXPORTING es_package_data TYPE scompkdtln
ev_create TYPE boolean
RAISING lcx_exception.
ENDCLASS. ENDCLASS.
CLASS lcl_popups IMPLEMENTATION. CLASS lcl_popups IMPLEMENTATION.
@ -241,7 +243,10 @@ CLASS lcl_popups IMPLEMENTATION.
METHOD repo_new_offline. METHOD repo_new_offline.
DATA: lv_returncode TYPE c, 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. FIELD-SYMBOLS: <ls_field> LIKE LINE OF lt_fields.
@ -250,17 +255,28 @@ CLASS lcl_popups IMPLEMENTATION.
_add_dialog_fld 'ABAPTXT255' 'LINE' 'Name' '' ''. _add_dialog_fld 'ABAPTXT255' 'LINE' 'Name' '' ''.
_add_dialog_fld 'TDEVC' 'DEVCLASS' 'Package' '' ''. _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 EXPORTING
no_value_check = abap_true popup_title = 'New Offline Project'
popup_title = 'New Offline Project' "#EC NOTEXT 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 IMPORTING
returncode = lv_returncode returncode = lv_returncode
TABLES TABLES
fields = lt_fields fields = lt_fields
EXCEPTIONS EXCEPTIONS
error_in_fields = 1 error_in_fields = 1
OTHERS = 2. OTHERS = 2.
IF sy-subrc <> 0. IF sy-subrc <> 0.
lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ). lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ).
ENDIF. ENDIF.
@ -482,4 +498,29 @@ CLASS lcl_popups IMPLEMENTATION.
ENDMETHOD. " popup_to_inform. 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. ENDCLASS.