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, 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 | 7.0 (2004) |
Betriebssystem | Windows, Linux, Mac OS X, uvm. |
Kategorie | 4GL-Sprache |
Lizenz | proprietär |
deutschsprachig | ja |
www.sap.com |
Seit 1990 basieren alle SAP-R/3-Module 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.
Eigenschaften
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 andere Programmiersprachen.
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 kundeneigene (also nicht von SAP stammende) Programme in reservierten Namensräumen liegen müssen. Z* und Y* sind die bekanntesten solchen Namensräume für Reports.DATA WA_TSTC TYPE TSTC
. Diese Anweisung definiert einen Arbeitsbereich (WA = Work Area), der die Struktur einer Zeile der Datenbanktabelle TSTC hat.SELECT * FROM TSTC INTO WA_TSTC
. Hier wird eine Leseschleife 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 SyntaxWRITE: TSTC-Spalte1, TSTC-Spalte2, TSTC-SpalteN.
Der / bewirkt einen Zeilenumbruch.ENDSELECT
.Endselect
beendet eineSELECT
-Schleife.
ABAP Objects
Unter ABAP Objects – auch ABAP OO genannt – versteht man die objektorientierten Erweiterungen der Programmiersprache ABAP. Sie implementiert sämtliche Elemente der objektorientierten Programmierung (OOP) mit Ausnahme von Mehrfachvererbung und dem Überladen von Methoden. Dafür werden Interfaces sowie optionale Parameter unterstützt. Mit speziellen RTTI-Klassen ist auch reflektive Programmierung möglich, ab der Version 6.40 sogar (eingeschränkt) die dynamische Erzeugung neuer Typen.
ABAP Objects ist ab SAP Release 4.6 verfügbar und wird seitdem beständig weiterentwickelt und z. B. durch Object-Services ergänzt. Die objektorientierten Sprachelemente sind Voraussetzung für die Entwicklung von modernen Benutzeroberflächen mit Controls sowie für die Realisierung von Webanwendungen und XML-Services in ABAP. Große Teile der ABAP Workbench selbst sind objektorientiert in ABAP Objects implementiert.
Literatur
- Horst Keller: ABAP-Referenz. Galileo Press, 2004, ISBN 3-89842-444-8
- Horst Keller: ABAP-Schnellreferenz. Galileo Press, 2005, ISBN 3-89842-680-7
- Horst Keller, Sascha Krüger: ABAP Objects – ABAP-Programierung mit SAP NetWeaver. Galileo Press, 2006, ISBN 3-89842-358-1
Weblinks
- ct-software.de/reportpool.htm - Sammlung von ABAP™ Programmbeispielen (freeware). Die ABAP™-Programme unterteilen sich in die Bereiche 'Learning' und 'Work programs'
- help.sap.com - am Besten rechts oben auf "Search Documentation" klicken und anschließend "SAP R/3 and R/3 Enterprise" markieren
- Tricktresor: Hinweise, Tipps und Tricks zu ABAP
- ABAP Info beim SAP Developer Network
- 4ap.de = Viele einführende Infos zu ABAP und SAP
- http://puppylinux.abcde.biz/cms/?SAP_Abap_Programme
- ABAPforum.com - Größte deutsche Forum rund um ABAP