mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
CLAS: fix where-used in deserialization #1179
This commit is contained in:
parent
c058a06355
commit
cec950e7ca
|
@ -1,6 +1,4 @@
|
||||||
CLASS zcl_abapgit_objects_activation DEFINITION
|
CLASS zcl_abapgit_objects_activation DEFINITION PUBLIC CREATE PUBLIC.
|
||||||
PUBLIC
|
|
||||||
CREATE PUBLIC .
|
|
||||||
|
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS add
|
CLASS-METHODS add
|
||||||
|
@ -20,30 +18,38 @@ CLASS zcl_abapgit_objects_activation DEFINITION
|
||||||
CLASS-METHODS clear.
|
CLASS-METHODS clear.
|
||||||
|
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
|
CLASS-DATA:
|
||||||
|
gt_classes TYPE STANDARD TABLE OF seoclsname WITH DEFAULT KEY,
|
||||||
|
gt_objects TYPE TABLE OF dwinactiv.
|
||||||
|
|
||||||
|
CLASS-METHODS update_where_used .
|
||||||
CLASS-METHODS fix_class_methods
|
CLASS-METHODS fix_class_methods
|
||||||
IMPORTING iv_obj_name TYPE trobj_name
|
IMPORTING
|
||||||
CHANGING ct_objects TYPE dwinactiv_tab.
|
!iv_obj_name TYPE trobj_name
|
||||||
|
CHANGING
|
||||||
|
!ct_objects TYPE dwinactiv_tab .
|
||||||
CLASS-METHODS use_new_activation_logic
|
CLASS-METHODS use_new_activation_logic
|
||||||
RETURNING VALUE(rv_use_new_activation_logic) TYPE abap_bool.
|
RETURNING
|
||||||
|
VALUE(rv_use_new_activation_logic) TYPE abap_bool .
|
||||||
CLASS-METHODS activate_new
|
CLASS-METHODS activate_new
|
||||||
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
IMPORTING
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS activate_old
|
CLASS-METHODS activate_old
|
||||||
IMPORTING iv_ddic TYPE abap_bool DEFAULT abap_false
|
IMPORTING
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_ddic TYPE abap_bool DEFAULT abap_false
|
||||||
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS activate_ddic
|
CLASS-METHODS activate_ddic
|
||||||
RAISING zcx_abapgit_exception.
|
RAISING
|
||||||
|
zcx_abapgit_exception .
|
||||||
CLASS-METHODS show_activation_errors
|
CLASS-METHODS show_activation_errors
|
||||||
IMPORTING iv_logname TYPE ddmass-logname
|
IMPORTING
|
||||||
RAISING zcx_abapgit_exception.
|
!iv_logname TYPE ddmass-logname
|
||||||
|
RAISING
|
||||||
CLASS-DATA: gt_objects TYPE TABLE OF dwinactiv.
|
zcx_abapgit_exception .
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -54,15 +60,13 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
METHOD activate.
|
METHOD activate.
|
||||||
|
|
||||||
IF use_new_activation_logic( ) = abap_true.
|
IF use_new_activation_logic( ) = abap_true.
|
||||||
|
|
||||||
activate_new( iv_ddic ).
|
activate_new( iv_ddic ).
|
||||||
|
|
||||||
ELSE.
|
ELSE.
|
||||||
|
|
||||||
activate_old( iv_ddic ).
|
activate_old( iv_ddic ).
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
update_where_used( ).
|
||||||
|
|
||||||
ENDMETHOD. "activate
|
ENDMETHOD. "activate
|
||||||
|
|
||||||
|
|
||||||
|
@ -197,7 +201,9 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
lv_obj_name = iv_name.
|
lv_obj_name = iv_name.
|
||||||
|
|
||||||
CASE iv_type.
|
CASE iv_type.
|
||||||
WHEN 'CLAS' OR 'WDYN'.
|
WHEN 'CLAS'.
|
||||||
|
APPEND iv_name TO gt_classes.
|
||||||
|
WHEN 'WDYN'.
|
||||||
* todo, move this to the object type include instead
|
* todo, move this to the object type include instead
|
||||||
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
CALL FUNCTION 'RS_INACTIVE_OBJECTS_IN_OBJECT'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
|
@ -212,10 +218,10 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
zcx_abapgit_exception=>raise( 'Error from RS_INACTIVE_OBJECTS_IN_OBJECT' ).
|
zcx_abapgit_exception=>raise( 'Error from RS_INACTIVE_OBJECTS_IN_OBJECT' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
IF iv_type = 'CLAS'.
|
* IF iv_type = 'CLAS'.
|
||||||
fix_class_methods( EXPORTING iv_obj_name = lv_obj_name
|
* fix_class_methods( EXPORTING iv_obj_name = lv_obj_name
|
||||||
CHANGING ct_objects = lt_objects ).
|
* CHANGING ct_objects = lt_objects ).
|
||||||
ENDIF.
|
* ENDIF.
|
||||||
|
|
||||||
LOOP AT lt_objects ASSIGNING <ls_object>.
|
LOOP AT lt_objects ASSIGNING <ls_object>.
|
||||||
<ls_object>-delet_flag = iv_delete.
|
<ls_object>-delet_flag = iv_delete.
|
||||||
|
@ -240,6 +246,7 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD clear.
|
METHOD clear.
|
||||||
CLEAR gt_objects.
|
CLEAR gt_objects.
|
||||||
|
CLEAR gt_classes.
|
||||||
ENDMETHOD. "clear
|
ENDMETHOD. "clear
|
||||||
|
|
||||||
|
|
||||||
|
@ -250,6 +257,8 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
* eg. ZCL_CLAS_TESTTESTTESTTESTTESTT
|
* eg. ZCL_CLAS_TESTTESTTESTTESTTESTT
|
||||||
* this will not be true, so find all the method includes instead
|
* this will not be true, so find all the method includes instead
|
||||||
|
|
||||||
|
* TODO, this class is obsolete with new CLAS deserialization logic
|
||||||
|
|
||||||
DATA: lt_methods TYPE seop_methods_w_include,
|
DATA: lt_methods TYPE seop_methods_w_include,
|
||||||
lv_class TYPE seoclsname.
|
lv_class TYPE seoclsname.
|
||||||
|
|
||||||
|
@ -316,6 +325,27 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD update_where_used.
|
||||||
|
|
||||||
|
DATA: lv_class LIKE LINE OF gt_classes,
|
||||||
|
lo_cross TYPE REF TO cl_wb_crossreference,
|
||||||
|
lv_include TYPE programm.
|
||||||
|
|
||||||
|
|
||||||
|
LOOP AT gt_classes INTO lv_class.
|
||||||
|
lv_include = cl_oo_classname_service=>get_classpool_name( lv_class ).
|
||||||
|
|
||||||
|
CREATE OBJECT lo_cross
|
||||||
|
EXPORTING
|
||||||
|
p_name = lv_include
|
||||||
|
p_include = lv_include.
|
||||||
|
|
||||||
|
lo_cross->index_actualize( ).
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD use_new_activation_logic.
|
METHOD use_new_activation_logic.
|
||||||
|
|
||||||
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_true.
|
IF zcl_abapgit_persist_settings=>get_instance( )->read( )->get_experimental_features( ) = abap_true.
|
||||||
|
|
|
@ -356,6 +356,11 @@ CLASS lcl_oo_class_new IMPLEMENTATION.
|
||||||
it_source = it_source
|
it_source = it_source
|
||||||
it_methods = lt_methods ).
|
it_methods = lt_methods ).
|
||||||
|
|
||||||
|
* TODO, perhaps move this call to somewhere else, to be done while cleaning up the CLAS deserialization
|
||||||
|
zcl_abapgit_objects_activation=>add(
|
||||||
|
iv_type = 'CLAS'
|
||||||
|
iv_name = is_key-clsname ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD update_full_class_include.
|
METHOD update_full_class_include.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user