Programmieren mit SAP ABAP: Teil 1 – Das ABAP Dictionary in der Theorie
“ABAP ist kein Kölschrock” stand letztens auf dem Werbeplakat eines IT-Dienstleisters. Schade eigentlich – denn wäre die SAP-eigene Programmiersprache ähnlich schnell und einfach zu erlernen wie der Text eines Karnevalsschlagers, hätte man es als ABAP-Neuling deutlich leichter. In dieser Blogreihe lernen Sie mithilfe praktischer Anleitungen das Programmieren mit SAP ABAP.
Inhaltsverzeichnis
Was ist eigentlich ABAP?
ABAP (kurz für Advanced Business Application Programming) ist die Programmiersprache von SAP, die eigens zur Entwicklung betriebswirtschaftlicher Anwendungen innerhalb des SAP-Systems verwendet wird. Da ABAP wie jede andere Programmiersprache eine gewisse Komplexität beinhaltet, braucht es Zeit und Geduld, um sich diese Sprache anzueignen. Das gilt insbesondere für Programmieranfänger.
Ich selbst hatte in meinem BWL-Studium kaum Berührungspunkte mit Informatik, geschweige denn mit der Programmierung. In meinem Berufsalltag als SAP Consultant bin ich jedoch immer wieder fasziniert davon, wie sehr man die SAP-Standardsoftware durch eigene Entwicklungen mitgestalten kann. Die Software lässt sich bis ins kleinste Detail an die individuellen Wünsche der Kunden anpassen.
Je mehr man dabei von der eigentlichen Programmierung versteht, desto besser und gezielter kann man beraten. Die Grundlagen der ABAP-Programmierung sind für Sie nur von Nutzen, sollten Sie im SAP-Umfeld tätig sein.
SAP-Beratung mit CONET
Als langjähriger SAP-Berater bietet CONET ganzheitliche SAP-Beratung – von der Prozessberatung und Strategieentwicklung über Architektur- und Technologieberatung bis hin zur Implementierung und kontinuierlichen Optimierung.
Gute Aussichten auch für Quereinsteiger
Für interessierte Studenten, Auszubildende oder Fachfremde, die als Quereinsteiger einen Fuß in das Berufsfeld der Softwareentwicklung setzen möchten, kann es sich auch auszahlen, Kenntnisse in ABAP zu erwerben. SAP ist gefragt: Anfang 2020 verzeichnet der Softwarekonzern über 440.000 Kunden und hält die größten Marktanteile im Bereich Unternehmensanwendungen ERP (Enterprise Resource Planning). Weltweit durchlaufen 77 Prozent alle Transaktionsumsätze SAP-Systeme.
Die weite Verbreitung von SAP-ERP-Software bedingt einen hohen Bedarf an qualifizierten Entwicklern, welche die Anwendungen den individuellen Geschäftsprozessen entsprechend implementieren und anpassen. Gepaart mit dem heute eher spärlich besetzten Arbeitnehmermarkt, gerade im Bereich IT, bietet die ABAP-Entwicklung gute Perspektiven für (angehende) Programmierer.
Mit meiner Blogreihe möchte ich Einsteigern und Umsteigern den Start in das Programmieren mit SAP ABAP mithilfe von praktischen Anleitungen, ergänzt durch den notwendigen Theorieanteil, erleichtern.
Programmieren mit SAP ABAP
Die Programmierung mit ABAP dient stets der Abbildung oder Auswertung von betriebswirtschaftlichen Daten, die in einem Unternehmen mithilfe von SAP-Software erfasst werden. Miteinander verwandte Daten werden in einer für sie vorgesehenen Datenbanktabelle in strukturierter Form gespeichert.
Schon in der Standardauslieferung des SAP-Systems gibt es Tausende vorgefertigte Datenbanktabellen (beispielsweise für die Verwaltung diverser Kunden-, Material- oder Personalstammdaten). SAP-Kunden benötigen jedoch regelmäßig zusätzliche Tabellen, die ihre ganz spezifischen Anforderungen abdecken.
Beim demnächst erscheinenden zweiten und dritten Teil dieser Blogreihe handelt es sich um zusammenhängende Praxisteile. In diesen wird anhand eines Fallbeispiels erklärt, wie Sie eine solche kundenindividuelle Datenbanktabelle selbst anlegen und mit einigen Übungsdatensätzen füllen können. Diese können Sie später im Rahmen Ihres ABAP-Programms als Datengrundlage verwenden.
Eine zentrale Rolle spielt dabei das ABAP Dictionary. Dieser erste Teil der Blogreihe soll dazu dienen, Ihnen die Funktionsweise dieses Instruments zunächst in der Theorie zu erläutern. So verfügen Sie später über die notwendigen Wissensgrundlagen für die Ausführung der praktischen Übungen. Um das Dictionary beim Lesen vor Augen zu haben, können Sie es jederzeit über den Transaktionscode SE11 aufrufen.
Was kann das ABAP Dictionary?
Bei dem ABAP Dictionary oder auch Data Dictionary (kurz DDIC) handelt es sich um ein elementares Werkzeug für die Arbeit in SAP. Dort werden die im System verwendeten Datendefinitionen zentral beschrieben und verwaltet. Im Wesentlichen lassen sich die Funktionen des ABAP Dictionary in drei Kategorien unterteilen:
So wie ein Handwerker bei der Arbeit regelmäßig auf die Werkzeuge und Eisenwaren aus seinem gut sortierten Werkzeugkasten zurückgreift und diese Arbeitsmittel bei Bedarf erneuert und erweitert, nutzt und ergänzt der ABAP-Entwickler die im Dictionary hinterlegten Daten.
Typdefinitionen
Im Dictionary können zunächst benutzerdefinierte Typen (Datenelemente, Struktur- und Tabellentypen) sowie Domänen angelegt werden.
Wie Sie vielleicht bereits wissen, können benutzerdefinierte Typen mithilfe der Anweisung TYPES auch direkt in einem ABAP-Programm definiert werden. In diesem Fall handelt es sich um lokale Typen, die zunächst nur in diesem einen Programm erkannt und verwendet werden können. Um sie in einer anderen Anwendung nutzen zu können, müssten diese Typen dort ebenfalls lokal definiert werden.
Bei den im Dictionary angelegten Typen handelt es sich hingegen um globale Typen, die in allen Programmen gleichermaßen verwendet werden können, ohne sie jedes Mal neu bestimmen zu müssen. Durch die vorwiegende Nutzung von globalen Typen verringert sich der Pflegeaufwand erheblich, gleichzeitig steigt die Transparenz.
Da die im Dictionary definierten Typen zum Teil als Grundlage für die initiale Erstellung von Datenbanktabellen dienen, werden sie an dieser Stelle kurz erläutert:
-
- In einer Domäne werden die technischen Eigenschaften eines Datenelements definiert. Diese umfassen unter anderem den Datentyp (DATS, NUMC, CHAR, etc.), die Anzahl der Stellen und gegebenenfalls Dezimalstellen sowie die Ausgabelänge. Des Weiteren kann bei Bedarf ein Wertebereich festgelegt werden, um die gültigen Werte für das Tabellenfeld, welches durch das Datenelement beschrieben wird, einzuschränken. Verschiedenen Datenelementen und Feldern können dieselben technischen Merkmale zugrunde liegen. Nehmen wir an, es gäbe ein Feld „Geburtsdatum“ und ein Feld „Datum der Führerscheinprüfung“. Da beide Felder Datumsangaben beinhalten, könnten sie zum Beispiel beide auf dem Datentyp DATS mit acht Stellen basieren und somit durch ein und dieselbe Domäne definiert werden.
- Neben den technischen Informationen verfügt jedes Feld auch über semantische Eigenschaften. Dazu gehören insbesondere eine aussagekräftige Bezeichnung sowie eine Kurzbeschreibung, die Aufschluss über die inhaltliche Bedeutung des Feldes geben. Diese semantischen Informationen werden im Datenelement hinterlegt.
-
- Strukturtypen dienen dazu, einzelne Felder und Datenelemente nach inhaltlichen Kriterien zusammenzufassen. Ein Strukturtyp kann dazu genutzt werden, die Spalten einer Tabelle zu typisieren, das heißt, man kann sich einen Strukturtyp als Gesamtheit aller Spaltenüberschriften in einer Tabelle vorstellen.
- Während ein Strukturtyp zunächst nur eine einzelne Zeile einer Tabelle (also genau einen Datensatz) beschreibt, wird anhand eines Tabellentyps eine Tabelle mit beliebig vielen Zeilen beziehungsweise Datensätzen typisiert. Allen Datensätzen liegt dabei derselbe Strukturtyp zugrunde.
Datenbanktabellen
Neben der Typdefinition bietet das ABAP Dictionary auch die Möglichkeit, Datenbanktabellen anzulegen oder zu verändern. Wie genau muss man sich so eine Datenbanktabelle vorstellen? Im relationalen Datenbanksystem von SAP werden Daten in Form von Tabellen mit beliebig vielen Spalten und Zeilen abgebildet. Zur Definition der „Spaltenüberschriften“ können bereits vorhandene Datenelemente aus dem Dictionary verwendet werden. Alternativ können passende Datenelemente aber auch direkt während der Tabellenerstellung angelegt werden.
Die festgelegte Spaltenstruktur gilt dann für alle Tabellenzeilen, also für alle Datensätze, die in der Tabelle hinterlegt werden. Über die Festlegung eines sogenannten Primärschlüssels lassen sich die einzelnen Tabelleneinträge jeweils voneinander unterscheiden. Schlüsselfelder können im Rahmen der Entwicklung als Sortier- und Suchhilfe bei der Arbeit mit Tabellen genutzt werden und ermöglichen die eindeutige Identifizierung (beziehungsweise “Ansprache”) jedes einzelnen Datensatzes in der Datenbanktabelle.
ABAP Dictionary Tools
Der Vollständigkeit halber soll auch die dritte Funktion des ABAP Dictionary kurz beschrieben werden. Mit dieser erhalten Nutzer Zugriff auf Werkzeuge zur Aufbereitung von Feldern auf der Benutzeroberfläche (siehe erste Abbildung). Es lässt sich beispielsweise eine Eingabehilfe mit möglichen Ausfüllwerten für den Nutzer erstellen, die er mit einem Tastendruck auf F4 aufrufen kann. Beispiel: Für ein Feld zur Abfrage der Augenfarbe könnten Werte wie „blau“, „braun“ oder „grün“ im ABAP Dictionary hinterlegt werden.
Diese Zuweisung von “Wertevorräten” kann über Festwerte von Domänen (wie im oben genannten Beispiel) oder über sogenannte Fremdschlüsselbeziehungen erfolgen. Bei letztgenannten handelt es sich um Verweise auf andere Datenbanktabellen, die die möglichen Einträge für das Feld enthalten. Über die Definition von Suchhilfen können bestimmte “Auswertevorschriften” angelegt werden, die beim Aufrufen der F4-Hilfe ausgeführt werden sollen.
Im zweiten Teil dieser Blog-Reihe widmen wir uns einem Fallbeispiel, um in die praktische Nutzung des ABAP Dictionary einzusteigen und mit dem Programmieren mit SAP ABAP zu beginnen.
SAP-Beratung mit CONET
Als langjähriger SAP-Berater bietet CONET ganzheitliche SAP-Beratung – von der Prozessberatung und Strategieentwicklung über Architektur- und Technologieberatung bis hin zur Implementierung und kontinuierlichen Optimierung.
War dieser Artikel hilfreich für Sie? Oder haben Sie weiterführende Fragen zu SAP ABAP? Schreiben Sie uns einen Kommentar oder rufen Sie uns gerne an.
Über den Autor
Franziska Georg beschäftigt sich im Bereich Workplace Solutions mit der Entwicklung von Lösungsbausteinen im Rahmen von Microsoft 365. Standardprodukte wie SharePoint Online oder Microsoft Teams passt sie mit Hilfe der eigenentwickelten Komponenten so an, dass eine individuell zugeschnittene Arbeitsumgebung entsteht.