# ABAP Inline-Deklaration Quelle: https://erlebe-software.de/abap-und-co/abap-inline-deklaration/ Stand: 2026-07-28 Bei der Inline-Deklaration handelt es sich um eine alternative Möglichkeit, um Variablen in ABAP zu deklarieren. Diese ermöglicht es an der aktuellen Schreibposition Variablen zu deklarieren, wodurch nicht mehr alle Variablen zu Beginn des Codes deklariert werden müssen. ## Das Wichtigste im Überblick - **Inline-Deklaration ist eine alternative Variablendeklaration direkt am Verwendungsort (DATA(var)), verfügbar ab ABAP 7.40.** - **Sie funktioniert dort gut, wo der Datentyp eindeutig ist; vorherige Nutzung führt zu Syntaxfehlern.** - **Typische Einsatzfelder sind Zuweisungen, SELECT INTO TABLE @DATA(...), LOOP INTO DATA(...) und Field-Symbol-Zuweisungen.** - **Vorteile sind schlankerer Code und weniger Typisierungsaufwand; Nachteile sind weniger Überblick und teils unklare Datentypen.** ## Datendeklaration Vor der Einführung von [ABAP](https://erlebe-software.de/knowhow/abap/) 7.40 mussten Nutzer **jede** **verwendete** **Variable** zu Beginn des Codes vollständig mit dem Datentyp deklarieren. Ab der Version 7.40 können Variablen [an verschiedenen Schreibpositionen](https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abendeclaration_positions.htm) im Code deklariert werden. Die Syntax für die Inline-Deklaration sieht folgendermaßen aus: > ... DATA(var) ... Sie können die Inline-Deklaration an **jeder Position** verwenden, an der Sie den Typ **eindeutig** feststellen können. Zum Beispiel bei einer **einfachen Zuweisung** oder bei **Zielfeldern** **verschiedener Anweisungen**. Die Variable ist **ab dieser Position** gültig und kann im Programm verwendet werden. Eine Verwendung vor dieser Position führt zu einem **Syntax-Fehler**. ## Vorteile der Inline-Deklaration Generell hat die Methode die folgenden Vorteile: - Der Programm-Code wird **schlanker** und **lesbarer**. - Die Inline-Deklaration markiert die Stelle, an der die Variable das erste Mal auftaucht und ermöglicht es, mit der Vorwärtsnavigation **zu dieser Stelle zu springen**. - Es ist **keine** explizite Typisierung notwendig. Der Typ der Variable wird bei einer Zuweisung von dem Operanden übernommen. - Es können **Field-Symbols** mit der Inline-Deklaration zugewiesen werden. - Bei einer **Loop-Anweisung** oder einem **Select-Statement** passt sich die Struktur bzw. Tabelle automatisch an. ## Nachteile der Inline-Deklaration Neben diesen Vorteilen ergeben sich jedoch auch einige Nachteile: - Der **Überblick über alle vorhandenen Variablen** geht verloren, weil die Variablen an der Schreibposition deklariert werden und nicht einheitlich zu Beginn des Codes. - Der Datentyp einer Variablen ist **nicht** **direkt erkennbar**. - Sie können die Inline-Deklaration **nicht** bei Aufrufen von **Funktionsbausteinen** oder **Form-Routinen** verwenden. ## Anwendungsbeispiele ### Zuweisung > DATA(lv_text) = 'Lorem ipsum'. > DATA(lv_result) = lv_zahl1 + lv_zahl2. ### Select into table Bei einem Select-Statement passt sich die Variable **automatisch** den ausgewählten Spalten der Tabelle an. Der Vorteil dabei ist, dass Sie bestimmte Spalten auswählen oder eigene Spalten hinzufügen können, **ohne** dass Sie einen neuen Datentyp für die Variable definieren müssen. > SELECT carrid, connid, depptime, arrtime > FROM spfli > WHERE carrid = 'LH' > INTO TABLE @DATA(lt_spfli). ### Loop into Die Loop-Schleife durchläuft eine Tabelle und schreibt den **aktuellen Datensatz** in eine Struktur. Mit der Inline-Deklaration passt sich der Datentyp der Struktur **automatisch** der Tabelle an. > LOOP AT lt_spfli INTO DATA(ls_wa). > ... > ENDLOOP. ### Field-Symbols Ein Field-Symbol können Sie mit der folgenden Syntax **deklarieren**: > ... FIELD-SYMBOLS() ... Die Inline-Deklaration bietet auch hier den Vorteil, dass Sie auf die explizite Typisierung **verzichten** können. Field-Symbols sind besonders bei dem Durchlaufen einer Loop-Schleife zu empfehlen. Dadurch können die Nutzer nicht nur den Datensatz auslesen, sondern auch Werte ändern. > ASSIGN lv_text TO FIELD-SYMBOL(). > LOOP AT lt_spfli ASSIGNING FIELD-SYMBOL(). > ... > ENDLOOP. ### Methoden Bei einem Methodenaufruf können Sie die Inline-Deklaration für die **Aktualparameter** einsetzen. Der Nachteil dabei ist, dass der Datentyp nicht mehr **innerhalb des Programms** zu erkennen ist. Aus diesem Grund empfehle ich den Datentyp in einem **Kommentar** hinzuzufügen, sodass der Code einfach zu lesen bleibt. Andere Formen der Modularisierung, wie **Funktionsbausteine** und **Form-Routinen**, werden nicht unterstützt. > CALL METHOD cl_klasse=>methode > EXPORTING > iv_import = lv_text > IMPORTING > ev_export = DATA(lv_return). ## Fazit: Inline-Deklaration Mit Hilfe der Inline-Deklaration können Sie den Programm-Code verkürzen und die Lesbarkeit erhöhen. Entwickler können auf die Typisierung von Variablen **verzichten**. Dadurch ersparen sie sich das **Anlegen von speziellen Datentypen** für beispielsweise Tabellen, die sie mit einem **Select-Statement** befüllen können. Außerdem können Anwender bei dem Durchlaufen einer Tabelle mit einer **Loop-Schleife** die Struktur **direkt am Verwendungsort** deklarieren. Das macht den Code **leichter lesbar**. Allgemein ist zu beachten, dass die Inline-Deklaration die bisherige Deklaration nicht vollständig ersetzt. Vielmehr bietet sie eine Möglichkeit, die **Lesbarkeit** der Codes zu verbessern. Aus diesem Grund sollten Sie bei **Aktualparametern** von Methoden möglichst auf die Inline-Deklaration verzichten, weil der Datentyp sich **nicht** aus dem Programm-Code ableiten lässt. Im Gegensatz dazu ist es bei **Hilfsvariablen** empfehlenswert, diese am **Verwendungsort** zu deklarieren. *Dieser Artikel erschien bereits im Februar 2020. Der Artikel wurde am 03.03.2026 erneut geprüft und mit leichten Anpassungen aktualisiert.* ## FAQ ### Was bedeutet Inline-Deklaration in ABAP? Inline-Deklaration erlaubt es, Variablen direkt an der Stelle zu deklarieren, an der sie erstmals gebraucht werden, z. B. mit DATA(var). ### Ab welcher ABAP-Version ist Inline-Deklaration möglich? Ab ABAP 7.40 können Nutzer Variablen an verschiedenen Stellen im Code inline deklarieren. ### Wo kann ich Inline-Deklaration einsetzen und wo nicht? Sie ist möglich, wenn der Typ eindeutig ableitbar ist (z. B. Zuweisung, SELECT ... INTO TABLE @DATA(...), LOOP ... INTO DATA(...), ASSIGN ... FIELD-SYMBOL(...)). Nicht unterstützt wird sie bei Funktionsbausteinen und Form-Routinen. ### Was sind die wichtigsten Vor- und Nachteile? Vorteile: weniger Deklarationsblock am Anfang, schlankerer Code, automatische Übernahme des Typs. Nachteile: geringerer Überblick über alle Variablen und Nutzer können die Datentypen nicht immer direkt erkennen.