Moin,
das RTTI-Gedönse werde ich nie wirklich verstehen....
Gegeben sei eine Methode. Dieser Methode soll IRGENDWAS übergeben werden (kann man eingrenzen auf eine interne Tabelle ODER eine flache Struktur).
Die Methode muss nun feststellen, welchen DDIC-Typ die Struktur hat bzw. welchen DDIC-Typ die Tabellenzeilen (sofern es eine Tabelle ist).
Beispiel:
Code: Alles auswählen.
data:
struc type sflight,
table type standard table of slight,
tabletype type flighttab. "Tabellentyp zu sflight
zcl_myclass=>identify_object( struc ).
zcl_myclass=>identify_object( table ).
zcl_myclass=>identify_object( tabletype ).
Wichtig ist hierbei: Es soll nur einen Importparameter geben und der Anwender soll sich nicht darum kümmern, welchen Typ der Parameter hat, alle drei Möglichkeiten sollen anstandslos funktionieren, wie sie oben geschrieben stehen. Die Methode soll lediglich anhand dessen, was da kommt, eine Fallunterscheidung machen der Art:
Code: Alles auswählen.
case .....
when 'SFLIGHT'.
"....
when irgendeine_tabelle_basierend_auf_sflight. "egal auf welche der beiden Arten deklariert wurde
"....
when 'SCARR'.
"....
when others.
endcase.
Irgendwie bastele ich in der Methode gerade mit dem RTTI-Krams rum und komme auf keinen grünen Zweig. Beispiel: Ich baue mir eine Methode, die per cl_abap_typedescr=>describe_by_data den Typ feststellt. Geht mit Importparameter struc gut, bei table schon nicht mehr (weil dann nicht mehr "SFLIGHT" als Zeilentyp erkennbar ist).
Hüüüüülfe!