From 2ae0e1e4cf58328452d3c54bee1a4b0265f78b1f Mon Sep 17 00:00:00 2001 From: Michael Schneider <53896345+schneider-michael@users.noreply.github.com> Date: Fri, 13 Dec 2019 18:06:54 +0100 Subject: [PATCH] Fix protected redefinitions During creation of classes with redefinitions in the protected section, entries in table SEOREDEF are not updated properly. Reason: The buffer of Class Builder does not recognize the creation of the inheritance in the active version. During the creation of the super class relationship in SEO_INHERITANCE_CREATE_F_DATA only the inactive buffer is updated. The buffer for the active version has still the state that the class has no super class. Therefore, SEOREDEF is filled with an empty super class name. If the buffer is refreshed before the metadata is updated, the super class is read correctly before SEOREDEF entries are created. --- src/objects/zcl_abapgit_oo_class.clas.abap | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/objects/zcl_abapgit_oo_class.clas.abap b/src/objects/zcl_abapgit_oo_class.clas.abap index c3be0ec64..81f724bd0 100644 --- a/src/objects/zcl_abapgit_oo_class.clas.abap +++ b/src/objects/zcl_abapgit_oo_class.clas.abap @@ -258,6 +258,10 @@ CLASS ZCL_ABAPGIT_OO_CLASS IMPLEMENTATION. ls_clskey-clsname = iv_name. TRY. + CALL FUNCTION 'SEO_BUFFER_REFRESH' + EXPORTING + cifkey = ls_clskey + version = seoc_version_active. CREATE OBJECT lo_update TYPE ('CL_OO_CLASS_SECTION_SOURCE') EXPORTING clskey = ls_clskey