ABAP

E-Book: ABAP Entwicklungsrichtlinien

Richtlinien zur Programmierung und Praxistipps zum Thema APAP-Entwicklung.

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. 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.

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 ABAP 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.

SAP Netweaver 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 ABAP 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

Im Vergleich zum klassischen ABAP 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.

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 ABAP vereint die ABAP 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 ABAP 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 ABAP Workbench, ABAP 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 für ABAP. 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!


Mehr von unseren Partnern


Unsere Produkte zu ABAP

Ein wichtiger Schritt in Richtung des neuen SAP Frameworks for Digital Business ist die in-memory Datenbank SAP HANA. Für bestehende SAP Kunden ist vor allem wichtig: Wie schaffe ich das richtige Knowhow im IT-Team, um mit der SAP HANA Datenbank …

Mehr Informationen

Als SAP ABAP Entwickler erarbeiten Sie sich über die Zeit einen eigenen Stil und lösen Probleme auf Ihre Weise. Aber was ist, wenn es die ganze Zeit einfacher oder anders geht? Was wäre, wenn es hilfreiche Tools gibt, die Sie nicht kennen? Wie lösen eigentlich andere diese Anforderungen? Und welche Trends gibt es in der ABAP Entwicklung, die Sie in Ihre tägliche Arbeit integrieren können?

Mehr Informationen

Haben Sie ein gutes Gefühl was die Code-Qualität Ihrer Kundenentwicklungen im SAP angeht? Wenn bei Lesbarkeit, Dokumentation, Modularisierung oder systematischer Transport- & Releasestrategie noch Luft nach oben ist, dann sollten wir uns unterhalten.

Mehr Informationen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Angebot anfordern
Preisliste herunterladen
Expert Session
Support