mirror of
https://github.com/abapGit/abapGit.git
synced 2025-04-30 20:03:20 +08:00
Optimize add namespace (#6461)
Co-authored-by: Marc Bernard <59966492+mbtools@users.noreply.github.com>
This commit is contained in:
parent
8e3a64dd68
commit
bc00e4d911
|
@ -54,10 +54,11 @@ CLASS zcl_abapgit_tadir DEFINITION
|
|||
zcx_abapgit_exception .
|
||||
METHODS add_namespace
|
||||
IMPORTING
|
||||
!iv_package TYPE devclass
|
||||
!iv_object TYPE csequence
|
||||
!iv_package TYPE devclass
|
||||
!iv_object TYPE csequence
|
||||
CHANGING
|
||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
!ct_tadir TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
!ct_tadir_nspc TYPE zif_abapgit_definitions=>ty_tadir_tt
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS determine_path
|
||||
|
@ -106,11 +107,9 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
|
||||
METHOD add_namespace.
|
||||
|
||||
DATA ls_tadir TYPE zif_abapgit_definitions=>ty_tadir.
|
||||
DATA ls_tadir TYPE zif_abapgit_definitions=>ty_tadir.
|
||||
DATA ls_obj_with_namespace TYPE zif_abapgit_definitions=>ty_obj_namespace.
|
||||
|
||||
FIELD-SYMBOLS <ls_tadir> LIKE LINE OF ct_tadir.
|
||||
|
||||
TRY.
|
||||
ls_obj_with_namespace = zcl_abapgit_factory=>get_sap_namespace( )->split_by_name( iv_object ).
|
||||
CATCH zcx_abapgit_exception.
|
||||
|
@ -120,16 +119,17 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
|
||||
IF ls_obj_with_namespace-namespace IS NOT INITIAL.
|
||||
|
||||
READ TABLE ct_tadir TRANSPORTING NO FIELDS
|
||||
READ TABLE ct_tadir_nspc TRANSPORTING NO FIELDS
|
||||
WITH KEY pgmid = 'R3TR' object = 'NSPC' obj_name = ls_obj_with_namespace-namespace.
|
||||
IF sy-subrc <> 0.
|
||||
APPEND INITIAL LINE TO ct_tadir ASSIGNING <ls_tadir>.
|
||||
<ls_tadir>-pgmid = 'R3TR'.
|
||||
<ls_tadir>-object = 'NSPC'.
|
||||
<ls_tadir>-obj_name = ls_obj_with_namespace-namespace.
|
||||
<ls_tadir>-devclass = iv_package.
|
||||
<ls_tadir>-srcsystem = sy-sysid.
|
||||
<ls_tadir>-masterlang = sy-langu.
|
||||
ls_tadir-pgmid = 'R3TR'.
|
||||
ls_tadir-object = 'NSPC'.
|
||||
ls_tadir-obj_name = ls_obj_with_namespace-namespace.
|
||||
ls_tadir-devclass = iv_package.
|
||||
ls_tadir-srcsystem = sy-sysid.
|
||||
ls_tadir-masterlang = sy-langu.
|
||||
INSERT ls_tadir INTO TABLE ct_tadir.
|
||||
INSERT ls_tadir INTO TABLE ct_tadir_nspc.
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
@ -139,26 +139,30 @@ CLASS zcl_abapgit_tadir IMPLEMENTATION.
|
|||
|
||||
METHOD add_namespaces.
|
||||
|
||||
DATA lt_tadir_nspc TYPE zif_abapgit_definitions=>ty_tadir_tt.
|
||||
|
||||
FIELD-SYMBOLS <ls_tadir> LIKE LINE OF ct_tadir.
|
||||
|
||||
" Namespaces are not in TADIR, but are necessary for creating objects in transportable packages
|
||||
LOOP AT ct_tadir ASSIGNING <ls_tadir> WHERE obj_name(1) = '/'.
|
||||
add_namespace(
|
||||
EXPORTING
|
||||
iv_package = iv_package
|
||||
iv_object = <ls_tadir>-obj_name
|
||||
iv_package = iv_package
|
||||
iv_object = <ls_tadir>-obj_name
|
||||
CHANGING
|
||||
ct_tadir = ct_tadir ).
|
||||
ct_tadir = ct_tadir
|
||||
ct_tadir_nspc = lt_tadir_nspc ).
|
||||
ENDLOOP.
|
||||
|
||||
" Root package of repo might not exist yet but needs to be considered, too
|
||||
IF iv_package CP '/*'.
|
||||
add_namespace(
|
||||
EXPORTING
|
||||
iv_package = iv_package
|
||||
iv_object = iv_package
|
||||
iv_package = iv_package
|
||||
iv_object = iv_package
|
||||
CHANGING
|
||||
ct_tadir = ct_tadir ).
|
||||
ct_tadir = ct_tadir
|
||||
ct_tadir_nspc = lt_tadir_nspc ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
|
Loading…
Reference in New Issue
Block a user