mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
apack performance fix (#6649)
This commit is contained in:
parent
380563d144
commit
5c99f34d25
|
@ -70,7 +70,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS zcl_abapgit_apack_reader IMPLEMENTATION.
|
CLASS ZCL_ABAPGIT_APACK_READER IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor.
|
METHOD constructor.
|
||||||
|
@ -173,6 +173,9 @@ CLASS zcl_abapgit_apack_reader IMPLEMENTATION.
|
||||||
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt,
|
lt_packages TYPE zif_abapgit_sap_package=>ty_devclass_tt,
|
||||||
ls_manifest_implementation TYPE ty_s_manifest_declaration,
|
ls_manifest_implementation TYPE ty_s_manifest_declaration,
|
||||||
lt_manifest_implementation TYPE STANDARD TABLE OF ty_s_manifest_declaration WITH DEFAULT KEY.
|
lt_manifest_implementation TYPE STANDARD TABLE OF ty_s_manifest_declaration WITH DEFAULT KEY.
|
||||||
|
DATA lt_refclsname TYPE RANGE OF abap_classname.
|
||||||
|
DATA ls_refclsname LIKE LINE OF lt_refclsname.
|
||||||
|
|
||||||
|
|
||||||
IF mv_package_name IS NOT INITIAL.
|
IF mv_package_name IS NOT INITIAL.
|
||||||
lt_packages = zcl_abapgit_factory=>get_sap_package( mv_package_name )->list_subpackages( ).
|
lt_packages = zcl_abapgit_factory=>get_sap_package( mv_package_name )->list_subpackages( ).
|
||||||
|
@ -180,16 +183,31 @@ CLASS zcl_abapgit_apack_reader IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF mv_is_cached IS INITIAL AND lt_packages IS NOT INITIAL.
|
IF mv_is_cached IS INITIAL AND lt_packages IS NOT INITIAL.
|
||||||
|
ls_refclsname-sign = 'I'.
|
||||||
|
ls_refclsname-option = 'EQ'.
|
||||||
|
ls_refclsname-low = zif_abapgit_apack_definitions=>c_apack_interface_cust.
|
||||||
|
INSERT ls_refclsname INTO TABLE lt_refclsname.
|
||||||
|
|
||||||
|
ls_refclsname-sign = 'I'.
|
||||||
|
ls_refclsname-option = 'EQ'.
|
||||||
|
ls_refclsname-low = zif_abapgit_apack_definitions=>c_apack_interface_sap.
|
||||||
|
INSERT ls_refclsname INTO TABLE lt_refclsname.
|
||||||
|
|
||||||
|
IF mv_package_name CA '/'.
|
||||||
|
ls_refclsname-sign = 'I'.
|
||||||
|
ls_refclsname-option = 'CP'.
|
||||||
|
ls_refclsname-low = zif_abapgit_apack_definitions=>c_apack_interface_nspc.
|
||||||
|
INSERT ls_refclsname INTO TABLE lt_refclsname.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
" Find all classes that implement customer or SAP version of APACK interface
|
" Find all classes that implement customer or SAP version of APACK interface
|
||||||
SELECT seometarel~clsname tadir~devclass FROM seometarel "#EC CI_NOORDER
|
SELECT seometarel~clsname tadir~devclass FROM seometarel "#EC CI_NOORDER
|
||||||
INNER JOIN tadir ON seometarel~clsname = tadir~obj_name "#EC CI_BUFFJOIN
|
INNER JOIN tadir ON seometarel~clsname = tadir~obj_name "#EC CI_BUFFJOIN
|
||||||
INTO TABLE lt_manifest_implementation
|
INTO TABLE lt_manifest_implementation
|
||||||
WHERE tadir~pgmid = 'R3TR' AND
|
WHERE tadir~pgmid = 'R3TR' AND
|
||||||
tadir~object = 'CLAS' AND
|
tadir~object = 'CLAS' AND
|
||||||
seometarel~version = '1' AND (
|
seometarel~version = '1' AND
|
||||||
seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_cust OR
|
seometarel~refclsname IN lt_refclsname
|
||||||
seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_sap OR
|
|
||||||
seometarel~refclsname LIKE zif_abapgit_apack_definitions=>c_apack_interface_nspc )
|
|
||||||
ORDER BY clsname devclass.
|
ORDER BY clsname devclass.
|
||||||
|
|
||||||
LOOP AT lt_packages INTO lv_package.
|
LOOP AT lt_packages INTO lv_package.
|
||||||
|
|
|
@ -36,5 +36,5 @@ INTERFACE zif_abapgit_apack_definitions PUBLIC .
|
||||||
CONSTANTS c_repository_type_abapgit TYPE ty_repository_type VALUE 'abapGit' ##NO_TEXT.
|
CONSTANTS c_repository_type_abapgit TYPE ty_repository_type VALUE 'abapGit' ##NO_TEXT.
|
||||||
CONSTANTS c_apack_interface_sap TYPE seoclsname VALUE 'IF_APACK_MANIFEST' ##NO_TEXT.
|
CONSTANTS c_apack_interface_sap TYPE seoclsname VALUE 'IF_APACK_MANIFEST' ##NO_TEXT.
|
||||||
CONSTANTS c_apack_interface_cust TYPE seoclsname VALUE 'ZIF_APACK_MANIFEST' ##NO_TEXT.
|
CONSTANTS c_apack_interface_cust TYPE seoclsname VALUE 'ZIF_APACK_MANIFEST' ##NO_TEXT.
|
||||||
CONSTANTS c_apack_interface_nspc TYPE seoclsname VALUE '/%/IF_APACK_MANIFEST' ##NO_TEXT.
|
CONSTANTS c_apack_interface_nspc TYPE seoclsname VALUE '/*/IF_APACK_MANIFEST' ##NO_TEXT.
|
||||||
ENDINTERFACE.
|
ENDINTERFACE.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user