ABAP ist eine von SAP entwickelte Programmiersprache für die Entwicklung von kommerziellen Anwendungen im SAP-Umfeld. Der Bestandteil
ABAP Objects ermöglicht die objektorientierte Programmierung.
ABAP ist die Programmierschnittstelle des Application
Server ABAP (AS ABAP) in SAP NetWeaver. Voraussetzung für die Verwendung der Programmiersprache
ABAP ist die Installation eines Application Server ABAP. Die meisten Komponenten eines AS ABAP lassen
sich gemäß ihren Aufgaben in die Schichten einer dreistufigen Client-Server-Architektur mit einer Präsentations-, einer Applikations- und einer Datenbankschicht einordnen.
Die Präsentationsschicht
ist auf die Einzelplatzrechner der einzelnen Anwender verteilt und stellt die Benutzungsoberfläche eines AS ABAP dar (
SAP GUI oder Web-Browser).
Dies ist die klassische funktionale Schnittstelle des AS ABAP. Ein Remote Function Call ist ein Aufruf
einer Funktion in einem anderen System als das, in dem das aufrufende Programm läuft. Aufrufe
sind möglich zwischen verschiedenen AS ABAP oder zwischen einem AS ABAP und einem Fremdsystem.
Auf einem AS ABAP sind die Funktionen durch Funktionsbausteine realisiert. In Fremdsystemen werden speziell programmierte Funktionen aufgerufen, deren Schnittstelle einen Funktionsbaustein simuliert.
Der Internet Communication Manager ist ein Prozess des AS ABAP, der diesem die direkte Kommunikation
mit dem Internet über HTTP/HTTPS/SMTP erlaubt. Zu einen dient der ICM zum Anschluss von Web-basierten Präsentationskomponenten wie
SAPUI5,
Web Dynpro ABAP und
BSP, zum anderen erlaubt es der
ICM einem AS ABAP sowohl als Client als auch als Server für Web Services zu dienen. Der Zugriff auf den ICM aus ABAP-Programmen erfolgt über die Klassen und Interfaces des
Internet Communication Framework (ICF).
ABAP Channels sind ein Framework für die ereignisbasierte Kommunikation zwischen Applikationsservern und mit dem Internet. Während
ABAP Messaging Channels (AMC) dem Austausch von Nachrichten zwischen ABAP-Programmen verschiedener Applikationsserver dienen, erlauben
ABAP Push Channels (APC)
eine bidirektionale Kommunikation zwischen einem AS ABAP und dem Internet über das WebSocket- oder TCP-Socket-Protokoll.
Die wesentliche Rolle von ABAP-Programmen in der Applikationsschicht ist die Verarbeitung und Aufbereitung
von Daten aus der Datenbankschicht und ihre Übergabe an die bzw. die Entgegennahme von Eingaben der Präsentationsschicht oder der Kommunikationskomponenten.
Programmiermodelle
ABAP unterstützt
ein auf Klassen und
Interfaces basierendes objektorientiertes Programmiermodell,
Für neue Projekte und das Redesign bestehender Projekte wird die weitestgehende Verwendung von ABAP Objects empfohlen.
Datenbankzugriffe
Eine der wesentlichen Eigenschaften von ABAP als Programmiersprache kommerzieller Anwendungen ist der vollständig in die Sprache integrierte Zugriff auf Datenbanktabellen.
Datenmodellierung
Die ABAP-Datenmodellierung erlaubt es, Datenmodelle für kommerzielle Anwendungen zu erstellen, die auf der Datenbank ausgeprägt werden:
Das ABAP Dictionary
ist eine persistente Ablage für Datentypen und deren Beziehungen, die in allen anderen Entwicklungsobjekten
sicht- und verwendbar sind. Das ABAP Dictionary verwaltet die Datenbanktabellen, Views und Sperrobjekte der zentralen Datenbank eines AS ABAP.
Der Zugriff auf die Daten von Datenbanktabellen ist vollständig in ABAP integriert:
Open SQL ermöglicht
einen in die Sprache integrierten plattformunabhängigen Datenbankzugriff auf die im ABAP Dictionary oder in ABAP CDS definierten Datenbankobjekte mit automatischer
Mandantenbehandlung. Die Performance dieser Zugriffe kann durch die in die ABAP-Laufzeitumgebung integrierte
SAP-Pufferung optimiert werden.
Native SQL ermöglicht den plattformabhängigen Zugriff auf Datenbanken. Dabei ist mit
ADBC ein klassenbasierter genereller Zugriff auf alle Datenbanken möglich. Mit
AMDP können Datenbankprozeduren und -funktionen der
SAP-HANA-Datenbank verwaltet und aufgerufen werden.
Spezielle Merkmale
ABAP ist eine 4GL-Sprache, die speziell für die Massendatenverarbeitung in kommerziellen Anwendungen
entwickelt wurde und hat neben dem integrierten Datenbankzugriff u.a. folgende Merkmale im Vergleich zu elementareren Sprachen, in denen solche Funktionen in aller Regel in Bibliotheken liegen:
Interne Tabellen für die dynamische Speicherung und Bearbeitung von tabellarischen Massendaten im Arbeitsspeicher.
In die ABAP-Laufzeitumgebung integriertes LUW-Konzept, bei dem viele Benutzer gleichzeitig auf die zentrale Datenbank zugreifen.
In die Sprache integrierte Schnittstelle zu anderen Programmierumgebungen über Remote Function Call.
Die Integration solcher Funktionen in die Sprache ist im Wesentlichen vorteilhaft für die statische
Überprüfbarkeit und die Performance von Programmen. Im Gegenzug enthält ABAP dadurch auch wesentlich mehr Sprachelemente als eine elementare Programmiersprache.
Mehrsprachigkeit
ABAP-Programme können völlig sprachunabhängig programmiert werden, indem sprachenspezifische
Programmteile aus dem Quelltext ausgelagert und bei der Programmausführung umgebungsabhängig geladen werden. Eine
Textumgebung bestimmt das genaue Programmverhalten, wie z.B. die Reihenfolge bei Textsortierungen, zu Laufzeit.