diff --git a/src/zabapgit_object_oo_functions.prog.abap b/src/zabapgit_object_oo_functions.prog.abap index 33acf7c06..102b3dd9d 100644 --- a/src/zabapgit_object_oo_functions.prog.abap +++ b/src/zabapgit_object_oo_functions.prog.abap @@ -461,16 +461,34 @@ CLASS lcl_oo_base IMPLEMENTATION. ENDMETHOD. METHOD deserialize_abap_source_new. - DATA: lo_factory TYPE REF TO object, - lo_source TYPE REF TO object. + DATA: lo_factory TYPE REF TO object, + lo_source TYPE REF TO object, + lo_settings TYPE REF TO object, + lr_settings TYPE REF TO data. + + FIELD-SYMBOLS TYPE any. CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE') RECEIVING result = lo_factory. + "Enable modification mode to avoid exception CX_OO_ACCESS_PERMISSON when + "dealing with objects in foreign namespaces (namespace role = C) + CALL METHOD lo_factory->('CREATE_SETTINGS') + EXPORTING + modification_mode_enabled = abap_true + RECEIVING + result = lo_settings. + + CREATE DATA lr_settings TYPE REF TO ('IF_OO_CLIF_SOURCE_SETTINGS'). + ASSIGN lr_settings->* to . + + ?= lo_settings. + CALL METHOD lo_factory->('CREATE_CLIF_SOURCE') EXPORTING clif_name = is_clskey-clsname + settings = RECEIVING result = lo_source.