Die Programmiersprache ABAP/4 - Abkürzung für "Advanced Business Application Programming, 4th generation language" - ist die konzerneigene Programmiersprache der deutschen Firma SAP AG und zentraler Bestandteil ihrer Software-Produkte. SAP, der drittgrößte Softwarekonzern der Welt, ist ein Hersteller betrieblicher Standardsoftware mit dem Schwerpunkt auf "Enterprise Resource Planning" und besitzt im 1. Quartal 2004 einen um 3% gesteigerten weltweiten Marktanteil von 54% in diesem Segment.
Im Umfeld des wichtigsten SAP-Produktes, dem modularen Gesamtsystem "R/3" mitsamt seinen aktuellen Erweiterungen "mySAP Technologie" und "SAP NetWeaver" zur Unterstützung moderner Technologien wie Internet und Java, spielt ABAP eine entscheidende Rolle. Sämtliche R/3-Module sowie Teile des Basissystems wurden von SAP in ABAP erstellt. SAP stellt auch eine eigene ABAP-Entwicklungsumgebung
zur Verfügung, mit der vorhandene Geschäftsmodule angepasst oder neue Programme hinzugefügt werden können.
Aus dieser Bedeutung ergibt sich die Motivation, sich näher mit dieser SAP-eigenen Programmiersprache zu befassen. Im Folgenden wird im zweiten Kapitel zunächst auf grundlegende Eigenschaften der Sprache ABAP und ihres SAP-Entwicklungsumfeldes eingegangen. Im dritten Kapitel werden die besonders hervorstechenden Merkmale, die ABAP von herkömmlichen Programmiersprachen unterscheiden, untersucht sowie die wichtigsten, ABAP zugrunde liegenden Konzepte betrachtet. Seit neuestem konzentriert sich SAP auch auf die Einbeziehung von Java als gleichberechtigte Sprache neben ABAP. Daher wird abschließend ein Ausblick auf die zu erwartende zukünftige Bedeutung der Sprache ABAP im SAP-Kontext gegeben.
Inhaltsverzeichnis
1 Einleitung
2 Grundlegendes über ABAP
2.1 Entstehungsgeschichte des modernen ABAP
2.2 Grundlegende Sprachprinzipien von ABAP
2.3 Umfeld und Anwendungsgebiete von ABAP
3 Besonderheiten und Konzepte von ABAP
3.1 Abgrenzung und Unterschiede zu herkömmlichen Programmiersprachen
3.2 Untersuchung wesentlicher Konzepte von ABAP
3.2.1 Integrierte Tabellenverarbeitung
3.2.2 Datentypen und Data Dictionary
3.2.3 Objektorientierung
3.2.4 Ereignisverarbeitung
4 Ausblick: Zukunftspotentiale und weitere Entwicklung
Anhang A: Quicksort in ABAP
Anhang B: Quicksort in JAVA
Anhang C: Syntax von ABAP anhand von Beispielen
Anhang D: Quelltextbeispiele zur Objektorientierung
Literaturverzeichnis
1 Einleitung
Die Programmiersprache ABAP/4 - Abkürzung für „Advanced Business Application Programming, 4th generation language“ - ist die konzerneigene Programmiersprache der deutschen Firma SAP AG und zentraler Bestandteil ihrer Software-Produkte. SAP, der drittgrößte Softwarekonzern der Welt [vgl. FK03, S.19], ist ein Hersteller betrieblicher Standardsoftware mit dem Schwerpunkt auf „Enterprise Resource Planning“ und besitzt im 1. Quartal 2004 einen um 3% gesteigerten weltweiten Marktanteil von 54% in diesem Segment [vgl. IQ1].
Im Umfeld des wichtigsten SAP-Produktes, dem modularen Gesamtsystem „R/3“ mitsamt seinen aktuellen Erweiterungen „mySAP Technologie“ und „SAP NetWeaver“ zur Unterstützung moderner Technologien wie Internet und Java, spielt ABAP eine entscheidende Rolle. Sämtliche R/3-Module sowie Teile des Basissystems wurden von SAP in ABAP erstellt [vgl. KK00, S.19]. SAP stellt auch eine eigene ABAP-Entwicklungsumgebung zur Verfügung, mit der vorhandene Geschäftsmodule angepasst oder neue Programme hinzugefügt werden können.
Aus dieser Bedeutung ergibt sich die Motivation, sich näher mit dieser SAP-eigenen Programmiersprache zu befassen. Im Folgenden wird im zweiten Kapitel zunächst auf grundlegende Eigenschaften der Sprache ABAP und ihres SAP-Entwicklungsumfeldes eingegangen. Im dritten Kapitel werden die besonders hervorstechenden Merkmale, die ABAP von herkömmlichen Programmiersprachen unterscheiden, untersucht sowie die wichtigsten, ABAP zugrunde liegenden Konzepte betrachtet. Seit neuestem konzentriert sich SAP auch auf die Einbeziehung von Java als gleichberechtigte Sprache neben ABAP [vgl. FK03, S.16]. Daher wird abschließend ein Ausblick auf die zu erwartende zukünftige Bedeutung der Sprache ABAP im SAP-Kontext gegeben.
Übereinstimmend mit dem Seminarthema werden „ABAP Objects“ und „ABAP/4“ in diesem Text der Einfachheit halber „ABAP“ genannt, gemeint ist jedoch der momentan aktuelle Stand der Sprache. „ABAP Objects“ beinhaltet nach wie vor alle Konzepte und Komponenten von „ABAP/4“.
2 Grundlegendes über ABAP
2.1 Entstehungsgeschichte des modernen ABAP
Die COBOL-basierte Sprache ABAP kann bereits auf eine lange Evolutionsgeschichte zurückblicken [vgl. MEN00, S.57]. In den 70er Jahren war ABAP noch keine Hochsprache, sondern lediglich ein Hilfsmittel zur Erstellung von Berichten. Die Abkürzung ABAP stand damals noch für „Allgemeiner Berichts-Aufbereitungs-Prozessor“ [vgl. KK00, S.19]. Im Zuge der SAP „R/2“-Einführung seit 1981 avancierte ABAP zur vollwertigen Programmiersprache, das heißt, sie beinhaltet nun auch wesentliche Sprachelemente wie Verzweigungen, Schleifen und logische Ausdrücke [vgl. FK03, S.113].
Mit dem Erscheinen der neuen und aktuellen SAP-Architektur „R/3“ fand 1993 auch der Namenswechsel von ABAP zu „Advanced Business Application Programming“ statt und die Sprache wurde durch den Zusatz „/4“ offiziell als Programmiersprache der vierten Generation gekennzeichnet [vgl. KK00, S.19]. Den vorerst letzten Evolutionsschritt vollzog ABAP im Jahr 2000, als die Sprache, parallel zur neuen Web-Unterstützung der SAP-Produkte, um grundlegende objektorientierte Komponenten erweitert wurde. Seitdem heißt die Sprache offiziell „ABAP Objects“ [vgl. FK03, S.23].
2.2 Grundlegende Sprachprinzipien von ABAP
Während Java oder C++ als Allzweck-Sprachen gelten, dient ABAP dem speziellen Zweck der Entwicklung betriebswirtschaftlicher Anwendungen [vgl. FK03, S.331]. Wie bei Perl oder JavaScript handelt es sich bei ABAP um eine Interpreter-Sprache [vgl. IQ2], bei der der auszuführende Code nicht vorab vollständig in Maschinencode, sondern lediglich in einen Zwischencode übersetzt wird. Ein Interpreter wandelt dann erst zur Programmlaufzeit jede Befehlszeile einzeln um und sendet sie zur Ausführung zum Prozessor [vgl. FK03, S.20-24].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1: Der Vorgang der Quelltextübersetzung bei ABAP [FK03, S.58]
Der Vorteil gegenüber einer reinen Compiler-Sprache wie C++ sind unkompliziertere Quelltextübersetzungen („Builds“), denn jedes Entwicklungsobjekt wird für sich allein genommen übersetzt. Der Austausch einzelner Entwicklungsobjekte gegen neue ist daher einfacherer [vgl. FK03, S.57-58]. Damit geht allerdings der Nachteil einher, dass das Programm während der Laufzeit weniger performant ist, da ein Teil der Übersetzungen erst bei der Ausführung geschieht.
Wie SQL und Matlab ist ABAP, anders als Java, C und Visual Basic, eine Sprache der vierten Generation. Solche Sprachen werden dadurch gekennzeichnet, dass sie sich nah an einer Naturalsprache, also der Sprache von Menschen, befinden. Solche Sprachen beinhalten sehr leistungsfähige und von der Hardware abstrahierende Sprachelemente, insbesondere integrierte Befehle zur Verarbeitung von Tabellen- bzw. Datenbank-Inhalten, z.B. mit integrierten SQL-Befehlen. Ein Beispiel aus ABAP hierfür ist der LOOP -Befehl (siehe Abschnitt 3.2.1) [vgl. FK03, S.113]. ABAP besitzt zusätzlich eigene Befehle zur Kommunikation zwischen Prozessen, welche ansonsten vom Betriebssystem bereit gestellt werden.
Es existieren zwei wesentliche grundlegende Programmiermodelle: das prozedurale und das objektorientierte. Während im prozeduralen Modell nur der Quelltext zum Zwecke der Wiederverwendbarkeit mittels Unterprogrammen und Funktionen gegliedert wird, fassen objektorientierte Sprachen die Daten und den Code jeweils zu wiederverwendbaren Einheiten zusammen [vgl. FK03, S.331]. Seit dem Jahr 2000 beinhaltet ABAP beide Modelle, wobei dem Programmierer freie Hand gelassen wird, welches er verwenden möchte. Anders als bei „streng“ objektorientierten Sprachen wie z.B. Eiffel ist in ABAP auch eine Mischung der beiden Modelle in einem Programm möglich [vgl. KK00, S.20].
Parameter können an aufzurufende Funktionen entweder als Referenz auf dieselbe Speicherstelle oder als eine neue Kopie im Speicher übergeben werden, wie es z.B. in Java ausschließlich der Fall ist [vgl. IQ3]. Diese beiden Übergabekonzepte werden in der Software-Entwicklung als „Call by reference“ bzw. „Call by value“ bezeichnet. ABAP verwendet prinzipiell die Übergabe von Referenzen, jedoch ist es auch möglich, Parameter fallweise als Wert zu übergeben, indem sie mit dem Schlüsselwort VALUE ([Parameter]) umschlossen werden [vgl. FK03, S.165].
2.3 Umfeld und Anwendungsgebiete von ABAP
Bei ABAP handelt es sich um eine weltweit täglich im Praxiseinsatz stehende Sprache mit über einer Million registrierten Entwicklern [vgl. FK03, S.9]. Aus diesem Grund sind auch Entwicklungsumfeld und Anwendungsgebiete von ABAP Schwerpunkte dieser Untersuchung.
Die fundamentale Aufgabe von ABAP-Programmen ist die benutzergesteuerte Verarbeitung von Daten aus der Datenbank [KK00, S.83]. Da tendenziell große Firmen mit Tausenden von Mitarbeitern und umfangreichen Massendaten SAP einsetzen, gibt es spezielle Schwerpunkte bei den Anforderungen an ABAP-Programme. Besonderer Wert wird auf Multi-User-Fähigkeit, hohe Datenverarbeitungsgeschwindigkeit sowie langfristige Zuverlässigkeit gelegt [vgl. FK03, S.11]. Daten betriebswirtschaftlicher Anwendungen liegen oft in tabellarischer Form vor und sind eher in Datenbanken als in Dateien gespeichert. Daher werden in ABAP, anders als in herkömmlichen Sprachen, Programme und Daten grundsätzlich in einer Datenbank gespeichert [vgl. FK03, S.199]. In diesen Gebieten liegen daher die Vorteile von ABAP, das sich durch eine sprachliche Unterstützung zur Arbeit mit Tabellen auszeichnet.
Besonders auffällig bei der Betrachtung der proprietären Sprache ABAP ist, dass in ihr erstellte Programme im Gegensatz zu vielen anderen geläufigen Sprachen nicht eigenständig lauffähig sind. Es ist, anders als in C oder Java, nicht möglich, eine Binärdatei zu kompilieren, die unmittelbar von einem echten oder virtuellen Prozessor ausgeführt werden kann. Stattdessen benötigt ein ABAP-Programm zwangsläufig ein SAP-Basis-System, in dessen Umfeld es ausgeführt wird. Die folgende Darstellung verdeutlicht die Drei-Schichten-Architektur eines SAP-R/3-Systems und die Stellung von ABAP-Anwendungen [vgl. KK00, S.84].
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2: Client-Server-Architektur des SAP-Systems mit Einordnung von ABAP-Anwendungen
Die drei Schichten dieses Modells deuten bereits auf die Möglichkeit der physischen Trennung einzelner SAP-R/3-Komponenten zur besseren Lastenaufteilung hin. Im Einzelnen nimmt ein Dispatcher zur Lastenaufteilung Anforderungen der einzelnen GUIs entgegen und verteilt diese auf Workprozesse, von denen jeder Server mehrere besitzt. Die Abbildung zeigt weiterhin, dass das Basis-System für eine ABAP-Anwendung ein notwendiger Mittler zwischen den Benutzern und dem Datenbanksystem ist. ABAP-Anwendungen benötigen zwar ein Basis-System, sind aber unabhängig von Hardware und Betriebssystem ausführbar [vgl. KK00, S.85].
Teil des SAP-Basis-Systems ist auch eine umfangreiche Entwicklungsumgebung, die „ABAP Development Workbench“. Vergleichbar mit Produkten wie z.B. „Borland JBuilder“ für Java stellt auch die ABAP-Entwicklungsumgebung alle wesentlichen Werkzeuge zur Software-Entwicklung wie Editor und Debugger zur Verfügung. Hervorzuheben ist, dass es in der ABAP Workbench sogar Werkzeuge zur Laufzeitanalyse und -optimierung der Programme gibt [vgl. WEN01, S.179]. Außergewöhnlich und hilfreich ist auch die Fähigkeit der ABAP-Entwicklungsumgebung, Funktionen losgelöst vom Gesamtprogramm zu testen und ihre ein- und ausgehenden Parameter künstlich zu pflegen [vgl. FK03, S.171].
Da SAP den größten Teil seiner Neuentwicklungen selbst in ABAP entwickelt, gibt es umfassende von SAP vorgegebene Programmierrichtlinien, an die sich externe Entwickler zu halten haben [vgl. FK03, S.467-476]. Die wichtigsten dieser auf Softwarequalität und Wartbarkeit abzielenden Maßnahmen sind:
- Separate Entwicklungsklassen zur Strukturierung größerer Projekte
- Reservieren von Namensräumen für Objekte bei SAP. Durch weltweit einmalige Objektnamen ist problemloses Portieren auf andere SAP-Systeme möglich
- Namenskonventionen für Variablen und Datenelemente
- Vorgabe eines Schichtenmodells mit vier Schichten zur Gruppierung verwendeter Funktionen nach deren Aufgaben. Dies dient der besseren Abgrenzung und Aufteilung der Entwicklung in größeren Projektteams [vgl. FK03, S.415-416]
In den betriebswirtschaftlichen Modulen des R/3-Systems ist üblicherweise ein sogenannter „User Exit“ vorhanden. Bei diesem handelt es sich um eine Programmierhülse, also eine Schnittstelle, die ABAP-Entwickler nutzen können, um an den jeweiligen Modulen Erweiterungen vorzunehmen. Solche Erweiterungen können beispielsweise eine zusätzliche Prüfung oder ein zusätzlichen Feld auf der Bildschirmmaske sein. Vorteilhaft bei diesem Vorgehen ist, das solche individuellen Erweiterungen auch nach einem Release-Wechsel von SAP und einer damit einhergehenden Aktualisierung der jeweiligen Anwendung erhalten bleiben können, da die Schnittstellen gleich bleiben. ABAP ist ein wichtiges Werkzeug zur flexiblen Anpassung der vorgegebenen Anwendung an das jeweilige Unternehmen.
Erwähnenswert ist die Fähigkeit von ABAP und seiner Entwicklungsumgebung zur expliziten Unterstützung von mehrsprachigen Applikationen. Gerade in einer Welt zunehmender Globalisierung und Vernetzung verschafft diese Fähigkeit ABAP - und damit SAP - einen Vorteil, den andere Sprachen nicht besitzen [vgl. FK03, S.133]. Textelemente für die Benutzeroberfläche wie Feldbeschreibungen und Listenüberschriften werden multilingual außerhalb der Programme in einer Tabelle gepflegt. Die Tabelleninhalte sind aus dem Quelltext heraus wie eine Konstante ansprechbar. Je nach eingestellter Landessprache des Benutzers bei der Anmeldung an das SAP-System werden in der laufenden ABAP-Anwendung dann automatisch die richtigen Texte ausgewählt und angezeigt [vgl. FK03, S.133].
[...]
- Arbeit zitieren
- Dipl. Wirt.-Inf. Markus Dreßler (Autor:in), 2004, APAB/4 - Programmiersprache der SAP, München, GRIN Verlag, https://www.grin.com/document/33034
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.