[ABAP] Zugriff auf interne Tabellen mit Table expressions

* Zeile (Struct) per Index
TRY.
   DATA(wa) = itab[ idx ].
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Zelle per Index
TRY.
   DATA(var) = itab[ 1 ]-colname.
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Suche mit Keys
* Suche mit TE ist Case-Sensitiv
* es wird immer nur die erste gefundene Zeile der Ergebnismenge geliefert

TRY.
   DATA(wa) = itab[ colname = 'abc' ].
   DATA(wa2) = itab[ colname = 'ABC' colname2 = '123' ].
* Zugriff per Secondary Key mit Komponenten
   DATA(wa3) = itab[ KEY sec_key COMPONENTS colname = '123' ].
   ...
   CATCH cx_sy_itab_line_not_found.
   ...
ENDTRY.

* Prüfen, ob Eintrag existiert
IF line_exists( itab[ colname = 'abc' ] ).
  ...
ENDIF.

* Arbeit mit Feldsymbolen um Faktor 2-3 schneller
DATA: itab TYPE ...
FIELD-SYMBOLS: <fs_data> TYPE ...

DO 100000 TIMES.
  ASSIGN itab[ col = sy-index ] TO <fs_data>.
  <ls_data>...
ENDDO.

Weiterführende Infos: Link, Link und Link