diff --git a/src/zabapgit_forms.prog.abap b/src/zabapgit_forms.prog.abap index ce245c1f1..e3d9d95d1 100644 --- a/src/zabapgit_forms.prog.abap +++ b/src/zabapgit_forms.prog.abap @@ -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: LIKE LINE OF tt_fields, 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: 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 WITH KEY tabname = 'TDEVC'. + ASSERT sy-subrc = 0. + -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. diff --git a/src/zabapgit_popups.prog.abap b/src/zabapgit_popups.prog.abap index 46f82d07a..3cd11daca 100644 --- a/src/zabapgit_popups.prog.abap +++ b/src/zabapgit_popups.prog.abap @@ -61,12 +61,14 @@ CLASS lcl_popups DEFINITION FINAL. RETURNING VALUE(rv_answer) TYPE char1 RAISING lcx_exception, popup_to_inform - IMPORTING - titlebar TYPE clike - text_message TYPE clike - RAISING lcx_exception. - - + 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: LIKE LINE OF lt_fields. @@ -250,17 +255,28 @@ 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 + returncode = lv_returncode TABLES - fields = lt_fields + fields = lt_fields EXCEPTIONS - error_in_fields = 1 - OTHERS = 2. + error_in_fields = 1 + OTHERS = 2. IF sy-subrc <> 0. lcx_exception=>raise( 'Error from POPUP_GET_VALUES' ). ENDIF. @@ -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.