ABAP Cloud - Programmiermodell
Welches Programmiermodell kommt mit ABAP Cloud zum Einsatz und was können wir aus dem Vorgänger lernen? Mehr Details im Artikel.
Inhaltsverzeichnis
Für was benötigst du ein Programmiermodell in ABAP und wie ist das aktuelle Modell aufgebaut? In diesem Artikel werden wir kurz durch die Evolutionsgeschichte des Modells gehen und wie es heute aussieht.
Einleitung
Bereits vor ABAP Cloud hat sich einiges an der Architektur in ABAP geändert. Mit den neuen Core Data Services war es nun möglich, eine weitere Abstraktion zwischen Datenbank und UI zu schaffen und über die Assoziationen in den Views das Datenmodell und die Zusammenhänge besser zu beschreiben. Über zusätzliche Annotationen war es möglich, direkt aus einem Core Data Service einen OData Service zu erzeugen. Die OData Services sind wichtig, wenn du ein UI auf SAP Fiori Basis entwickeln möchtest.
Programme
Aktuell werden die meisten Anwendungen als SAP GUI Transaktionen im System umgesetzt, da sie der bisherige Standard für den ABAP Entwickler und in einer sehr schnellen Zeit umsetzbar sind. Dabei setzen sie auf Controls und das klassische PBO und PAI für die Verarbeitung.
BOPF
Das Business Object Processing Framework, kurz BOPF, war der erste Versuch, die Modellierung und Verwendung von Business Objekten auf ein neues Level zu heben. Dabei kamen zum ersten Mal verschiedene Konzepte zum Einsatz, die die Wiederverwendbarkeit und Flexibilität der Objekte unterstützen sollte. Die Logiken rund um das Business Objekt wurden mit ABAP OO implementiert, um die modernere Architektur zu unterstreichen.
So konnte ein Objekt aus verschiedenen Tabellen bestehen, die miteinander in Beziehung standen. Wurde der Wurzelknoten gelöscht, wurden automatisch auch die abhängigen Einträge in den Knoten darunter mit gelöscht, ohne dass sich der Entwickler darum kümmern musste.
Es wurden Logiken implementiert, um vor dem Speichern die Daten zu prüfen (Validierungen). Damit konnten keine falschen Daten im BO gespeichert werden. Es gab Ermittlungen, die automatisch verschiedene Daten abgeleitet haben, ohne dass diese durch den Nutzer erfasst werden mussten. Sollte eine Aktion ausgeführt werden, die mit den Daten interagiert, konnte diese am BO getriggert werden, um Daten im Objekt zu ändern, zu prüfen und wieder zu speichern.
Eine Erweiterung des Konzepts war später, dass aus Core Data Services mit spezifischen Annotationen ein BOPF erzeugt werden konnte und die Modellierung über die Transaktionen entfiel. Dazu konnte leicht ein Service für das UI generiert werden.
Allerdings gab es auch einige Schattenseiten in dem Modell, da viel Boilerplate Code und Artefakte generiert wurden, die die Arbeit damit aber auch nicht wirklich erleichterten. Die Modellierung und Arbeit mit BOPF Objekten war nicht immer einfach und schnell durchzuführen.
RAP
Das ABAP RESTful Programming Model, kurz RAP, wurde als letztes Modell von SAP entwickelt. Es übernimmt viele Konzepte von BOPF, wie zum Beispiel Validierungen, Ermittlungen und Aktionen. Es wurde über viele Iterationen entwickelt und aufgebaut, bevor aus ihm das Modell wurde, das wir heute verwenden.
Modellierung
Neben den Tabellen, basiert das Modell vor allem auf den Core Data Services, um die Datenmodellierung durchzuführen. Daher ist für die eigentliche Entwicklung der App erst einmal nicht viel ABAP Coding erforderlich. Möchtest du dann zusätzliches Verhalten implementieren und das Modell interaktiv und änderbar machen, musst du die Definition und die Implementierung durchführen.
Der Service wird nun nicht mehr im Gateway (SEGW) verwaltet, sondern du legst neue Entwicklungsartefakte wie die Service Definition (Bündelung der Entitäten) und das Service Binding (Protokoll) an.
Erste Schritte
Die Einarbeitung in das Framework kann recht komplex sein, da es so viele neue Objekte und Möglichkeiten gibt. kommst du aus dem Umfeld der Reports und hast kein BOPF davor gelernt, können die vielen unterschiedlichen Dinge erst einmal etwas überfordernd wirken. Daher empfehlen wir dir am Anfang einen groben Überblick über RAP zu bekommen. Die Einstiegsschulung über learning.sap.com kann dir dabei helfen, schnell ein erstes Objekt auf die Beine zu stellen. Grundsätzlich empfehlen wir dir klein zu starten, ein Objekt mit einer Tabelle, um die neuen Konzepte zu lernen. Dann solltest du Schritt für Schritt die Komplexität erhöhen:
Lernen
Das Lernen des neuen Progammiermodells wird einige Monate an Einarbeitung kosten, um die Technik und die Methodiken zu verstehen. Am Ende wartet aber ein effizientes Modell, um Fiori Elements Anwendungen umsetzen zu können und einen neuen Standard zu etablieren. Auf jeden Fall empfehlen wir dir die praktische Anwendung von RAP mit verschiedenen Szenarien, um so die Grundkenntnisse des Modells zu lernen. Einen Fokus solltest du vor allem auf die folgenden Bereiche legen:
- Datenmodellierung mit Eigenen und Standard Core Data Services
- Erstellung von Verhalten
- Entity Manipulation Language (EML)
- Gestaltung der Fiori UIs mit Annotationen
Fazit
Hast du erst einmal das neue Programmiermodell verstanden, wird dir die Umsetzung von SAP Fiori (Elements) Anwendungen sehr viel einfacher fallen und du wirst schneller Ergebnisse erzielen. Mit etwas Übung wirst du bald Anwendungen so schnell erstellen, wie du heute Reports mit ALV zur Verfügung stellst.
Weitere Informationen:
SAP Help - ABAP RESTful Programming Model
BOPF Developer Guide