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.

Alte Syntax read table index

Lesen Zeile einer internen Tabelle

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

READ TABLE itab INDEX lv_index INTO wa.

Lesen Feld einer Zeile einer internen Tabelle

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

Lesen Zeile einer internen Tabelle

Erste Zeile wird gelesen.

Data: ls_sflight type sflight.

ls_sflight = lt_sflight[ 1 ].

oder

Data: lv_index type i.

lv_index = 1.

ls_sflight = lt_sflight[ lv_index ].

Lesen Feld einer Zeile einer internen Tabelle

Data: lv_carrid type sflight-carrd.

lv_carrid = lt_sflight[ 1 ]-carrid.

Ausnahmeklasse CX_SY_ITAB_LINE_NOT_FOUND

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