Die Historie der SAP-Programmiersprache ABAP

ABAP® ist die Programmiersprache zum Produkt SAP R/3 ®. Die Entwicklungsumgebung wird im Paket mit SAP R/3 ® verkauft, ist jedoch auch einzeln erhältlich. Zum Testen wird jedoch ein laufendes SAP R/3 ® - System benötigt. Nur der eigentliche Kernel von SAP R/3 ® ist in C geschrieben. Das, was der normale User so sieht oder das, was in der Workbench (der Entwicklungsumgebung) zu sehen ist, sind alles ABAP® -Programme.


Aus Andreas Baldauf´s Posting in der de.alt.comp.sap-r3 Newsgroup [Wed, 10 Oct 2001 13:36:04 GMT ] einige Infos zur Geschichte von ABAP®:
ABAP® war früher (SAP R/2®) die Abkürzung für "Allgemeiner Berichts- (und) Aufbereitungs-Prozessor". Heute steht ABAP® für "Advanced Business (and) Application Programming". Geschichte von ABAP®:

SAP R/1® und später SAP R/2® waren in Assembler programmiert. Auswertungen waren eine Folge von Assembler-Makros und -Anweisungen. <snipp>
Die daraus erzeugte Ladephase wurde von einem Interpreter im Batch abgearbeitet. Im Online waren diese Auswertungen nicht lauffähig.
Das Erzeugen der Listen und Extrakte erfolgte normalerweise in 2 Phasen:
1. Phase
   - Selektion: Daten wurden selektiert und auf ein seq. Datei geschrieben.
   - Sortierung: Die seq. Datei wurde sortiert.
2. Phase
   - Aufbereitung: Die seq. Datei wurde gelesen, evtl. verdichtet und ausgegeben.
Das Erzeugen der Auswertungen war sehr aufwendig.

Daher hat SAP im R/2® (ab Release 4.0 ?) ABAP/3 (bzw. ABAP/III) entwickelt.
ABAP/3 Programme bestanden aus Befehlen, die bereits eine gewisse Ähnlichkeit mit ABAP/4® (bzw. COBOL) Befehlen hatten (GET xx., MOVE, COMPUTE, WRITE ...).
Die ABAP/3 Programme wurden durch einen Preprozessor in Assembler-Makros und -Anweisungen konvertiert. Auch diese Programme waren nur im Batch lauffähig ("2 phasiger" ABAP®).

Ebenfalls ab Release 4.0 (?) konnten ABAP/4® Programme ("einphasiger" ABAP®) entwickelt werden. Diese Programme waren im Online und im Batch lauffähig. Es konnten jedoch nur Listen und Extrakte erzeugt werden.

Erst ab Release 4.3 konnten in ABAP/4® auch Transaktionen mit Dynpros und Modulpools entwickelt werden.
Kleine Ergänzung von Mathias Gebhardt: ...ist auch die Zeit, aus der die Bezeichnung "Report" für Programm stammt. Ursprünglich wurden mit ABAP "nur" Berichte (also Reports) geschrieben.


Das Besondere an ABAP® ist, dass sich die Bestandteile der Programmiersprache dem Konzept zur Gestaltung von Programmen im R/3® unterordnen (z.B. dem Dynpro-Konzept). ABAP® besteht aus Anweisungen, die speziell für einen genau definierten Programmtyp mit vorgegebener Funktionalität und Struktur entworfen wurden. Der Sprachumfang von ABAP® entspringt keinem Standard sondern ist völlig frei und wird auch immer wieder erweitert. Es erschließen sich viele Befehle und ihre Bedeutungen erst mit dem dazugehörenden Programmierkonzept.

Und die Zukunft???


ABAP® wird mittelfristig nur zum Teil von JAVA® abgelöst werden. Die neueste SAP-Entwicklung, der WAS ist schon mit Java programmierbar. Allerdings wird man mindestens für die nächsten 10 Jahre noch ABAP-Programmierer benötigen, da sehr viele momentan produktiven Systeme noch kein JAVA verstehen. Weiteres zum Thema unter dem Shortcut j2ee. Wenn man bedenkt, daß ich auch im Jahre 2004 noch ganz heftig in R2-Systemen programmierte, dann kann man vielleicht erahnen wie 'langlebig' einen Programmiersprache ist. Auch wenn diese Systeme schon länger 'aus der Wartung' sind. Programmierbedarf besteht auch weiterhin. Und sei es für einen Migration in ein moderneres System.
 
Ganz eng verbunden mit der Sprache ist auch die Entwicklungsumgebung. Auch dort sind große Fortschritte zu vermelden. Zwar läuft das in der ABAP-Welt alles ein wenig gemächlicher ab (z.B. farbiges Syntax-Highlighting ließ lange auf sich warten) aber die Werkzeuge sind mittlerweile groß und mächtig geworden. Das Debuggen von Programmen (also die schrittweise Abarbeitung) ist in den neuesten Versionen (ab 6.20) super komfortabel geworden.