Schlüsselbefehl READ TABLE

Aus SAP-Wiki
Zur Navigation springenZur Suche springen

Siehe Der Schlüsselbefehl Read table im neuen ABAP mit Tabellenausdrücken.

Mit dem Schlüsselbefehl "READ TABLE" wird von einer internen Tabelle eine Zeile gelesen.

Syntax

Mit einer Where-Bedingung und Inline-Deklaration.

Gibt es mehrere Tabellenzeilen für die Bedingung, wird die erste Zeile gefundene Zeile in die Zielstruktur geschrieben.

read table lt_itab with key vbeln = '0123456789' into data(ls_itab).

Mit einer Where-Bedingung und DATA-Deklaration.

Data: ls_itab like line of lt_itab.

read table lt_itab index 2 into Data(ls_itab).

Mit einem Index-Zugriff und Inline-Deklaration.

Der Index darf nicht negativ oder gleich 0 sein. Dann gibt es einen Laufzeitfehler. Ist der Index allerdings größer als die Tabellengröße, dann wird lediglich SY-SUBRC auf 4 gesetzt, aber es gibt keinen Laufzeitfehler.

read table lt_itab with key vbeln = '0123456789' into data(ls_itab).

Mit einem Index-Zugriff und DATA-Deklaration.

Data: ls_itab like line of lt_itab.

read table lt_itab index 2 into ls_itab.

SY-SUBRC

  • Wenn ein Satz gefunden wird, wird der SY-SUBRC auf 0 gesetzt, ansonsten auf 4.

SY-TABIX

  • Der Index der gefundenen Tabellenzeile wird in die Systemvariable SY-TABIX geschrieben.

Zusatz: Transporting no fields

  • Ist man beim Lesen einer internen Tabelle nur daran interessiert, ob Ergebnisse gefunden werden oder nicht, dann kann man es sich mit dem Zusatz "transporting no fields" sparen, die Ergebnisse der Leseoperation in eine Zielstruktur zu schreiben.
  • Das bringt zwar wenig Performance, aber man spart sich so die Definition einer Variablen.
  • Wurde die Zeile gefunden, ist SY-SUBRC = 0, ansonsten 4.
read table lt_itab with key vbeln = '0123456789'.