mirror of
https://github.com/abapGit/abapGit.git
synced 2025-05-01 12:20:51 +08:00
Merge pull request #969 from thomas-erdoesi/issue_968
Fix for issue #968: No support for objects in 'foreign' namespaces
This commit is contained in:
commit
4a0f6d54be
|
@ -462,15 +462,33 @@ CLASS lcl_oo_base IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD deserialize_abap_source_new.
|
METHOD deserialize_abap_source_new.
|
||||||
DATA: lo_factory TYPE REF TO object,
|
DATA: lo_factory TYPE REF TO object,
|
||||||
lo_source TYPE REF TO object.
|
lo_source TYPE REF TO object,
|
||||||
|
lo_settings TYPE REF TO object,
|
||||||
|
lr_settings TYPE REF TO data.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS <lo_settings> TYPE any.
|
||||||
|
|
||||||
CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE')
|
CALL METHOD ('CL_OO_FACTORY')=>('CREATE_INSTANCE')
|
||||||
RECEIVING
|
RECEIVING
|
||||||
result = lo_factory.
|
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>.
|
||||||
|
|
||||||
|
<lo_settings> ?= lo_settings.
|
||||||
|
|
||||||
CALL METHOD lo_factory->('CREATE_CLIF_SOURCE')
|
CALL METHOD lo_factory->('CREATE_CLIF_SOURCE')
|
||||||
EXPORTING
|
EXPORTING
|
||||||
clif_name = is_clskey-clsname
|
clif_name = is_clskey-clsname
|
||||||
|
settings = <lo_settings>
|
||||||
RECEIVING
|
RECEIVING
|
||||||
result = lo_source.
|
result = lo_source.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user