Entwicklung im SAP-System

Was ist ABAP?

Advanced Business Application Programming

ABAP ist die von SAP entwickelte Programmiersprache, in der große Teile der SAP-Anwendungen selbst geschrieben sind und in der Unternehmen ihre Erweiterungen umsetzen. Der Code läuft nicht auf einem Arbeitsplatzrechner, sondern im Application Server unmittelbar neben der Datenbank.

Wenn im SAP-System eine Auswertung fehlt oder ein Prozess anders laufen soll als im Standard vorgesehen, landet die Aufgabe fast immer bei jemandem, der ABAP schreibt.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Steht für
Advanced Business Application Programming
Läuft auf
Dem Application Server, nicht am Arbeitsplatz
Typisch bei
Eigenentwicklungen, Reports, Schnittstellen
Neuere Variante
ABAP Cloud mit eingeschränktem Sprachumfang

Was ABAP von anderen Sprachen unterscheidet

Der erste Unterschied ist der Datenbankzugriff, denn der gehört zur Sprache selbst. Eine Abfrage steht als SELECT direkt im Quelltext, ohne zusätzliche Bibliothek, und die Datenbankschnittstelle des Systems übersetzt sie für die darunterliegende Datenbank. Genau deshalb entscheidet die Art, wie du diese Abfragen schreibst, stärker über die Laufzeit als alles andere im Programm.

Der zweite Unterschied ist die Ablage. Ein ABAP-Programm liegt nicht als Datei auf einer Festplatte, sondern als Objekt im Repository des Systems. Änderungen werden in Transportaufträge geschrieben und über Entwicklungs-, Test- und Produktivsystem weitergereicht. Wer aus der Welt von Git und Pull Requests kommt, muss sich zuerst an dieses Transportwesen gewöhnen, auch wenn es mit abapGit inzwischen eine Brücke gibt.

Der dritte Unterschied ist der Namensraum. Objekte, die mit Y oder Z beginnen, gehören dem Kunden. Dazu kommen reservierte Namensräume, die SAP an Kunden und Partner vergibt und die zwischen zwei Schrägstrichen stehen. Alles Übrige ist Standard von SAP. Diese Konvention trennt im Alltag, was du ändern darfst, von dem, was beim nächsten Upgrade überschrieben wird.

Wofür Unternehmen ABAP einsetzen

Der klassische Einstieg sind Auswertungen, also Reports, die Daten aus mehreren Tabellen zusammenführen und als Liste ausgeben. Danach kommen Erweiterungen der Standardprozesse über die dafür vorgesehenen Erweiterungspunkte, etwa BAdIs, und Schnittstellen nach außen über RFC, IDoc oder OData-Services.

Ein eigener großer Block sind Datenübernahmen. Bei einer Migration oder der Anbindung eines Vorsystems muss jemand die Struktur der Quelldaten auf die Felder im SAP-System abbilden, prüfen und verbuchen, und das ist bis heute eine der häufigsten Aufgaben in ABAP-Projekten.

Die zwei Fehler, die am meisten kosten

Der erste ist die Modifikation von Standardobjekten. Wer im SAP-Standard eine Zeile ändert, statt einen Erweiterungspunkt zu nutzen, bekommt die Änderung bei jedem Upgrade zurück auf den Tisch und muss sie erneut einarbeiten. Deshalb der Grundsatz, den SAP mit dem Stichwort Clean Core zusammenfasst: erweitern statt eingreifen, und dabei die freigegebenen Schnittstellen verwenden.

Der zweite ist der Datenbankzugriff in der Schleife. Eine Abfrage, die für jede Zeile einzeln ausgeführt wird, fällt im Testsystem mit hundert Datensätzen nicht auf und legt im Produktivsystem mit Millionen Zeilen den Job lahm. Die Regel dagegen lautet, mengenbasiert zu lesen und Rechenarbeit möglichst in die Datenbank zu verlagern, etwa über CDS Views.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
Nicht verwechseln

ABAP und was oft damit gleichgesetzt wird

ABAP gegen SAP Fiori und SAPUI5

Fiori ist die Oberflächenwelt im Browser, technisch mit JavaScript und dem Framework SAPUI5 gebaut. ABAP liefert dabei die Daten und die Geschäftslogik im Hintergrund, meist über OData-Services.

ABAP gegen ABAP Objects

ABAP Objects ist keine eigene Sprache, sondern der objektorientierte Teil von ABAP mit Klassen, Interfaces und Ereignissen. Neue Entwicklung findet praktisch vollständig dort statt.

ABAP gegen ABAP Cloud

In den Cloud-Umgebungen ist nur noch ein eingeschränkter Sprachumfang erlaubt, und Zugriffe müssen über freigegebene APIs laufen statt direkt auf Tabellen. Wer heute neu entwickelt, sollte sich an diesen Regeln orientieren, auch wenn das eigene System noch anders arbeitet.

KI-generiertDieses Bild wurde mit KI erzeugt · Yves Hoppe / KI / cmt
In der Praxis

Die teuersten Fehler entstehen in der Schleife und nicht im Konzept

Klassiker Nummer eins ist der Datenbankzugriff innerhalb einer Schleife. Auf dem Entwicklungssystem mit einer Handvoll Testdaten fällt das nicht auf, im Produktivsystem mit Millionen Belegen steht der Job. Die Regel dahinter ist einfach: Daten in einem Zug lesen und danach im Speicher verarbeiten.

Klassiker Nummer zwei sind Modifikationen am Standard. Solche Eingriffe funktionieren, bis der nächste Support Package Stack kommt, und dann muss jede Änderung von Hand nachgezogen werden. Für die meisten Anforderungen gibt es vorgesehene Erweiterungspunkte, und ob du sie nutzt, entscheidet später darüber, wie teuer ein Upgrade wird.

Der dritte Punkt betrifft die Namensräume. Eigene Objekte gehören in den Kundennamensraum, beginnen also mit Z oder Y oder liegen in einem reservierten Namensraum. Wer Objekte ohne diese Konvention anlegt, produziert Konflikte beim nächsten Import und beim nächsten Update des Standards.

ABAP lernen

Vom ersten Report bis zum Zugriff auf die Datenbank führen dich die Kurse zur ABAP Programmierung Schritt für Schritt durch die Werkzeuge des Systems.

Häufige Fragen

Ist ABAP noch aktuell?
Ja, die Sprache wird weiterentwickelt. In den neueren Releases kamen unter anderem Inline-Deklarationen, Tabellenausdrücke, CDS Views und das RESTful Application Programming Model dazu, mit dem sich Fiori-Anwendungen von der Datenbank bis zur Oberfläche bauen lassen.
Womit wird ABAP entwickelt?
Es gibt zwei Wege: die klassischen Werkzeuge im SAP GUI und die ABAP Development Tools, eine Erweiterung für Eclipse. Für neue Objekte wie CDS Views führt inzwischen kein Weg an Eclipse vorbei, weil sie im GUI gar nicht gepflegt werden können.
Muss man Programmiererfahrung mitbringen?
Hilfreich ist sie, notwendig nicht. Für den Einstieg zählt eher, dass du die betriebswirtschaftlichen Abläufe im System kennst, denn ein technisch sauberes Programm mit falschem Verständnis des Prozesses hilft niemandem.
Persönlich für dich da

Deine Ansprechpartner

Du willst das Thema nicht nur nachschlagen, sondern anwenden können? Wir beraten dich persönlich und kostenlos.

Yves Hoppe

Yves Hoppe

Weiterbildung & Beratung

Ordnet mit dir ein, welcher Kurs zu deinem Vorwissen passt.

Norbert Jansen

Norbert Jansen

Beratung & Inhouse

Plant Inhouse-Trainings, die an euren eigenen Daten und Abläufen ansetzen.

ABAP im Kurs statt im Lexikon

Nachschlagen bringt dich bis zum Verstehen. Anwenden lernst du an echten Aufgaben.