Knowhow »

ABAP
ABAP ist die proprietäre Programmiersprache von SAP, auf der ein Großteil der SAP-Anwendungen basiert. Dadurch, dass ABAP von Anfang an darauf ausgelegt wurde, mit Massendaten im Geschäftskontext umzugehen, unterscheidet es sich deutlich von anderen Programmiersprachen und Programmierschnittstellen. So gehört beispielsweise die Tabellenverarbeitung mit festen Spaltenstrukturen oder die interne Versionsverwaltung zum Standard. Dieses und weitere Besonderheiten und Vorteile von ABAP sollen im Folgenden dargestellt werden.
Inhaltsverezeichnis
Besondere Elemente von ABAP
Ursprünglich stand ABAP für „Allgemeiner Berichtsaufbereitungsprozessor“, wurde später aber in „Advanced Business Application Programming“ umbenannt, als das Programm im Zuge von Weiterentwicklungen um Möglichkeiten ergänzt wurde, die über das reine Erstellen von Berichten hinaus gingen. Die Abkürzung, unter der ABAP hauptsächlich bekannt ist, bleibt also bestehen.
1990 wurde das Advanced Business Application Programming zusammen mit der dritten Generation der SAP Business Suite SAP R/3 auf den Markt gebracht und wird seitdem als standardmäßige Programmiersprache für SAP-Module genutzt. Mittlerweile kann ABAP auch von Kunden genutzt werden, um Auswertungsreports zu erstellen.
Im Vergleich zu anderen Programmiersprachen wie C, C++ oder Java zeichnet sich ABAP durch folgende Besonderheiten aus:
Data Dictionary
ABAP verwendet statische, einfache und strukturierte Datentypen, die in einem Data Dictionary (DDIC) definiert und gespeichert werden. Die dadurch entstehende Trennung zwischen Datentypen und Anwendungscodes ermöglicht auch im prozeduralen ABAP eine hohe Wiederverwendbarkeit der DDIC-Typen in verschiedenen Anwendungen.
Tabellarische Datentypen
Ein fester Bestandteil des Sprachumfangs von ABAP sind tabellarische Datentypen. Zugriffe auf Tabellenzeilen, Datenbankupdates über Tabelleninhalte, usw. sind durch eigene Befehle in die Programmiersprache integriert.
Friends
Auch das „Friends“-Konzept hebt ABAP von anderen Programmiersprachen ab. Normalerweise sind private und öffentliche Komponenten von Objekttypen bzw. Klassen strikt voneinander getrennt, d. h. Klasse A kann beispielsweise nicht auf private Komponenten von Klasse B zugreifen. Da in seltenen Fällen aber genau das erforderlich ist, gibt es mit Friends die Möglichkeit, dass 2 Klassen „Freunde werden“ und so einseitig auf ihre eigentlich unsichtbaren Komponenten zugreifen können. Einseitig bedeutet: Ist Klasse A bei Klasse B als Freund registriert, kann Klasse A auf die privaten Attribute und Methoden von Klasse B zugreifen. Damit auch Klasse B auf die privaten Komponenten von Klasse A zugreifen kann, müsste Klasse A die Klasse B als Freund definieren.
ABAP und der Application Server
ABAP läuft auf dem SAP Netweaver Application Server, den es sowohl als ABAP- als auch als JAVA-EE-Applikationsserver (oder im Dual-Stack sogar eine Kombination aus beiden) gibt. Auf dem ABAP-Server können Softwarekomponenten gebündelt über sogenannte Transportaufträge von einem System in ein anderes transportiert werden.
Interne Versionsverwaltung
In ABAP wird die Versionsverwaltung nicht wie bei der Webentwicklung oft üblich in externe Softwares wie z. B. Git ausgelagert, sondern findet intern statt. Die Anbindung an externe Repositories, also an verwaltete Verzeichnisse zur Speicherung von digitalen Objekten, befindet sich bei ABAP derzeit in der Entwicklung. Schlagworte dazu sind abapGit oder „git-enabled CTS (gCTS)“.
Abwärtskompatibilität
Darüber hinaus ist der Sprachumfang von dem Advanced Business Application Programming größtenteils abwärtskompatibel, d. h. ältere Versionen verlieren nach einem Upgrade nicht ihre Gültigkeit und können weiterhin verwendet werden. Dass sowohl ältere als auch neue Befehle parallel bestehen bleiben, ist also der Grund für die hohe Ausprägung des Sprachumfangs. Allerdings bestätigen auch in diesem Fall Ausnahmen die Regel: Bei der Verwendung der Erweiterung ABAP OO gibt es einige wenige Elemente, die nicht mehr zulässig, also obsolet sind. Trotzdem bleiben alte Entwicklungen grundsätzlich funktionsfähig und müssen nicht bei jedem Upgrade angepasst werden.

ABAP OO
Im Zuge der Expansion des ABAP-Sprachumfangs erweiterte SAP mit dem Release von ABAP OO die prozedurale Sprache um neue objektorientierte Sprachelemente und Konzepte. Bisherige Sprachelemente können dabei zum Großteil weiterhin in ABAP OO genutzt werden. Diese untrennbare Verbindung von ABAP und ABAP OO ermöglicht die parallele Unterstützung zweier Programmierparadigmen – des klassischen prozeduralen sowie des objektorientierten Programmiermodells.
ABAP OO schafft so Voraussetzungen für die Nutzung von:
- Interfaces
- Globalen (auch abstrakten) Klassen
- Lokalen Klassen, die nur in einem Programm/Funktionsbaustein/o. ä. zur Verfügung stehen
- Vererbungshierarchien und Polymorphien
Datenbankzugriffe mit ABAP
Im Vergleich zum klassischen Advanced Business Application Programming soll die Integrierung der Objektorientierung helfen, Anwendungen zu modularisieren und so die Entwicklung zu vereinfachen, die Laufzeit-Performance zu verbessern, unnötige Datenbankabfragen zu vermeiden und konkurrierende Datenbankzugriffe zu minimieren.
Programmiermodelle und Entwicklungsumgebungen
Im Wesentlichen gibt es zwei Entwicklungsumgebungen für die Softwareentwicklung mit ABAP, die besonders verbreitet sind:
ABAP (Development) Workbench
Mit der Transaktion SE80 lässt sich die in der Benutzeroberfläche SAP GUI (Graphical User Interface) integrierte Entwicklungsumgebung ABAP Workbench öffnen, die auch an die Möglichkeiten und Grenzen von SAP GUI gebunden ist. So kann beispielsweise immer nur eine begrenzte Anzahl an Fenstern gleichzeitig geöffnet werden. Als aktuell noch dominierende Entwicklungsumgebung für das Advanced Business Application Programming vereint die Workbench Einzeltransaktionen wie das Data Dictionary (SE11), den Object- und den Function Builder (SE24 und SE37) sowie den Editor für ABAP-Programme (SE 38). Mittlerweile wird SE80 aber nicht mehr weiterentwickelt, sodass einige neue Funktionen wie CDS Views oder AMDPs (ABAP Managed Database Procedures) nicht mehr entwickelt oder gewartet werden können. SAP setzt stattdessen strategisch auf die ABAP Development Tools (ADTs) in der Eclipse IDE (Eclipse Integrated Development Environment).
ABAP Development Tools für die Eclipse IDE
Die ADTs sind ein von SAP bereitgestelltes Plugin, das in der Open-Source-Software Eclipse IDE installiert werden kann und die Verbindung von Eclipse als Entwicklungsumgebung mit dem ABAP-Backend-Server ermöglicht. Wie der Name Integrated Development Environment schon sagt, können Entwickler mit den ADTs in der Eclipse IDE alle notwendigen Tätigkeiten integriert in einer Umgebung durchführen. Dazu gehören Aufgaben wie das Anlegen von Entwicklungsobjekten (Programme, Klassen und Funktionsbausteine) oder von Data-Dictionary-Objekten (Datenelemente oder Tabellen), das Ausführen des „Codes Inspector/ABAP Test Cockpit“ sowie die Freigabe von Transporten.
Außerdem können in dieser Umgebung, anders als in der Workbench, CDS Views und AMDPs angelegt und gepflegt werden.
Fazit
Als proprietäre Entwicklungssprache von SAP unterscheidet sich ABAP in vielerlei Hinsicht von anderen Entwicklungssprachen. So können durch das „Friends“-Konzept beispielsweise Klassen miteinander „befreundet“ sein, die Versionsverwaltung findet intern und nicht auf einer externen Software statt und durch die Erweiterung des Sprachumfangs ABAP OO können sowohl prozedurale als auch projektorientierte Programmiermodelle unterstützt werden.
Die Eclipse IDE mit den ABAP Development Tools ist eine der beiden Entwicklungsumgebungen. Ihr Vorläufer, die ABAP Development Workbench, wird allerdings nicht mehr weiterentwickelt.
Haben Sie Fragen zum Thema ABAP oder ABAP OO? Unser Team steht Ihnen gerne mit Rat und Tat zur Seite und für jegliche Fragen zur Verfügung. Kontaktieren Sie uns für eine individuelle Beratung!