Nico Horn
19. Februar 2020

ABAP Inline-Deklaration

ABAP Inline-Deklaration

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 zur deklarieren, wodurch nicht mehr alle Variablen zu Beginn des Codes deklariert werden müssen.

Datendeklaration

Vor der Einführung von ABAP 7.40 musste jede verwendete Variable zu Beginn des Codes vollständig mit dem Datentyp deklariert werden. Ab der Version 7.40 können Variablen an verschiedenen Schreibpositionen im Code deklariert werden. Die Syntax für die Inline-Deklaration sieht folgendermaßen aus:

… DATA(var) …

Die Inline-Deklaration kann an jeder Position verwendet werden, wo der Typ eindeutig festgestellt werden kann. 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 einen Syntax-Fehler.

Howto ABAPGit einrichten

abapGit einrichten [Howto]

In diesem How-to erkläre ich Ihnen Schritt für Schritt, wie Sie abapGit bei sich einrichten und davon profitieren können.

Vorteile

  • Der Programm-Code wird schlanker und lesbarer.
  • Die Inline-Deklaration markiert die Stelle, an der die Variable das erste Mal verwendet wird 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 Überblick über alle vorhanden 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.
  • Die Inline-Deklaration kann nicht bei Aufrufen von Funktionsbausteinen oder Form-Routinen verwendet werden.

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 man bestimmte Spalten auswählen oder eigene Spalten hinzufügen kann, ohne dass man einen neuen Datentyp für die Variable definieren muss.

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 kann mit der folgenden Syntax deklariert werden:

… FIELD-SYMBOLS(<fs>) …

Die Inline-Deklaration bietet auch hier den Vorteil, dass auf die explizite Typisierung verzichten werden kann. Field-Symbols sind besonders bei dem Durchlaufen einer Loop-Schleife zu empfehlen, weil dadurch nicht nur der Datensatz ausgelesen werden kann, sondern auch Werte geändert werden können.

ASSIGN lv_text TO FIELD-SYMBOL(<fs_text>).
LOOP AT lt_spfli ASSIGNING FIELD-SYMBOL(<fs_spfli>).

ENDLOOP.

Methoden

Bei einem Methodenaufruf kann die Inline-Deklaration für die Akutalparameter eingesetzt werden. 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 von der Inline-Deklaration unterstützt.

CALL METHOD cl_klasse=>methode
EXPORTING
iv_import = lv_text
IMPORTING
ev_export = DATA(lv_return).

Fazit

Mit Hilfe der Inline-Deklaration kann der Programm-Code verkürzt werden und die Lesbarkeit erhöht werden. Der Entwickler kann auf die Typisierung von Variablen verzichten und erspart sich das Anlegen von speziellen Datentypen für, beispielsweise Tabelle, die mit einem Select-Statement befüllt werden. Außerdem kann bei dem Durchlaufen einer Tabelle mit einer Loop-Schleife die Struktur direkt am Verwendungsort deklariert werden, wodurch der Code leichter zu lesen ist.

Allgemein ist zu beachten, dass die Inline-Deklaration die bisherige Deklaration nicht vollständig ersetzt, sondern vielmehr eine Möglichkeit bietet die Lesbarkeit der Codes zu bessern. Aus diesem Grund sollten bei Aktualparameter von Methoden möglichst auf die Inline-Deklaration verzichtet werden, 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.

Kontaktieren Sie uns gerne, wenn Sie weitere Fragen zum Thema ABAP Inline-Deklaration haben.

 Save as PDF


Das könnte Sie auch interessieren

Wenn Sie sich schon einmal mit Entwicklung - gerne auch unabhängig von SAP - auseinandergesetzt haben, dann kennen Sie dieses Problem höchstwahrscheinlich. Sie haben den Auftrag ein bestimmtes Programm, einen […]

weiterlesen

Geht es um moderne ABAP-Entwicklung, sind CDS Views momentan in aller Munde. In S/4HANA werden sie fester Bestandteil und bringen Benefits wie eine bessere Performance und Zeitersparnis mit sich. Ihr Manko: Sie werden […]

weiterlesen

In ABAP führen ja bekanntlich viele Wege nach Rom. Sie fragen sich vielleicht: Warum die neuen Features nutzen, wenn Sie es doch auch bereits mit der aktuellen ABAP-Palette realisiert bekommen […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice