mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Package parameter for ADT
This commit is contained in:
parent
64a0ec086d
commit
0c1a8f745a
|
@ -42,6 +42,10 @@ CLASS zcl_abapgit_services_abapgit DEFINITION
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception.
|
zcx_abapgit_exception.
|
||||||
|
|
||||||
|
CLASS-METHODS get_package_from_adt
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_package) TYPE devclass.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -145,21 +149,24 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD prepare_gui_startup.
|
METHOD prepare_gui_startup.
|
||||||
|
|
||||||
DATA: lv_repo_key TYPE zif_abapgit_persistence=>ty_value,
|
DATA: lv_repo_key TYPE zif_abapgit_persistence=>ty_value,
|
||||||
lv_package TYPE devclass.
|
lv_package TYPE devclass,
|
||||||
|
lv_package_adt TYPE devclass.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_show_default_repo( ) = abap_false.
|
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_show_default_repo( ) = abap_false.
|
||||||
" Don't show the last seen repo at startup
|
" Don't show the last seen repo at startup
|
||||||
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( || ).
|
zcl_abapgit_persistence_user=>get_instance( )->set_repo_show( || ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
" We have two special cases for gui startup
|
" We have three special cases for gui startup
|
||||||
" - open a specific repo by repo key
|
" - open a specific repo by repo key
|
||||||
" - open a specific repo by package name
|
" - open a specific repo by package name
|
||||||
|
" - open a specific repo by package name provided by ADT
|
||||||
" These overrule the last shown repo
|
" These overrule the last shown repo
|
||||||
|
|
||||||
GET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_repo_key FIELD lv_repo_key.
|
GET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_repo_key FIELD lv_repo_key.
|
||||||
GET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_package FIELD lv_package.
|
GET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_package FIELD lv_package.
|
||||||
|
lv_package_adt = get_package_from_adt( ).
|
||||||
|
|
||||||
IF lv_repo_key IS NOT INITIAL.
|
IF lv_repo_key IS NOT INITIAL.
|
||||||
|
|
||||||
|
@ -171,6 +178,10 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
|
||||||
SET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_package FIELD ''.
|
SET PARAMETER ID zif_abapgit_definitions=>c_spagpa_param_package FIELD ''.
|
||||||
set_start_repo_from_package( lv_package ).
|
set_start_repo_from_package( lv_package ).
|
||||||
|
|
||||||
|
ELSEIF lv_package_adt IS NOT INITIAL.
|
||||||
|
|
||||||
|
set_start_repo_from_package( lv_package_adt ).
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -224,4 +235,56 @@ CLASS zcl_abapgit_services_abapgit IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_package_from_adt.
|
||||||
|
|
||||||
|
DATA: ls_item TYPE zif_abapgit_definitions=>ty_item,
|
||||||
|
lr_context TYPE REF TO data,
|
||||||
|
lt_fields TYPE tihttpnvp.
|
||||||
|
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_context> TYPE any,
|
||||||
|
<lv_parameters> TYPE string,
|
||||||
|
<ls_field> LIKE LINE OF lt_fields.
|
||||||
|
|
||||||
|
ls_item-obj_type = 'CLAS'.
|
||||||
|
ls_item-obj_name = 'CL_ADT_GUI_INTEGRATION_CONTEXT'.
|
||||||
|
|
||||||
|
IF zcl_abapgit_objects=>exists( ls_item ) = abap_false.
|
||||||
|
" ADT is not supported in this NW release
|
||||||
|
RETURN.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
TRY.
|
||||||
|
CREATE DATA lr_context TYPE ('CL_ADT_GUI_INTEGRATION_CONTEXT=>TY_CONTEXT_INFO').
|
||||||
|
|
||||||
|
ASSIGN lr_context->* TO <ls_context>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
CALL METHOD ('CL_ADT_GUI_INTEGRATION_CONTEXT')=>read_context
|
||||||
|
RECEIVING
|
||||||
|
result = <ls_context>.
|
||||||
|
|
||||||
|
ASSIGN COMPONENT 'PARAMETERS'
|
||||||
|
OF STRUCTURE <ls_context>
|
||||||
|
TO <lv_parameters>.
|
||||||
|
ASSERT sy-subrc = 0.
|
||||||
|
|
||||||
|
lt_fields = cl_http_utility=>string_to_fields(
|
||||||
|
cl_http_utility=>unescape_url(
|
||||||
|
<lv_parameters> ) ).
|
||||||
|
|
||||||
|
READ TABLE lt_fields ASSIGNING <ls_field>
|
||||||
|
WITH KEY name = 'p_package_name'.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
rv_package = <ls_field>-value.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
CATCH cx_root.
|
||||||
|
" Some problems with dynamic ADT access.
|
||||||
|
" Let's ignore it for now and fail silently
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user