Code: Alles auswählen.
DATA: lr_data TYPE REF TO data.
DATA: lr_container TYPE REF TO cl_ishmed_any_container.
FIELD-SYMBOLS <parameter> TYPE any.
CREATE OBJECT lr_container.
GET REFERENCE OF <parameter> INTO lr_data.
lr_container->set_content(
EXPORTING
i_content = lr_data
i_deep_copy = cl_ishmed_any_container=>co_true ).
Code: Alles auswählen.
data: l_type TYPE TABNAME,
l_tdyn type REF TO data. "dynamischer Typ
l_type = I_PARAMETER_STRUCTURE.
FIELD-SYMBOLS: <ls_dyn> TYPE any. "dynamische Struktur
CREATE DATA l_tdyn type (l_type).
ASSIGN l_tdyn->* TO <ls_dyn>. "<ls_occupancy>. "<ls_doc_list>.
l_patnr = <ls_dyn>-patnr.
l_falnr = <ls_dyn>-falnr.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
sapdepp
Code: Alles auswählen.
IF <parameter> IS ASSIGNED.
data:
* l_tabname TYPE TABNAME,
* l_tdyn type REF TO data, "dynamischer Typ
l_comp1 TYPE STRING,
l_comp2 TYPE STRING.
* l_tabname = I_PARAMETER_STRUCTURE.
FIELD-SYMBOLS:
* <ls_tdyn> TYPE any, "dynamische Struktur
<l_patnr> type any,
<l_falnr> TYPE any.
* CREATE DATA l_tdyn type (l_tabname).
* ASSIGN l_tdyn->* TO <ls_tdyn>. "<ls_occupancy>. "<ls_doc_list>.
l_comp1 = `PATNR`.
l_comp2 = `FALNR`.
ASSIGN COMPONENT l_comp1 OF STRUCTURE <parameter> to <l_patnr>. "<ls_tdyn>.
ASSIGN COMPONENT l_comp2 OF STRUCTURE <parameter> to <l_falnr>. "<ls_tdyn>.
ENDIF.
Meine bevorzugte Variante ( aber allgemein und nicht im ISH), da im weiteren Verlauf des Programms besser lesbar, wenn man weiß, dass die Felder definitiv in der Übergabestruktur sind:a-dead-trousers hat geschrieben:Auf alle Fälle deine zweite Variante und Zugriff auf die Felder mittels ASSIGN COMPONENT ... OF STRUCTURE ... TO ...
lg ADT
Code: Alles auswählen.
DATA: BEGIN OF ls_known_data,
patnr type ...,
falnr type ...,
END OF ls_known_data.
....
MOVE-CORRESPONDING <ls_dyn> to ls_known_data.