| ABAP | |
|---|---|
| Basisdaten | |
| Paradigmen: | Objektorientiert, prozedural |
| Erscheinungsjahr: | 1983 |
| Entwickler: | SAP SE |
| Aktuelle Version: | Die Programmiersprache hat keine eigene Versionierung, sondern ist identisch mit der Version des zugrundeliegenden Produktes, s. u. Sprachversionen und Sprachumfang (12. Oktober 2022) |
| Beeinflusst von: | Java, SQL, Cobol, Haskell, Adabas/Natural (Programmiersprache) |
| Betriebssystem: | Windows, Unix/Linux, AIX, HP-UX, Solaris, OS/400 |
| Lizenz: | proprietär |
| community.sap.com/topics/abap | |
ABAP, kurz für „Advanced Business Application Programming“ (bis 1996 Allgemeiner Berichts- (und) Aufbereitungs-Prozessor), ist eine proprietäre, multiparadigmatische Programmiersprache, die objektorientierte, imperative und funktionale Elemente hat. Die ABAP-Sprache wird zu Bytecode kompiliert und besitzt eine automatische Speicherbereinigung.
ABAP wird von der Softwarefirma SAP SE für die Programmierung kommerzieller Anwendungen im SAP-Umfeld entwickelt.
Die Programmiersprache ist ein Bestandteil der ABAP-Plattform. Die Programmiersprache ABAP sollte dabei nicht mit der ABAP-Plattform als Basis-Technologie gleichgesetzt werden.
In dem seit 2001 veröffentlichten TIOBE-Index für Beliebtheit von Programmiersprachen liegt ABAP Stand Oktober 2025 auf Platz 26.
Eingeführt wurde die ABAP-Programmiersprache in den 1980er-Jahren. Der Sprachumfang ist nicht standardisiert und wird stetig weiterentwickelt, s. dazu auch die Evolution der Sprache. Als aktuelle Weiterentwicklung seien hier das ABAP RESTful Application Programming Model (RAP) sowie ABAP Cloud zu nennen.
Die Evolution der ABAP-Sprache ist ausführlich in einem SAP-Community-Blogpost beschrieben.
Größere Stationen waren:
ABAP ist eine multiparadigmatische Programmiersprache, die objektorientierte, imperative und funktionale Elemente hat. Die ABAP-Sprache wird zu Bytecode kompiliert und besitzt eine automatische Speicherbereinigung.
Sie ist insbesondere für die Entwicklung, den Betrieb und die Wartung betriebswirtschaftlicher Anwendungen konzipiert.
Die Objektorientierung in ABAP basiert auf Klassen und Interfaces. In ABAP gibt es keine Mehrfachvererbung. Wie in C++ werden Definition und Implementierung der Klassen getrennt. Zusätzlich gibt es ein in die Sprache integriertes Ereigniskonzept.
Als Eigenschaften sind zu nennen:
ABAP hat keine eigene Versionierung, sondern folgt der Version der jeweiligen ABAP-Plattform. Zusätzlich kann man beim Sprachumfang zwischen ABAP for Cloud Development, ABAP for Key User und Standard unterscheiden. In den aktuellen Cloud-Produkten BTP ABAP Environment sowie SAP S/4HANA Cloud, Public Edition stehen nur freigegebene SAP-APIs zur Verfügung, die Cloudfähigkeit und Upgradestabilität gewährleisten.
ABAP ist abwärtskompatibel, wodurch häufig eine hohe Komplexität und ein großer Sprachumfang im Legacy Coding existiert. Es gibt obsolete Sprachelemente, von deren Verwendung abgeraten wird.
In SAP S/4HANA sowie SAP S/4HANA Private Cloud steht der volle ABAP-Sprachumfang (Standard ABAP) zur Verfügung. Um die Transformation der diversen On-Premise-Installationen sowie aus der SAP S/4HANA Private Cloud zu unterstützen, ist es für ABAP-Entwickler über die ABAP-Development-Tools möglich, den Sprachumfang auf den ABAP-for-Cloud-Sprachumfang einzuschränken und somit nur für den Cloud-Kontext freigegebene Sprachelemente und APIs zu verwenden.
Beispiel
Sowohl SAP S/4HANA Cloud 2302 als auch SAP BTP ABAP Environment 2302 beinhalten den ABAP-for-Cloud-Sprachumfang 2302.
Syntax und Semantik von ABAP sind in der ABAP-Sprachdokumentation der SAP SE dokumentiert. Die Syntax der Sprache ist der natürlichen Sprache angelehnt. Einzelne Anweisungen werden mit einem Punkt abgeschlossen. ABAP unterscheidet nicht zwischen Groß- und Kleinschreibung.
Die folgenden ABAP-Programme zeigen sowohl die imperative als auch die objektorientierte Syntax eines „Hello World!“-Beispiels:
Imperative Syntax
report demo_helloworld.
write 'Hello World!'.
Objektorientierte Syntax
CLASS hello_world DEFINITION.
PUBLIC SECTION.
METHODS hello.
ENDCLASS.
CLASS hello_world IMPLEMENTATION.
METHOD hello.
cl_demo_output=>display( 'Hello World!' ).
ENDMETHOD.
ENDCLASS.
Die Clean-ABAP-Initiative wurde von SAP ins Leben gerufen. Sie basiert auf den Prinzipien des Buches „Clean Code“ von Robert C. Martin und wurde speziell für die ABAP-Programmiersprache angepasst. Ziel ist es, die Lesbarkeit, Wartbarkeit und Testbarkeit von ABAP-Code zu verbessern. Einige wichtige Richtlinien von Clean ABAP sind im Folgenden aufgeführt:
In Clean ABAP wird empfohlen, auf Namenskonvention wie die ungarische Notation und Präfixe zu verzichten, um die Lesbarkeit und Verständlichkeit des Codes zu verbessern.
Das vorherrschende Entwicklungsmodell in aktueller ABAP-Entwicklung ist das ABAP RESTful Application Programming Model (RAP).
Die Evolution des ABAP-Programmiermodells ist ausführlich in einem SAP-Community-Blog-Post beschrieben.
Ältere ABAP-Entwicklungsmodelle sind:
Das Besondere an der Programmierung in ABAP ist, dass die Entwickler keine Textdateien auf ihrem Rechner editieren und dann auf einen Versionskontrollserver hochladen, sondern alle direkt auf dem ABAP-Server programmieren.
Es stehen zwei Entwicklungsumgebungen für die ABAP-Entwicklung zur Verfügung: die ABAP Development Tools, welche auf der Open-Source-Software Eclipse basieren, und die ABAP Workbench, welche in das SAP-GUI integriert ist.
Die ABAP Development Tools (ADT) sind die Standard-IDE für ABAP-Entwicklung. ABAP Development Tools / ADT sind in der Online-Dokumentation der SAP SE dokumentiert.
Seit 2012 wird mit ABAP Development Tools (ADT) eine auf dem quelloffenen Eclipse basierende Entwicklungsumgebung für ABAP bereitgestellt. ADT wird dabei in allen Produktvarianten, in denen ABAP entwickelt werden kann, unterstützt. Es ist auch möglich, Visual Studio Code (VS Code) für die ABAP-Entwicklung zu verwenden. Es stehen dazu mehrere Plugins zur Verfügung. Der Funktionsumfang ist aber im Vergleich zu den ABAP Development Tools (ADT) noch eingeschränkt.
Einen ausführlichen Überblick und Einstieg in die Nutzung der ABAP Development Tools bietet der „ADT Leitfaden“ der Deutschsprachigen SAP Anwendergruppe (DSAG).
Anfang der 1990er Jahre wurde die im SAP GUI integrierte ABAP Workbench (Transaktion SE80) für die Entwicklung in ABAP eingeführt.
Die ABAP Workbench (SE80) lieferte folgende wesentliche Verbesserungen:
Eine Besonderheit in der ABAP Workbench ist die sogenannte „Vorwärtsnavigation“.
Beispiele
Falls das verwendete Objekt noch nicht existiert, kann es so auch angelegt werden.
Die Vielzahl der möglichen ABAP-Anweisungen und ihrer Varianten sowie nicht reservierte Schlüsselwörter führen allgemein zu einem schwerer verständlichen Quellcode als in anderen gängigen Programmiersprachen. Die vorhandene Vielfalt der ABAP-Anweisungen resultiert aus der Abwärtskompatibilität.
Der Vorteil ist, dass die bisherigen Entwicklungen und Kundenanpassungen funktionsfähig bleiben und deren Verhalten sich nicht ändert. Für ABAP-Entwickler bedeutet dies, dass sowohl die alten als auch die neuen Sprachelemente erlernt werden müssen.
Mit Einführung von ABAP Objects in den 1990er Jahren wurde der in Klassen verfügbare Sprachumfang eingeschränkt, was zu einer Vereinfachung und Verbesserung des vorhandenen Legacycodes geführt hat.
Mit der Einführung von ABAP Cloud im Jahre 2022 wurde der Sprachumfang erneut angepasst, so dass auch hier eine Vereinfachung und Renovierung des vorhandenen Legacycodes erfolgen kann.
Es gibt verschiedene Werkzeuge, die Entwickler dabei unterstützen, Legacycode an neueren Programmierrichtlinien auszurichten, aktuelle Sprachelemente zu verwenden sowie Legacycode auf den Cloud-Umstieg vorzubereiten:
Alle gelisteten Werkzeuge sind Teil der ABAP-Development-Tools-Entwicklungsumgebung.