From 5e53bb96267433203d4c528b1381727b5b07fb98 Mon Sep 17 00:00:00 2001 From: sandraros <34005250+sandraros@users.noreply.github.com> Date: Sun, 27 Feb 2022 17:23:13 +0100 Subject: [PATCH] Fix DDIC errors related to ref to class/interface (#5369) --- src/objects/zcl_abapgit_object_dtel.clas.abap | 1 - src/objects/zcl_abapgit_object_tabl.clas.abap | 2 +- src/objects/zcl_abapgit_object_ttyp.clas.abap | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/objects/zcl_abapgit_object_dtel.clas.abap b/src/objects/zcl_abapgit_object_dtel.clas.abap index caee2f382..cb31aad80 100644 --- a/src/objects/zcl_abapgit_object_dtel.clas.abap +++ b/src/objects/zcl_abapgit_object_dtel.clas.abap @@ -200,7 +200,6 @@ CLASS zcl_abapgit_object_dtel IMPLEMENTATION. " DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND is_ref_to_class_or_interface( ls_dd04v ) = abap_true. - ls_dd04v-domname = 'OBJECT'. ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND is_ref_to_class_or_interface( ls_dd04v ) = abap_false. RETURN. " already active diff --git a/src/objects/zcl_abapgit_object_tabl.clas.abap b/src/objects/zcl_abapgit_object_tabl.clas.abap index bd2b76b29..56dd0824e 100644 --- a/src/objects/zcl_abapgit_object_tabl.clas.abap +++ b/src/objects/zcl_abapgit_object_tabl.clas.abap @@ -750,7 +750,7 @@ CLASS zcl_abapgit_object_tabl IMPLEMENTATION. ENDIF. " DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency - LOOP AT lt_dd03p ASSIGNING WHERE datatype = 'REF'. + LOOP AT lt_dd03p ASSIGNING WHERE comptype = 'R' AND ( reftype = 'C' OR reftype = 'I' ). IF iv_step = zif_abapgit_object=>gc_step_id-ddic. -rollname = 'OBJECT'. ELSE. diff --git a/src/objects/zcl_abapgit_object_ttyp.clas.abap b/src/objects/zcl_abapgit_object_ttyp.clas.abap index 9f43a0819..60748b35c 100644 --- a/src/objects/zcl_abapgit_object_ttyp.clas.abap +++ b/src/objects/zcl_abapgit_object_ttyp.clas.abap @@ -48,9 +48,9 @@ CLASS zcl_abapgit_object_ttyp IMPLEMENTATION. CHANGING cg_data = ls_dd40v ). " DDIC Step: Replace REF TO class/interface with generic reference to avoid cyclic dependency - IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND ls_dd40v-datatype = 'REF'. + IF iv_step = zif_abapgit_object=>gc_step_id-ddic AND ls_dd40v-rowkind = 'R'. ls_dd40v-rowtype = 'OBJECT'. - ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND ls_dd40v-datatype <> 'REF'. + ELSEIF iv_step = zif_abapgit_object=>gc_step_id-late AND ls_dd40v-rowkind <> 'R'. RETURN. " already active ENDIF.