Ansicht
Dokumentation
ABAPLOOP_AT_DBTAB - LOOP AT DBTAB
Fill RESBD Structure from EBP Component Structure CPI1466 during BackupDiese Dokumentation steht unter dem Copyright der SAP AG.
LOOP AT dbtab
LOOP AT ${ dbtab $| *dbtab $} $[VERSION vers$].
...
ENDLOOP.
Zusatz:
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 )