mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Fix DDIC activation issues (#4111)
* Fix DDIC activation issues - Avoid double activation of DDIC objects in case of "LATE" processing - Derive DDIC id for XINX and MCID (same as for INDX) Closes #4103 * Lint Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
parent
29aea372a5
commit
f6cd2e12bd
|
@ -52,11 +52,16 @@ CLASS zcl_abapgit_objects_activation DEFINITION
|
||||||
!iv_logname TYPE ddmass-logname
|
!iv_logname TYPE ddmass-logname
|
||||||
RAISING
|
RAISING
|
||||||
zcx_abapgit_exception .
|
zcx_abapgit_exception .
|
||||||
|
CLASS-METHODS is_ddic_type
|
||||||
|
IMPORTING
|
||||||
|
!iv_obj_type TYPE trobjtype
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_result) TYPE abap_bool .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
CLASS zcl_abapgit_objects_activation IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD activate.
|
METHOD activate.
|
||||||
|
@ -85,10 +90,14 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
LOOP AT gt_objects ASSIGNING <ls_object>.
|
LOOP AT gt_objects ASSIGNING <ls_object>.
|
||||||
|
" Filter types supported by mass activation
|
||||||
|
IF is_ddic_type( <ls_object>-object ) = abap_false.
|
||||||
|
CONTINUE.
|
||||||
|
ENDIF.
|
||||||
ls_gentab-tabix = sy-tabix.
|
ls_gentab-tabix = sy-tabix.
|
||||||
ls_gentab-type = <ls_object>-object.
|
ls_gentab-type = <ls_object>-object.
|
||||||
ls_gentab-name = <ls_object>-obj_name.
|
ls_gentab-name = <ls_object>-obj_name.
|
||||||
IF ls_gentab-type = 'INDX'.
|
IF ls_gentab-type = 'INDX' OR ls_gentab-type = 'XINX' OR ls_gentab-type = 'MCID'.
|
||||||
CALL FUNCTION 'DD_E071_TO_DD'
|
CALL FUNCTION 'DD_E071_TO_DD'
|
||||||
EXPORTING
|
EXPORTING
|
||||||
object = <ls_object>-object
|
object = <ls_object>-object
|
||||||
|
@ -136,6 +145,12 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
show_activation_errors( lv_logname ).
|
show_activation_errors( lv_logname ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
" Remove objects from activation queue to avoid double activation in activate_old
|
||||||
|
LOOP AT lt_gentab INTO ls_gentab.
|
||||||
|
DELETE gt_objects WHERE object = ls_gentab-type AND obj_name = ls_gentab-name.
|
||||||
|
ENDLOOP.
|
||||||
|
DELETE gt_objects WHERE object = 'INDX' OR object = 'XINX' OR object = 'MCID'.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -259,6 +274,36 @@ CLASS ZCL_ABAPGIT_OBJECTS_ACTIVATION IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD is_ddic_type.
|
||||||
|
|
||||||
|
" Determine if object can be handled by mass activation (see RADMASUTC form ma_tab_check)
|
||||||
|
|
||||||
|
CONSTANTS:
|
||||||
|
lc_domain TYPE c LENGTH 9 VALUE 'DOMA DOMD',
|
||||||
|
lc_types TYPE c LENGTH 50 VALUE 'DTEL DTED TABL TABD SQLT SQLD TTYP TTYD VIEW VIED',
|
||||||
|
lc_technset TYPE c LENGTH 24 VALUE 'TABT VIET SQTT INDX XINX',
|
||||||
|
lc_f4_objects TYPE c LENGTH 35 VALUE 'SHLP SHLD MCOB MCOD MACO MACD MCID',
|
||||||
|
lc_enqueue TYPE c LENGTH 9 VALUE 'ENQU ENQD',
|
||||||
|
lc_sqsc TYPE c LENGTH 4 VALUE 'SQSC',
|
||||||
|
lc_stob TYPE c LENGTH 4 VALUE 'STOB',
|
||||||
|
lc_ntab TYPE c LENGTH 14 VALUE 'NTTT NTTB NTDT',
|
||||||
|
lc_ddls TYPE c LENGTH 4 VALUE 'DDLS',
|
||||||
|
lc_switches TYPE c LENGTH 24 VALUE 'SF01 SF02 SFSW SFBS SFBF',
|
||||||
|
lc_enhd TYPE c LENGTH 4 VALUE 'ENHD'.
|
||||||
|
|
||||||
|
rv_result = abap_true.
|
||||||
|
IF lc_domain NS iv_obj_type AND lc_types NS iv_obj_type AND
|
||||||
|
lc_technset NS iv_obj_type AND lc_f4_objects NS iv_obj_type AND
|
||||||
|
lc_enqueue NS iv_obj_type AND lc_sqsc NS iv_obj_type AND
|
||||||
|
lc_stob NS iv_obj_type AND lc_ntab NS iv_obj_type AND
|
||||||
|
lc_ddls NS iv_obj_type AND
|
||||||
|
lc_switches NS iv_obj_type AND iv_obj_type <> lc_enhd.
|
||||||
|
rv_result = abap_false.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD show_activation_errors.
|
METHOD show_activation_errors.
|
||||||
|
|
||||||
DATA: lt_lines TYPE STANDARD TABLE OF trlog,
|
DATA: lt_lines TYPE STANDARD TABLE OF trlog,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user