SAP NetWeaver AS ABAP Release 750, ©Copyright 2016 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation →
ABAP - Referenz →
Deklarationen →
Inline-Deklarationen →
DATA - Inline-Deklaration
Syntax
... DATA(var) ...
Wirkung
Ein Deklarationsausdruck mit dem Deklarationsoperator DATA deklariert eine
Variable var, die an der aktuellen
Schreibposition als
Operand verwendet wird. Die deklarierte Variable ist ab DATA(var) statisch im Programm sichtbar und im aktuellen
Kontext gültig. Die
Deklaration erfolgt beim Kompilieren des Programms und unabhängig davon, ob die Anweisung tatsächlich ausgeführt wird.
Der Deklarationsoperator DATA kann an jeder dafür vorgesehenen
Deklarationsposition aufgeführt werden. Der Datentyp der Variablen wird durch den
Operandentyp bestimmt. Dieser muss statisch vollständig ableitbar sein.
Eine inline deklarierte Variable var darf nicht an einer Leseposition der gleichen Anweisung verwendet werden.
Programmierrichtlinie
Inline-Deklarationen nur lokal verwenden.
Hinweise
- Eine erlaubte Anweisung mit einer Inline-Deklaration einer Variablen kann in der Regel als Kurzform für eine direkt vorangestellte Deklarationsanweisung gesehen werden:
-
DATA var TYPE ...
... var ...
-
Abweichungen von der Regel ergeben sich nur, wenn in der gleichen Anweisung ein gleichnamiges Datenobjekt
eines globaleren Kontexts verwendet wird. Dieses ist in der Anweisung noch gültig und wird erst hinter der Anweisung verdeckt.
- Eine Inline-Deklaration öffnet genau wie die Anweisung DATA keinen
lokalen Kontext für den aktuellen Anweisungsblock. Eine Inline-Deklaration für eine Variable
kann nur ein einziges Mal innerhalb eines Kontexts vorgenommen werden und die Variable darf dort noch nicht mit DATA deklariert worden sein.
- Eine Inline-Deklaration kann nie auf der rechten Seite einer Zuweisung oder innerhalb eines Ausdrucks vorkommen.
- In die statische Ableitung des Operandentyps können die Operandenposition und auch die Typen
anderer Operanden eingehen. Wenn der Typ eines anderen Operanden statisch nicht festgestellt werden kann, beispielsweise weil er als generisch typisiertes Feldsymbol angegeben ist, wird entweder ein geeigneter
Standardtyp verwendet oder es ist keine Inline-Deklaration möglich.
- Wenn der Operandentyp durch Bezug auf einen Datentyp des ABAP Dictionary definiert ist, wird dieser
mit seinen semantischen Eigenschaften wie Feldhilfe, Eingabehilfe oder Konvertierungsroutinen übernommen.
- Wenn an einer Deklarationsposition mehrere
gleichberechtigte Operandentypen möglich sind, wird in der Regel der Datentyp verwendet, dessen bevorzugte Verwendung empfohlen ist.
Beispiel
Inline-Deklaration einer internen Tabelle als Zielfeld einer Zuweisung und Inline-Deklaration eines passenden Arbeitsbereichs in einer LOOP-Schleife.
TYPES t_itab TYPE TABLE OF i
WITH NON-UNIQUE KEY table_line.
DATA(itab) = VALUE t_itab( ( 1 ) ( 2 ) ( 3 ) ).
LOOP AT itab INTO DATA(wa).
...
ENDLOOP.