Der Schlüsselbefehl Read table im neuen ABAP

Aus SAP-Wiki
Wechseln zu:Navigation, Suche

Ab der ABAP-Version 7.40 gibt es auch interessante Alternativen zu "Read table" indem in eckigen Klammern "[[ <tabellenzeile> ]]" die Tabellenzeile angesprochen wird.

Es kann eine Zeile oder auch genau ein Feld einer Zeile gelesen werden.

Lesen einer Tabellenzeile

Alte Syntax mit "Read table index"

Um eine interne Tabelle zu lesen, wird klassisch der Schlüsselbefehl "Read table index .." genutzt.

READ TABLE itab INDEX lv_index INTO wa.

Um dann ein Feld einer anzusprechen: Die Zeile der Tabelle wird gelesen und dann aus der Struktur das Feld angesprochen und der Zielvariablen zugewiesen.

READ TABLE itab INDEX lv_index INTO wa.

lv_feld = wa-feld.

Neue Syntax mit "itab[ index ]"

Erste Zeile wird gelesen mit "[ index ]". Zwischen dem eckigen Klammern und dem Zeilenindex steht jeweils ein Leerzeichen.

Data: ls_sflight type sflight.

ls_sflight = lt_sflight[ 1 ].

Man kann auch gleich ein Feld der Struktur zuweisen, was sehr elegant ist

Data: lv_carrid type sflight-carrd.

lv_carrid = lt_sflight[ 1 ]-carrid.

Wenn die Zeile nicht gefunden wird, wird die Exception CX_SY_ITAB_LINE_NOT_FOUND ausgelöst.

Folglich wird auch kein SY-SUBRC gesetzt. Entweder es wird eine Zeile gefunden (SY-SUBRC bleibt bei 0) oder es wird die Exception CX_SY_ITAB_LINE_NOT_FOUND ausgelöst.

Web-Links