Ansicht
Dokumentation

ABAPLOOP_AT_DBTAB - LOOP AT DBTAB

ABAPLOOP_AT_DBTAB - LOOP AT DBTAB

Fill RESBD Structure from EBP Component Structure   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

LOOP AT dbtab

Kurzreferenz



LOOP AT ${ dbtab $| *dbtab $} $[VERSION vers$].
  ...
ENDLOOP.

Zusatz:

... VERSION vers

Wirkung

Die Anweisungen LOOP und ENDLOOP definieren eine in Klassen verbotene Schleife um einen Anweisungsblock. Für dbtab muss der Name einer Datenbanktabelle oder DDIC-Tabellen-View angegeben werden, der mit "T" beginnt und höchstens fünf Zeichen umfasst. Für die Datenbanktabelle bzw. die View dbtab muss mit der Anweisung TABLES ein Tabellenarbeitsbereich oder ein zusätzlicher Tabellenarbeitsbereich deklariert sein. Alle Komponenten des Tabellenarbeitsbereichs, die Primärschlüsselfeldern der Datenbanktabelle bzw. der View dbtab entsprechen, müssen zeichenartig sein.

Die Anweisung LOOP liest in jedem Schleifendurchlauf eine Zeile aus der Datenbanktabelle bzw. der View dbtab und weist deren Inhalt entweder dem Tabellenarbeitsbereich oder bei Angabe von *dbtab dem zusätzlichen Tabellenarbeitsbereich zu. Welche Zeilen ausgelesen werden, wird durch den Inhalt der Komponenten des verwendeten Tabellenarbeitsbereichs, die den Primärschlüsselfeldern der Datenbanktabelle bzw. der View dbtab entsprechen, bestimmt. Vor dem ersten Schleifendurchlauf wird der Inhalt dieser Komponenten linksbündig als Suchschlüssel entnommen und es wird generisch nach passenden Einträgen in der Datenbanktabelle bzw. der View gesucht. Leerzeichen werden dabei im Suchschlüssel so behandelt, als würden sie mit allen Werten übereinstimmen.

Wenn eine Datenbanktabelle bzw. View angegeben ist, die nicht mit "T" beginnt, wird der erste Buchstabe implizit durch "T" ersetzt. Die Schleife wird nicht ausgeführt, wenn die Datenbanktabelle bzw. die View nicht vorhanden ist.

Systemfelder

sy-subrc Bedeutung
12 Die Datenbanktabelle bzw. View wurde nicht gefunden.

Hinweise

  • Diese Form der LOOP-Schleife ist in Klassen verboten. Sie muss durch die SELECT-Anweisung ersetzt werden.

  • Die obsoleten Zugriffsanweisungen unterstützen keine automatische Mandantenbehandlung. Die Mandantenkennung einer Datenbanktabelle muss explizit angegeben werden. Dabei ist zu beachten, dass in Anwendungsprogrammen nur mit den Daten des aktuellen Mandanten gearbeitet werden soll. In Systemen mit Multitenancy wird dies von der ABAP-Laufzeitumgebung überprüft.


Zusatz

... VERSION vers

Wirkung

Wenn der Zusatz VERSION angegeben ist, wird nicht die Datenbanktabelle dbtab bzw. View ausgelesen, sondern die Tabelle bzw. View, deren Name sich aus "T" und dem Inhalt von vers zusammensetzt. Für vers muss ein maximal vierstelliges Datenobjekt vom Typ c angegeben werden. Die Zeileninhalte werden weiterhin dem Tabellenarbeitsbereich dbtab bzw. *dbtab zugewiesen, wobei auf dessen Typ gecastet wird. Wenn der Tabellenarbeitsbereich zu kurz ist, kommt es zu einem Laufzeitfehler.

Beispiel

Sequenzielles Auslesen von Zeilen aus der Datenbanktabelle T100.

TABLES t100.

t100 = space.
t100-sprsl = 'E'.
t100-arbgb = 'BC'.
t100-msgnr = '1'.

LOOP AT t100.
  ...
ENDLOOP.

Die stattdessen zu verwendende -Syntax lautet:






PERFORM Short Reference   Vendor Master (General Section)  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 5202 Date: 20240420 Time: 140845     sap01-206 ( 82 ms )