ABAP
Inhalt
Was ist SAP ABAP?
ABAP steht für „Advanced Business Application Programming“ und ist die proprietäre Programmiersprache von SAP, sie ist also herstellerspezifisch. Damit unterscheidet sie sich von freien Programmiersprachen wie bspw. Java. Die Sprache erschien 1990 zusammen mit der dritten Generation der SAP Business Suite SAP R/3 und ist seitdem die standardmäßige Programmiersprache für SAP-Module.
SAPs Programmiersprache ABAP war von Anfang an darauf ausgelegt, mit Massendaten im Geschäftskontext umzugehen und unterscheidet sich daher deutlich von anderen Programmiersprachen und -schnittstellen.
ABAP Syntax
Hier ein Beispiel eines Codes mit ABAP:
Wie genau das ABAP RESTful Programming Model funktioniert, haben wir Ihnen in einem Beitrag genauer erläutert.
Eigenschaften von ABAP
ABAP zeichnet sich durch folgende Besonderheiten aus, die es von anderen Programmiersprachen wie C, C++ oder Java abhebt:
Data Dictionary
Die Datentypen, die ABAP verwendet, sind einfach, statisch und strukturiert und werden in einem Data Dictionary (DDIC) definiert und gespeichert. So entsteht eine Trennung zwischen Datentypen und Anwendungscodes, die es Anwendenden ermöglicht, die DDIC-Typen auch im prozeduralen ABAP in verschiedenen Anwendungen wiederzuverwenden.
Tabellarische Datentypen von ABAP
Auch tabellarische Datentypen gehören zum Kern des ABAP-Sprachumfangs. Über eigene Befehle, die in ABAP integriert sind, haben Anwendende Zugriff auf Tabellenzeilen, Datenbankupdates über Tabelleninhalte usw.
ABAPs „Friends“-Konzept
Ein weiteres Konzept, das ABAP von anderen Programmiersprachen unterscheidet, ist das „Friends“-Konzept: Danach können Objekttypen bzw. Klassen auf private Komponenten anderer Objekttypen bzw. Komponenten zugreifen. Das ist normalerweise nicht möglich, in seltenen Fällen aber erforderlich. Das Friends-Konzept macht’s möglich: Nehmen wir an, Klasse A ist bei Klasse B als Freund registriert und umgekehrt. Dann kann Klasse A auf die privaten Komponenten von Klasse B zugreifen und B auf die privaten Komponenten von A.
Application Server
ABAP läuft auf dem SAP Netweaver Application Server. Dieser ist nicht nur als ABAP-, sondern auch als JAVA-EE-Applikationsserver (oder im Dual-Stack sogar eine Kombination aus beiden) verfügbar. Im Dual-Stock gibt es auch eine Kombination aus beiden. Über Transportaufträge können Sie Softwarekomponenten gebündelt auf dem ABAP-Server transportieren.
Interne Versionsverwaltung
In der Webentwicklung wird die Versionsverwaltung oft in eine externe Software wie GIT ausgelagert – nicht so in ABAP: hier findet die Versionsverwaltung intern statt. Die Anbindung an verwaltete Verzeichnisse zur Speicherung von digitalen Objekten läuft über abapGit.
Abwärtskompatibilität
Der Sprachumfang von ABAP ist größtenteils abwärtskompatibel: Neue Updates führen nicht dazu, dass ältere Versionen ungültig werden. Stattdessen können Anwendende sie weiterhin verwenden. Dass sowohl ältere als auch neuere Befehle parallel bestehen bleiben können, führt zu dem hohen Sprachumfang von ABAP. Allerdings bestätigen auch hier Ausnahmen die Regel, denn bei der Erweiterung ABAP OO gibt es einige Elemente, die nicht mehr zulässig sind.
Grundsätzlich gilt aber, dass alte Entwicklungen funktionsfähig bleiben und nicht bei jedem Upgrade erneuert werden müssen.
Programmiermodelle und Entwicklungsumgebungen
Im Folgenden stelle ich Ihnen die beiden am meisten verbreiteten Entwicklungsumgebungen für die Softwareentwicklung mit ABAP vor:
ABAP (Development) Workbench
ABAP Workbench ist die aktuell dominierende integrierte Entwicklungsumgebung von ABAP in der SAP GUI. Damit ist sie an die Möglichkeiten und Grenzen der SAP User Interface gebunden und so können Nutzende bspw. immer nur eine begrenzte Anzahl an Fenstern gleichzeitig öffnen. Die Workbench bietet Einzeltransaktionen sowie den Editor für ABAP-Programme. Mit den ABAP Development Tools (ADT) können Sie die Entwicklungsumgebung erweitern.
ABAP Development Tools für die Eclipse IDE
Die ABAP Development Tools ermöglichen die Verbindung von Eclipse als Entwicklungsumgebung mit dem ABAP-Backend-Server. Sie werden von SAP bereitgestellt, sodass Nutzende sie in der Open-Source-Software Eclipse IDE installieren können. Die ABAP-Tools ermöglichen es Entwickelnden, alle notwendigen Tätigkeiten integriert in der Eclipse IDE durchzuführen.
Dazu gehören folgende Aufgaben:
- Anlegen von Entwicklungsobjekten (Programme, Klassen, Funktionsbausteine)
- Anlegen von Data-Dictionary-Objekten (Datenelemente oder Tabellen)
- Ausführen des „Codes Inspector/ABAP Test Cockpit“
- Freigabe von Transporten
Die Development-Tools ermöglichen es Entwickelnden zudem, CDS Views und AMDPs anzulegen und zu pflegen. Dies ist im Gegenzug in der Workbench nicht möglich.
Was ist ABAP OO?
ABAP OO ist eine Spracherweiterung von ABAP, die über weitere objektorientierte Sprachelemente und Konzepte verfügt. Dabei können Sie aber weiterhin den Großteil der bestehenden Sprachelemente von ABAP in ABAP OO nutzen. Infolge der Verbindung von ABAP und ABAP OO unterstützt die Sprache nun sowohl das klassische prozedurale als auch das objektorientierte Programmiermodell.
ABAP OO ermöglicht so die Nutzung von:
- Interfaces
- Globalen (auch abstrakten) Klassen
- Lokalen Klassen, die nur in einem Programm/Funktionsbaustein/o. Ä. zur Verfügung stehen
- Vererbungshierarchien und Polymorphien
Wozu die Objektorientierung durch ABAP OO?
Die Integrierung der Objektorientierung ermöglicht es Entwickelnden in ABAP OO, Anwendungen zu modularisieren, um so die Entwicklung zu vereinfachen. Die Objektorientierung verbessert außerdem die Laufzeit-Performance und minimiert unnötige oder konkurrierende Datenbankabfragen.
Mehr Entwicklungsmöglichkeiten durch ABAP
Als herstellergebundene 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. Durch die Erweiterung ABAP OO werden sowohl prozedurale als auch projektorientierte Programmiermodelle unterstützt. Dadurch bietet ABAP für Entwickler viele neue Möglichkeiten an einem zentralen Ort.
Haben Sie Fragen zum Thema ABAP oder ABAP OO? Dann hinterlassen Sie einen Kommentar oder kontaktieren Sie uns gern unter info@erlebe-software.de.
Oder wollen Sie ein ABAP-Entwicklungsprojekt in Ihrem Unternehmen starten? Dann helfen wir Ihnen auch hier gerne weiter! Mit unseren ABAP-Entwicklungspartnern erhalten Sie einen eigenen Partner, der Ihnen bei all Ihren ABAP-Entwicklungs-Wünschen weiterhilft – und das über eine langjährige Partnerschaft wenn Sie wollen!
FAQ
Was ist ABAP?
ABAP ist die proprietäre Programmiersprache von SAP für SAP-Module. Die Abkürzung steht für „Advanced Business Application Programming“ und der Großteil der SAP-Technologien wurden mit dieser Programmiersprache entwickelt.
Wie unterscheidet sich ABAP?
Durch folgende Features unterscheidet sich ABAP von anderen Programmiersprachen:
- Einfache, wiederverwendbare Datenstrukturen
- Integrierte, tabellarische Datentypen
- Das Friends-Konzept erlaubt den Zugriff verschiedener Klassen auf private und öffentliche Komponenten
- Gebündelte Transportaufträge zwischen Systemen über den Application Server
- Interne Versionsverwaltung
- Abwärtskompatibilität
Welche Modelle und Entwicklungsumgebungen bietet ABAP?
ABAP bietet die Development Workbench als integrierte Umgebung und die Development Tools für die Verbindung zu Eclipse IDE an.
Was kann die ABAP-Erweiterung ABAP OO?
Die Erweiterung ABAP OO ergänzt die prozedurale Sprache um objektorientierte Programmiermöglichkeiten und vereinfach so die Entwicklung und minimiert unnötige Datenbankzugriffe.