ABAP
ABAP ist eine proprietäre Programmiersprache der Softwarefirma SAP, die für die Programmierung von kommerziellen Anwendungen im SAP-Umfeld entwickelt wurde. Ursprünglich stand die Abkürzung für "Allgemeiner Berichts-Aufbereitungs-Prozessor" da mit dieser Sprache nur kundenspezifische Auswertungen programmiert werden konnten, aber keine Datenbankveränderungen vorgenommen werden konnten. Im Zuge der Weiterentwicklungen der Sprache steht die Abkürzung nun für "Advanced Business Application Programming". Der Sprachumfang ist nicht fest definiert und wurde in der Vergangenheit immer wieder erweitert, z.B. um die objektorientierten Sprachbefehle von ABAP Objects.
ABAP | |
---|---|
Basisdaten
| |
Entwickler | SAP AG |
Erscheinungsjahr | 1983 |
Aktuelle Version | Release 7.0 in SAP NetWeaver 2004s |
Betriebssystem | Windows, Linux, Mac OS X, uvm. |
Kategorie | 4GL-Sprache |
Lizenz | kommerziell |
deutschsprachig | ja |
http://www.sap.com |
Seit 1990 basiert das gesamte SAP-System auf ABAP. Seit der Einführung von SAP NetWeaver bietet die SAP neben ABAP auch eine Programmierumgebung für Java und dementsprechend einen ABAP-basierten und einen Java-basierten Applikationsserver an.
ABAP ist eine 4GL-Sprache, die speziell für die Massendatenverarbeitung in kommerziellen Anwendungen entwickelt wurde und bietet u.a. folgende Vorteile gegenüber elementareren Sprachen, in denen solche Funktionen in Bibliotheken liegen:
- Als Open SQL in die Sprache integrierter Datenbankzugriff.
- In die ABAP-Laufzeitumgebung integrierte Performance-Optimierung von Datenbankzugriffen über die SAP-Pufferung.
- Interne Tabellen für die dynamische Speicherung und Bearbeitung von tabellarischen Massendaten im Arbeitsspeicher.
- In die ABAP-Laufzeitumgebung integriertes Konzept des Online Transaction Processing (OLTP), bei dem viele Benutzer gleichzeitig auf die zentrale Datenbank zugreifen.
- In die Sprache integrierte Schnittstelle zu anderen Programmierumgebungen über Remote Function Call.
- In die Sprache integrierte Schnittstelle zu XML.
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.
ABAP unterstützt ein auf Unterprogrammen und Funktionsbausteinen basierendes prozedurales und ab Release 6.10 ein auf Klassen und Interfaces basierendes objektorientiertes Programmiermodell. Beide Modelle sind interoperabel.
ABAP Workbench
Die Programmierung in ABAP wird durch eine Entwicklungsumgebung unterstützt, die darauf ausgerichtet ist, große Projekte mit mehreren (hunderten) Entwicklern zu ermöglichen. Hierbei muss zu jeder Zeit ein lauffähiges System gewährleistet bleiben. Hierzu werden die geänderten Objekte auf sog. Transportaufträgen erfasst, welche bei Freigabe auf das Filesystem exportiert werden, und in Folgesysteme importiert werden können. Durch diesen Mechanismus kann die Entwicklung der Programme von ihrem produktiven Einsatz getrennt erfolgen.
Die Entwicklungsumgebung zur Programmiersprache ABAP ist die ABAP Workbench. In der ABAP Workbench (Einstieg über den so genannten Object Navigator, Transaktion SE80) können jedoch auch andere Objekte wie z.B. BSP (Business Server Pages, mit HTML-Anteilen) bearbeitet werden.
Das Besondere ist die sogenannte 'Vorwärtsnavigation'. So führt ein Doppelklick auf einen Tabellennamen direkt zur Definition der Datenbanktabelle im ABAP Dictionary oder auf einen Methodennamen direkt in diese Methode.
Die ABAP-Workbench ist ein mächtiges Werkzeug, das Zug um Zug an die Anforderungen moderner Software-Entwicklung angepasst wird. Seit dem letzten Release wird beispielsweise auch Syntax-Highlighting unterstützt.
Codebeispiel
Das nachfolgende Programm gibt den Inhalt der Tabelle TSTC (enthält SAP-Transaktionscodes) zeilenweise aus.
REPORT ZTEST. DATA WA_TSTC TYPE TSTC. SELECT * FROM TSTC INTO WA_TSTC. WRITE:/ WA_TSTC. ENDSELECT.
- REPORT ZTEST. Beschreibt den Typ (REPORT) und den Namen (ZTEST) des Programms. Der Name richtet sich nach den Namenraumskonventionen, die besagen, dass eigene (also nicht von SAP stammende) Programme in den Namensräumen Z* oder Y* liegen müssen.
- DATA WA_TSTC TYPE TSTC. Diese Anweisung erstellt (deklariert) einen Arbeitsbereich (WA = Work Area), welcher die Struktur (Zeilenaufbau) der Datenbanktabelle TSTC übernimmt.
- SELECT * FROM TSTC INTO WA_TSTC. Hier wird eine Selektionsschleife geöffnet. Der Stern indiziert, dass alle Spalten der Datenbanktabelle TSTC (= 1 Datensatz) in den Arbeitsbereich WA_TSTC im Arbeitsspeicher geschrieben werden sollen.
- WRITE:/ WA_TSTC. Der Datensatz im Arbeitsbereich wird ausgegeben. Diese Syntax ist nur sinnvoll, wenn die Struktur aus einer Spalte besteht. Ansonsten sollte man sich mit TSTC-Bindestrich-Spalte explizit auf eine Spalte beziehen. Sollen also einzelne Datenfelder ausgegeben werden, so lautet die Syntax WRITE: TSTC-Spalte1, TSTC-Spalte2, TSTC-SpalteN. Der / deutet einen Zeilenumbruch an.
- ENDSELECT. Endselect beendet eine Select-Schleife.