ABAPLOOP_AT_DBTAB - LOOP AT DBTAB
Fill RESBD Structure from EBP Component Structure ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
LOOP AT dbtab
Obsolete Syntax
LOOP AT { dbtab | *dbtab } [VERSION vers].
...
ENDLOOP.
Zusatz:
Wirkung
Die Anweisungen LOOP und ENDLOOP definieren eine in Klassen verbotene Schleife um einenAnweisungsblock. Für dbtab muss der Name einer Datenbanktabelle angegeben werden, dermit "T" beginnt und höchstens fünf Zeichen umfasst. Für die Datenbanktabelle dbtab muss mit der Anweisung TABLES einTabellenarbeitsbereich oder einzusätzlicher Tabellenarbeitsbereich deklariert sein.
Die Anweisung LOOP liest in jedem Schleifendurchlauf eine Zeile aus der Datenbanktabelle dbtabund weist deren Inhalt entweder dem Tabellenarbeitsbereich oder bei Angabe von *dbtab dem zusätzlichenTabellenarbeitsbereich zu. Welche Zeilen ausgelesen werden, wird durch den Inhalt der Komponenten des verwendeten Tabellenarbeitsbereichs, die denPrimärschlüsselfeldernder Datenbanktabelle dbtab entsprechen, bestimmt. Vor dem ersten Schleifendurchlauf wird derInhalt dieser Komponenten linksbündig als Suchschlüssel entnommen und es wird generischnach passenden Einträgen in der Datenbanktabelle gesucht. Leerzeichen werden dabei im Suchschlüssel so behandelt, als würden sie mit allen Werten übereinstimmen.
Wenn eine Datenbanktabelle angegeben ist, die nicht mit "T" beginnt, wird der erste Buchstabe implizit durch "T" ersetzt. Die Schleife wird nicht ausgeführt, wenn die Datenbanktabelle nicht vorhanden ist.
Systemfelder
| sy-subrc | Bedeutung |
| 12 | Die Datenbanktabelle wurde nicht gefunden. |
Hinweise
- In Unicode-Programmenmüssen alle Komponenten des Tabellenarbeitsbereichs, die Primärschlüsselfeldern der Datenbanktabelle dbtab entsprechen, zeichenartig sein.
- Diese Form der LOOP-Schleife ist in Klassen verboten. Sie muss durch die SELECT-Anweisung ersetzt werden.
- Die obsoleten Zugriffsanweisungen unterstützen keine automatischeMandantenbehandlung. DieMandantenkennungeiner Datenbanktabelle muss explizit angegeben werden. Dabei ist zu beachten, dass in Anwendungsprogrammen nur mit den Daten des aktuellen Mandanten gearbeitet werden soll. In Systemen mitMultitenancy wird dies von der ABAP-Laufzeitumgebung überprüft.
Zusatz
... VERSION vers
Wirkung
Wenn der Zusatz VERSION angegeben ist, wird nicht die Datenbanktabelle dbtab ausgelesen,sondern die Tabelle, deren Name sich aus "T" und dem Inhalt von vers zusammensetzt. Fürvers muss ein maximal vierstelliges Datenobjekt vom Typ c angegeben werden. Die Zeileninhaltewerden 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 Open-SQL-Syntax lautet:
DATA wa TYPE t100.
SELECT *
FROM t100
INTO wa
WHERE sprsl = 'E' AND
arbgb = 'BC' AND
msgnr LIKE '1%'.
...
ENDSELECT.
Vendor Master (General Section) SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 5664 Date: 20120526 Time: 214439 triton ( 291 ms )






