mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 04:08:27 +08:00
APACK: Replace interface name with constant (#4684)
* APACK: Replace interface name with constant Closes #4248 * Lint Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
de6f8b9bbc
commit
bf5199b8d2
|
@ -63,7 +63,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_APACK_HELPER IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_apack_helper IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD are_dependencies_met.
|
||||
|
@ -155,7 +155,8 @@ CLASS ZCL_ABAPGIT_APACK_HELPER IMPLEMENTATION.
|
|||
WHERE tadir~pgmid = 'R3TR'
|
||||
AND tadir~object = 'CLAS'
|
||||
AND seometarel~version = '1'
|
||||
AND ( seometarel~refclsname = 'ZIF_APACK_MANIFEST' OR seometarel~refclsname = 'IF_APACK_MANIFEST' ).
|
||||
AND ( seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_cust
|
||||
OR seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_sap ).
|
||||
|
||||
LOOP AT lt_manifest_implementation INTO ls_manifest_implementation.
|
||||
CLEAR: lo_manifest_provider, lo_apack_reader.
|
||||
|
|
|
@ -10,18 +10,31 @@ CLASS zcl_abapgit_apack_migration DEFINITION
|
|||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
|
||||
CONSTANTS: c_interface_name TYPE seoclsname VALUE 'ZIF_APACK_MANIFEST' ##NO_TEXT.
|
||||
|
||||
METHODS:
|
||||
interface_exists RETURNING VALUE(rv_interface_exists) TYPE abap_bool,
|
||||
interface_valid RETURNING VALUE(rv_interface_valid) TYPE abap_bool,
|
||||
create_interface RAISING zcx_abapgit_exception,
|
||||
add_interface_source_classic IMPORTING is_clskey TYPE seoclskey
|
||||
RAISING zcx_abapgit_exception,
|
||||
add_interface_source IMPORTING is_clskey TYPE seoclskey
|
||||
RAISING zcx_abapgit_exception,
|
||||
get_interface_source RETURNING VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt,
|
||||
add_intf_source_and_activate RAISING zcx_abapgit_exception.
|
||||
METHODS interface_exists
|
||||
RETURNING
|
||||
VALUE(rv_interface_exists) TYPE abap_bool .
|
||||
METHODS interface_valid
|
||||
RETURNING
|
||||
VALUE(rv_interface_valid) TYPE abap_bool .
|
||||
METHODS create_interface
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS add_interface_source_classic
|
||||
IMPORTING
|
||||
!is_clskey TYPE seoclskey
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS add_interface_source
|
||||
IMPORTING
|
||||
!is_clskey TYPE seoclskey
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
METHODS get_interface_source
|
||||
RETURNING
|
||||
VALUE(rt_source) TYPE zif_abapgit_definitions=>ty_string_tt .
|
||||
METHODS add_intf_source_and_activate
|
||||
RAISING
|
||||
zcx_abapgit_exception .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -103,11 +116,41 @@ CLASS zcl_abapgit_apack_migration IMPLEMENTATION.
|
|||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD add_intf_source_and_activate.
|
||||
|
||||
DATA: ls_clskey TYPE seoclskey,
|
||||
ls_inactive_object TYPE dwinactiv,
|
||||
lt_inactive_objects TYPE TABLE OF dwinactiv.
|
||||
|
||||
ls_clskey-clsname = zif_abapgit_apack_definitions=>c_apack_interface_cust.
|
||||
|
||||
add_interface_source( ls_clskey ).
|
||||
|
||||
ls_inactive_object-object = 'INTF'.
|
||||
ls_inactive_object-obj_name = zif_abapgit_apack_definitions=>c_apack_interface_cust.
|
||||
INSERT ls_inactive_object INTO TABLE lt_inactive_objects.
|
||||
|
||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||
TABLES
|
||||
objects = lt_inactive_objects
|
||||
EXCEPTIONS
|
||||
excecution_error = 1
|
||||
cancelled = 2
|
||||
insert_into_corr_error = 3
|
||||
OTHERS = 4.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_interface.
|
||||
|
||||
DATA: ls_interface_properties TYPE vseointerf.
|
||||
|
||||
ls_interface_properties-clsname = c_interface_name.
|
||||
ls_interface_properties-clsname = zif_abapgit_apack_definitions=>c_apack_interface_cust.
|
||||
ls_interface_properties-version = '1'.
|
||||
ls_interface_properties-langu = 'E'.
|
||||
ls_interface_properties-descript = 'APACK: Manifest interface'.
|
||||
|
@ -193,12 +236,24 @@ CLASS zcl_abapgit_apack_migration IMPLEMENTATION.
|
|||
|
||||
DATA: lv_interface_name TYPE seoclsname.
|
||||
|
||||
SELECT SINGLE clsname FROM seoclass INTO lv_interface_name WHERE clsname = c_interface_name.
|
||||
SELECT SINGLE clsname FROM seoclass INTO lv_interface_name
|
||||
WHERE clsname = zif_abapgit_apack_definitions=>c_apack_interface_cust.
|
||||
rv_interface_exists = boolc( sy-subrc = 0 ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD interface_valid.
|
||||
|
||||
FIELD-SYMBOLS: <lv_interface_vers> TYPE i.
|
||||
|
||||
ASSIGN (zif_abapgit_apack_definitions=>c_apack_interface_cust)=>('CO_INTERFACE_VERSION') TO <lv_interface_vers>.
|
||||
rv_interface_valid = boolc( <lv_interface_vers> IS ASSIGNED
|
||||
AND <lv_interface_vers> >= c_apack_interface_version ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD perform_migration.
|
||||
|
||||
IF interface_exists( ) = abap_false.
|
||||
|
@ -218,45 +273,4 @@ CLASS zcl_abapgit_apack_migration IMPLEMENTATION.
|
|||
lo_apack_migration->perform_migration( ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD interface_valid.
|
||||
|
||||
FIELD-SYMBOLS: <lv_interface_version> TYPE i.
|
||||
|
||||
ASSIGN ('ZIF_APACK_MANIFEST')=>('CO_INTERFACE_VERSION') TO <lv_interface_version>.
|
||||
rv_interface_valid = boolc( <lv_interface_version> IS ASSIGNED
|
||||
AND <lv_interface_version> >= c_apack_interface_version ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD add_intf_source_and_activate.
|
||||
|
||||
DATA: ls_clskey TYPE seoclskey,
|
||||
ls_inactive_object TYPE dwinactiv,
|
||||
lt_inactive_objects TYPE TABLE OF dwinactiv.
|
||||
|
||||
ls_clskey-clsname = c_interface_name.
|
||||
|
||||
add_interface_source( ls_clskey ).
|
||||
|
||||
ls_inactive_object-object = 'INTF'.
|
||||
ls_inactive_object-obj_name = c_interface_name.
|
||||
INSERT ls_inactive_object INTO TABLE lt_inactive_objects.
|
||||
|
||||
CALL FUNCTION 'RS_WORKING_OBJECTS_ACTIVATE'
|
||||
TABLES
|
||||
objects = lt_inactive_objects
|
||||
EXCEPTIONS
|
||||
excecution_error = 1
|
||||
cancelled = 2
|
||||
insert_into_corr_error = 3
|
||||
OTHERS = 4.
|
||||
|
||||
IF sy-subrc <> 0.
|
||||
zcx_abapgit_exception=>raise_t100( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
|
@ -70,7 +70,7 @@ ENDCLASS.
|
|||
|
||||
|
||||
|
||||
CLASS ZCL_ABAPGIT_APACK_READER IMPLEMENTATION.
|
||||
CLASS zcl_abapgit_apack_reader IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
@ -82,15 +82,20 @@ CLASS ZCL_ABAPGIT_APACK_READER IMPLEMENTATION.
|
|||
|
||||
DATA: ls_my_manifest_wo_deps TYPE zif_abapgit_apack_definitions=>ty_descriptor_wo_dependencies,
|
||||
ls_my_dependency TYPE zif_abapgit_apack_definitions=>ty_dependency,
|
||||
ls_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor.
|
||||
ls_descriptor TYPE zif_abapgit_apack_definitions=>ty_descriptor,
|
||||
lv_descriptor_cust TYPE string,
|
||||
lv_descriptor_sap TYPE string.
|
||||
|
||||
FIELD-SYMBOLS: <lg_descriptor> TYPE any,
|
||||
<lt_dependencies> TYPE ANY TABLE,
|
||||
<lg_dependency> TYPE any.
|
||||
|
||||
ASSIGN io_manifest_provider->('ZIF_APACK_MANIFEST~DESCRIPTOR') TO <lg_descriptor>.
|
||||
lv_descriptor_cust = zif_abapgit_apack_definitions=>c_apack_interface_cust && '~DESCRIPTOR'.
|
||||
lv_descriptor_sap = zif_abapgit_apack_definitions=>c_apack_interface_sap && '~DESCRIPTOR'.
|
||||
|
||||
ASSIGN io_manifest_provider->(lv_descriptor_cust) TO <lg_descriptor>.
|
||||
IF <lg_descriptor> IS NOT ASSIGNED.
|
||||
ASSIGN io_manifest_provider->('IF_APACK_MANIFEST~DESCRIPTOR') TO <lg_descriptor>.
|
||||
ASSIGN io_manifest_provider->(lv_descriptor_sap) TO <lg_descriptor>.
|
||||
ENDIF.
|
||||
IF <lg_descriptor> IS ASSIGNED.
|
||||
" A little more complex than a normal MOVE-CORRSPONDING
|
||||
|
@ -175,7 +180,7 @@ CLASS ZCL_ABAPGIT_APACK_READER IMPLEMENTATION.
|
|||
WHERE tadir~pgmid = 'R3TR' AND
|
||||
tadir~object = 'CLAS' AND
|
||||
seometarel~version = '1' AND
|
||||
seometarel~refclsname = 'ZIF_APACK_MANIFEST' AND
|
||||
seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_cust AND
|
||||
tadir~devclass = mv_package_name.
|
||||
IF ls_manifest_implementation IS INITIAL.
|
||||
SELECT SINGLE seometarel~clsname tadir~devclass FROM seometarel "#EC CI_NOORDER
|
||||
|
@ -184,7 +189,7 @@ CLASS ZCL_ABAPGIT_APACK_READER IMPLEMENTATION.
|
|||
WHERE tadir~pgmid = 'R3TR' AND
|
||||
tadir~object = 'CLAS' AND
|
||||
seometarel~version = '1' AND
|
||||
seometarel~refclsname = 'IF_APACK_MANIFEST' AND
|
||||
seometarel~refclsname = zif_abapgit_apack_definitions=>c_apack_interface_sap AND
|
||||
tadir~devclass = mv_package_name.
|
||||
ENDIF.
|
||||
IF ls_manifest_implementation IS NOT INITIAL.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
INTERFACE zif_abapgit_apack_definitions PUBLIC.
|
||||
INTERFACE zif_abapgit_apack_definitions PUBLIC .
|
||||
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_dependency,
|
||||
|
@ -9,7 +10,6 @@ INTERFACE zif_abapgit_apack_definitions PUBLIC.
|
|||
git_url TYPE string,
|
||||
target_package TYPE devclass,
|
||||
END OF ty_dependency,
|
||||
|
||||
ty_dependencies TYPE STANDARD TABLE OF ty_dependency
|
||||
WITH NON-UNIQUE DEFAULT KEY,
|
||||
|
||||
|
@ -34,5 +34,6 @@ INTERFACE zif_abapgit_apack_definitions PUBLIC.
|
|||
|
||||
CONSTANTS c_dot_apack_manifest TYPE string VALUE '.apack-manifest.xml' ##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_cust TYPE seoclsname VALUE 'ZIF_APACK_MANIFEST' ##NO_TEXT.
|
||||
ENDINTERFACE.
|
||||
|
|
|
@ -303,7 +303,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
" Check if SAP-version of APACK manifest exists
|
||||
SELECT SINGLE clsname INTO lv_apack
|
||||
FROM seoclass
|
||||
WHERE clsname = 'IF_APACK_MANIFEST'.
|
||||
WHERE clsname = zif_abapgit_apack_definitions=>c_apack_interface_sap.
|
||||
IF sy-subrc = 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
@ -311,8 +311,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
" If not, replace with abapGit version
|
||||
interface_replacement(
|
||||
EXPORTING
|
||||
iv_from_interface = 'if_apack_manifest'
|
||||
iv_to_interface = 'zif_apack_manifest'
|
||||
iv_from_interface = to_lower( zif_abapgit_apack_definitions=>c_apack_interface_sap )
|
||||
iv_to_interface = to_lower( zif_abapgit_apack_definitions=>c_apack_interface_cust )
|
||||
CHANGING
|
||||
ct_source = ct_source ).
|
||||
|
||||
|
@ -524,7 +524,7 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
SELECT SINGLE clsname INTO lv_clsname
|
||||
FROM seometarel
|
||||
WHERE clsname = ms_item-obj_name
|
||||
AND refclsname = 'ZIF_APACK_MANIFEST'
|
||||
AND refclsname = zif_abapgit_apack_definitions=>c_apack_interface_cust
|
||||
AND version = '1'.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
|
@ -533,8 +533,8 @@ CLASS zcl_abapgit_object_clas IMPLEMENTATION.
|
|||
" If yes, replace with SAP-version
|
||||
interface_replacement(
|
||||
EXPORTING
|
||||
iv_from_interface = 'zif_apack_manifest'
|
||||
iv_to_interface = 'if_apack_manifest'
|
||||
iv_from_interface = to_lower( zif_abapgit_apack_definitions=>c_apack_interface_cust )
|
||||
iv_to_interface = to_lower( zif_abapgit_apack_definitions=>c_apack_interface_sap )
|
||||
CHANGING
|
||||
ct_source = ct_source ).
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user