* Typ für Eingabedaten (Key)
TYPES: BEGIN OF ty_in,
key1 TYPE string,
key2 TYPE string,
END OF ty_in.
* Typ für Ausgabedaten (Value)
TYPES: BEGIN OF ty_out,
vorname TYPE string,
nachname TYPE string,
END OF ty_out.
* Zusammengesetzte Tabellenzeile (tiefe Struktur) für Key-Value-Paare
TYPES: BEGIN OF ty_s_line,
in TYPE ty_in,
out TYPE ty_out,
END OF ty_s_line.
* Tabellentyp für Speicherung von Key-Value-Paaren
TYPES: ty_it_data TYPE HASHED TABLE OF ty_s_line WITH UNIQUE KEY in-key1 in-key2.
* Testdaten
DATA(it_data) = VALUE ty_it_data( ( in-key1 = 'A1' in-key2 = 'A2' out-vorname = 'Hans' out-nachname = 'Müller' )
( in-key1 = 'B1' in-key2 = 'B2' out-vorname = 'Ida' out-nachname = 'Schulze' )
( in-key1 = 'C1' in-key2 = 'C2' out-vorname = 'Heinz' out-nachname = 'Lehmann' )
( in-key1 = 'D1' in-key2 = 'D2' out-vorname = 'Marianne' out-nachname = 'Meier' )
).
* Struktur mit Suchkriterium
DATA(lv_in) = VALUE ty_in( key1 = 'A1' key2 = 'A2' ).
* Rückgabestruktur
DATA(lv_out) = VALUE ty_out( ).
* Übergabe der Struktur mit den Key-Werten
IF line_exists( it_data[ in = lv_in ] ).
* wenn Key gefunden, dann Rückgabestruktur übergeben
lv_out = it_data[ in = lv_in ]-out.
* Datenausgabe
cl_demo_output=>display( lv_out ).
ELSE.
WRITE: / 'Nichts gefunden.'.
ENDIF.