Introducing ABAP Syntax

Objectives

After completing this lesson, you will be able to:
  • die Grundlagen der ABAP-Syntax erläutern
  • Datentypen, Variablen, Konstanten und Literale sowie Kettensätze definieren

Grundlagen der ABAP-Syntax

Übersicht

Am Ende dieses Moduls arbeitet der Anfängerprogrammierer mit den Grundlagen der ABAP-Syntax wie Datentypen, Variablen, Konstanten und Literale, Kettensätze, Hinzufügen von Kommentaren zum Quelltext, Durchführen arithmetischer Berechnungen, Verwenden von Systeminformationen, Debuggen eines Programms, Erstellen einer ABAP-Liste und Verarbeiten von Zeichenketten in der ABAP-Sprache.

Grundlegende Eigenschaften der ABAP-Sprache

Die Sprache ABAP besteht aus einzelnen Sätzen (Anweisungen). Die wichtigsten Dinge, die Sie über ABAP-Anweisungen beachten müssen, sind:

  • ABAP-Coding besteht aus einzelnen Anweisungen
  • Das erste Wort in einer Anweisung wird als ABAP-Schlüsselwort bezeichnet.
  • Jede Bescheinigung endet mit einem Punkt
  • Ein Leerzeichen muss zwei Wörter trennen
  • Anweisungen können eingerückt werden, um die Lesbarkeit des Quelltexts zu verbessern.
  • können verschiedene Zusätze und Operanden enthalten (je nach Schlüsselwort)
  • können sich über mehrere Zeilen erstrecken
  • Schlüsselwörter, Zusätze und Operanden können Groß- oder Kleinschreibung verwenden
  • Das ABAP-Laufzeitsystem unterscheidet nicht zwischen Fällen. Es ist üblich, Schlüsselwörter und ihre Zusätze in Großbuchstaben und Operanden in Kleinbuchstaben zu schreiben.

Datenobjekte in ABAP

Variablen, Konstanten und Literale

ABAP kennt drei Typen von Datenobjekten: Variablen, Konstanten und Literale.

Ein Datenobjekt in ABAP-Coding stellt einen reservierten Teil des Programmspeichers dar. ABAP kennt drei Typen von Datenobjekten: Variablen, Konstanten und Literale.

Variablen
Eine Variable ist ein Datenobjekt mit einem Inhalt, der sich während der Laufzeit ändern kann. Eine Variable ist durch einen Namen gekennzeichnet. Der Name wird auch verwendet, um das Datenobjekt zur Laufzeit zu adressieren. Der Startwert einer ABAP-Variablen ist wohldefiniert.
Konstanten
Konstanten sind wie Variablen. Im Gegensatz zu Variablen ist der Wert jedoch im Quelltext fest programmiert und darf sich während der Laufzeit nicht ändern. Konstanten haben wie Variablen einen Namen, unter dem sie wiederverwendet werden können.
Literale

Der Wert von Literalen ist auch im Quelltext fest programmiert. Im Gegensatz zu Konstanten haben Literale keinen Namen. Aus diesem Grund können Sie ein Literal nicht wiederverwenden. Verwenden Sie Literale nur, um die Werte für Konstanten und die Startwerte für Variablen anzugeben.

ABAP-Datenobjekte sind immer typisiert: Jedes Datenobjekt basiert auf einem Datentyp, der bestimmt, welche Informationen es enthalten kann. Der Datentyp eines ABAP-Datenobjekts bleibt während der Programmausführung unverändert.

Deklaration von Variablen

Variablen werden mit den Schlüsselwörtern DATA, TYPE und optional VALUE deklariert.

Eine Variable im ABAP-Quelltext wird mit dem Schlüsselwort DATA deklariert.

Eine DATA-Anweisung besteht aus folgenden Teilen:

DATEN

Auf das Schlüsselwort DATA folgt der Name der Variablen. Der Name einer Variablen kann maximal 30 Zeichen umfassen. Er kann die Zeichen A-Z, die Ziffern 0–9 und den Unterstrich enthalten. Der Name muss mit einem Buchstaben oder Unterstrich beginnen.

TYPE
Hinter dem Zusatz TYPE wird der Typ der Variablen angegeben. Im Beispiel werden die eingebauten Typen I (für Integer-Zahlen) und string (Zeichenkette mit variabler Länge) verwendet.
VALUE
Der Zusatz VALUE ist optional und kann verwendet werden, um einen Startwert für die Variable anzugeben. Wenn VALUE fehlt, wird die Variable mit einem Initialwert angelegt, der vom technischen Typ der Variable abhängt.

Verwendung von Datentypen

ABAP unterstützt 13 eingebaute oder benutzerdefinierte Typen mit dem TYPES -Schlüsselwort oder dem ABAP Dictionary.

ABAP bietet folgende Quellen von Datentypen:

Eingebauter ABAP (eingebaute ABAP-Typen)

ABAP hat einen Satz von 13 eingebauten Datentypen für einfache numerische, zeichenartige und binäre Datenobjekte.

TYPES -Anweisungen

Mit der Anweisung TYPES können eingebaute Datentypen definiert und je nach Ort der Definition an verschiedenen Stellen wiederverwendet werden.

ABAP Dictionary
Das ABAP Dictionary ist Teil des ABAP Repository. Er verwaltet unter anderem systemweit verfügbare globale Datentypen. ABAP-Dictionary-Typen definieren nicht nur technische Eigenschaften, sondern fügen auch semantische Informationen hinzu, z.B. Bezeichner. ABAP-Dictionary-Typen sind insbesondere bei der Implementierung von Benutzungsoberflächen nützlich.

Eingebauter ABAP (eingebaute ABAP-Typen)

Beispiele für eingebaute Typen

Einige wichtige Standard-ABAP-Typen (eingebaute Datentypen) sind in der Abbildung aufgeführt. Die ABAP-Typen werden entweder als vollständige oder als unvollständige Datentypen kategorisiert. Vollständige Datentypen enthalten bereits typspezifische Festlängenangaben. Unvollständige Datentypen haben eine Standardlänge, erlauben jedoch die Angabe einer anderen Länge. Beim Typ P können Sie auch eine Anzahl von Nachkommastellen angeben. 

Vollständige ABAP-Typen

TYP STRING

Ein Feld vom Typ STRING ist ein zeichenartiges Feld variabler Länge. Im ABAP-Laufzeitsystem wird Speicher zugewiesen und freigegeben, um die Verwaltung von STRING-Variablen zu optimieren. Dieses Verhalten können Sie nicht direkt beeinflussen. Die maximale Länge einer Zeichenfolge wird durch Einstellungen gesteuert, die der Systemadministrator vornimmt. In der Praxis reden wir aber von einer unbegrenzten Länge von Zeichenfolgen.

TYP I

Ein Feld vom Typ I ist ein numerisches Feld, das eine ganze Zahl enthält. Das System weist 4 Byte (32 Bits) für ein solches Feld zu, das Werte zwischen -2^31 und +2^31 zulässt.

TYP D

Ein Feld vom Typ D stellt ein Datum dar. In ABAP hat das Datum immer das Format JJJJMMTT (ohne Trennzeichen). Das System konvertiert dieses Format gemäß dem aktuellen Gebietsschema, bevor der Wert auf der Benutzungsoberfläche angezeigt wird. Wenn der Benutzer ein Datum eingibt, konvertiert das System es in das ABAP-Format, bevor Sie mit der Verarbeitung beginnen.

TYP T

Ein Feld vom Typ T stellt eine Uhrzeit dar. Diese hat in ABAP das Format HHMMSS (ohne Trennzeichen im 24-Stunden-Format). Wenn das aktuelle Gebietsschema ein 12-Stunden-Format verwendet hat, konvertiert das System die Werte automatisch.

Unvollständige ABAP-Typen

TYPE C
Ein Feld vom Typ C ist ein zeichenartiges Feld bestimmter Länge. Sie geben die Länge in Zeichen an; das Laufzeitsystem ordnet dann die doppelte Anzahl von Bytes für das Feld zu. Sie verwenden diesen Typ, wenn eine feste Länge wichtig ist.
TYP N

Ein Feld vom Typ N ist ein Zeichenfeld einer bestimmten Länge, das nur Ziffern enthält. Dieses Feld sollte eine Ziffernfolge enthalten, die Sie nicht als Zahl betrachten möchten, und Berechnungen mit durchführen – dies kann z.B. eine Personalnummer oder eine Kostenstelle sein.

TYPE P

Ein Feld vom Typ P (P für 'gepackte Zahl') ist ein Feld, das einen numerischen Wert mit einer vorgegebenen Anzahl von Ziffern und einer Nachkommastelle enthält. Verwenden Sie diesen Typ für Zahlen mit Nachkommastellen oder bei denen der Wertebereichstyp I nicht ausreicht.

Verwendung lokaler Typen

Benutzerdefinierte Typen werden mit dem TYPES -Schlüsselwort definiert.

Beispiel

Code Snippet
12
TYPES my_type TYPE p LENGTH 3 DECIMALS 2. DATA my_var TYPE my_type.

Anstatt eingebaute Typen direkt in der DATA-Anweisung zu verwenden, kann der Typ zunächst mit der Anweisung TYPES definiert werden. Der Typ kann dann in einer DATA -Anweisung hinter dem TYPE -Zusatz verwendet werden.

Verwendung globaler Typen – ABAP Dictionary

Beispiel für einen benutzerdefinierten Typ im ABAP Dictionary

In einem SAP-System gibt es Tausende von Wirtschaftseinheiten, z.B. Ländercodes, Werke, Materialnummern, Geschäftsjahre, Kostenstellen usw. Die Definition dieser Entitäten in jedem Programm wäre technisch mit den eingebauten ABAP-Typen möglich, die Sie gerade gesehen haben. Dies wäre aber sehr arbeitsintensiv und fehleranfällig. Stattdessen stellt SAP das ABAP Dictionary, die zentrale Ablage für wichtige Datentypen und das Werkzeug zur Verfügung, mit dem Sie Datenbanktabellen anlegen.

Im ABAP Dictionary werden einzelne Business-Entitäten durch Datenelemente beschrieben. In der Beispielvariable ist die Variable Airport mit dem Datenelement /DMO/AIRPORT_ID typisiert.

Wenn Sie die F2 -Taste drücken, um die Datentypdetails anzuzeigen, sehen Sie, dass dieser Typ technisch gesehen ein Zeichen der Länge 3 ist. Darüber hinaus stellt das Datenelement die Beschreibung „Flugreferenzszenario: Flughafen-ID" und die vier Feldbezeichner unterschiedlicher Länge bereit.

Wenn Sie die Taste F3 drücken, um zur Definition des Typs zu navigieren, wird mit dem Editor für Datenelemente eine neue View geöffnet.

Konstanten und Literale

Deklaration von Konstanten

Konstanten können mit dem Schlüsselwort CONSTANTS definiert werden.

Konstanten

Eine Konstante ist ein Datenobjekt mit einem fest programmierten Wert, der während der Laufzeit nicht geändert werden darf. Jeder Schreibzugriff auf eine Konstante führt zu einem Syntaxfehler.

In ABAP deklarieren Sie eine Konstante mit dem Schlüsselwort CONSTANTS. Eine CONSTANT-Anweisung besteht aus den gleichen Bestandteilen wie eine DATA-Anweisung. Der einzige Unterschied besteht darin, dass der Zusatz VALUE obligatorisch ist.

Der Zusatz VALUE kann in der Spezialform VALUE IS INITIAL verwendet werden, wenn der Wert der Konstante typgerecht initial sein soll. Initialwerte sind normalerweise Null für numerische Typen und ein Leerzeichen für Zeichentypen. Es gibt keine Null-Werte in ABAP.

Deklaration von Literalen

ABAP unterstützt Zahlen-, Text- und String-Literale.

Literale

Literale sind anonyme Datenobjekte mit einem fest programmierten Wert. Literale werden häufig verwendet, um nicht-initiale Werte für Konstanten und nicht-initiale Startwerte für Variablen zu definieren.

Technisch gesehen können Sie überall in Ihrem Quelltext Literale verwenden. Um die Lesbarkeit und Wartbarkeit zu unterstützen, wird empfohlen, Konstanten zu definieren und zu verwenden.

ABAP hat drei Arten von Literalen:

  • Zahlenliterale sind ganze Zahlen mit oder ohne Vorzeichen. Zahlenliterale haben in der Regel den Datentyp I. Wenn der Wert zu groß für den Datentyp I ist, wird der Typ p mit ausreichender Länge und ohne Nachkommastelle verwendet.
  • Textliterale sind Zeichenarten in einfachen Anführungszeichen (' ).
  • Zeichenkettenliterale sind vom Typ STRING und stehen in Backquote ( ` ). Sie sollten verwendet werden, um Werte für Datenobjekte vom Typ String bereitzustellen.

Kettensätze

Beispiel für eine verkettete TYPES -Anweisung

Strukturierte Typen können auch im ABAP-Coding mit der TYPES -Anweisung definiert werden. Die Strukturdefinition beginnt mit der Anweisung TYPES BEGIN OF <structure type name>.und endet mit TYPES END OF <structure type name>. Dazwischen benennen Sie jede Komponente und geben ihren Typ in einer zusätzlichen TYPES -Anweisung an.

Eine kompakte Form verwendet das Schlüsselwort TYPES nur einmal, gefolgt von einem Doppelpunkt ( : ). Der Zusatz BEGIN OF, der Zusatz END OF und die dazwischen liegenden Komponentendefinitionen werden dann durch Kommas getrennt.

Dies wird als Kettenanweisung bezeichnet.

Notiz

In der Vergangenheit wurden Kettenanweisungen in ABAP sehr häufig verwendet. Heutzutage wird nur empfohlen, Anweisungen zusammenzufassen, die eng zusammengehören.

Kommentare in ABAP

Beispiel für einen Kommentar mit dem Sternzeichen-Symbol

Ein Kommentar ist eine Erläuterung, die einem Programm hinzugefügt wird, damit andere den Quelltext besser verstehen können. Kommentare sind ein Quellcode, der vom Compiler oder Interpreter ignoriert wird.

In ABAP gibt es zwei verschiedene Möglichkeiten, einen Quellcode als Kommentar zu definieren:

  • Das Sternzeichen (*) in der ersten Spalte kennzeichnet die gesamte Zeile als Kommentar
  • Das doppelte Anführungszeichen (") kennzeichnet den Rest der Zeile, d.h. den Code rechts davon als Kommentar.