
ABAP Cloud - Clean Core Level Concept
Das neue Clean Core Level Concept für ABAP Cloud ist da, dieses löst das 3-TIER Model ab. In diesem Artikel schauen wir uns die Änderungen und Anpassungen im Detail an.
Inhaltsverzeichnis
In diesem Artikel gehen wir auf die verschiedenen Details und Layer des Level Concepts ein und wie es dir helfen kann Clean Core viel einfacher zu erreichen. Dabei gehen wir auf die verschiedenen Aspekte ein und schauen uns eine mögliche Umsetzung an.
Einleitung
Vor ca. drei Jahren wurde das 3-TIER Modell für den Weg Richtung Clean Core vorgestellt. Wie kannst du Clean Core erreichen und wie teilen sich die unterschiedlichen Layer auf? Solche Fragen sollten im Konzept geklärt werden. Allerdings empfanden das die meisten Unternehmen, die nicht Greenfield machen als zu hart, da ihr gesamter Quellcode als Classic ABAP eingestuft wurde und so die Messbarkeit von Clean Core nicht gegeben war. Entsprechend wurde nun im August das neue "Clean Core Level Concept" vorgestellt, welches hier in Zukunft für mehr Klarheit sorgen soll.
Konzept
In diesem Kapitel schauen wir uns das neue Konzept einmal im Detail an und gehen auf die verschiedenen neuen Punkte ein.
Allgemein
Das neue Level Concept sieht dabei vier Level vor, von A - D. Dabei ist Level A das Beste, das du erreichen kannst und D aktuell das Schlechteste, dass auch nicht Clean Core bedeutet. Wie du an der folgenden Übersicht siehst, ist Level C nur so lange Clean Core, wie nicht anders definiert (mit Konditionen).
Level
Schauen wir uns dazu die verschiedenen Level an, welche Eigenschaften sie haben und wie wir sie erreichen können. Dabei beginnen wir im ersten Schritt mit Clean Core und Cloud Ready:
- Level A - Die Objekte entsprechen den Standards von ABAP Cloud, hierbei handelt es sich um den alten TIER-1 Layer. Wir verwenden nur freigegebene APIs im System und sind damit Clean Core und Cloud Ready.
Die anderen drei Level beziehen sich vor allem auf die Private Edition und On-Premise Systeme, da wir hier im Bereich der Classic ABAP Entwicklung sind. Deshalb stehen diese Level auch im direkten Zusammenhang mit "Classic ABAP".
- Level B - Das Objekt verwendet nur APIs, die mit "Classic API" im Cloudification Repository gekennzeichnet sind. Die APIs sind stabil, dokumentiert und zur Nutzung freigegeben.
- Level C - Hierbei handelt es sich um nicht klassifizierte APIs von SAP. Sie sind weder "Classic API", noch "noAPI". Dieser Level kann sich von Release zur Release in der Zusammenstellung ändern. Hier solltest du mit SAP in den Austausch gehen und das Changelog beachten.
- Level D - Es werden APIs verwendet, die als "noAPI" im Cloudification Repository gekennzeichnet sind. Es werden klassische Erweiterungen, wie Modifikationen im System genutzt. Das Level ist nicht Clean Core und sollte zuerst überarbeitet werden.
Wenn wir nun die verschiedenen Level nehmen, dazu die Empfehlungen und Definitionen, dann erhalten wir das folgende Gesamtbild der verschiedenen Level.
Technologie
Grundsätzlich kann man nun sagen, dass auch klassische Anwendungen auf ALV Basis damit Clean Core sind. Da das ALV als Classic API gekennzeichnet ist. Das gilt vor allem für bestehende Anwendungen aus dem Bereich des Standards und die dazugehörigen Erweiterungen. Es gibt aber auch Dinge, die du nicht verwenden solltest, wie den RFC_READ_TABLE, dieser ist als noAPI gekennzeichnet. Dieser hat neben keiner Freigabe auch Sicherheitsbedenken und sollte daher sowieso nicht mehr genutzt werden. Auf der Liste stehen aber auch Dinge wie BAPI_COSTCENTER_GETDETAIL, aber nur da es hierfür auch schon gute Nachfolge-Lösungen gibt.
Governance
Ein wichtiger Schritt ist das Thema Governance. Wie weit ist das System auf dem Weg zu Clean Core? Dabei wird das ABAP Test Cockpit (ATC) eine wichtige Rolle zur Ermittlung der Metriken spielen. Nutzt du bereits das ATC im ABAP Environment, dann steht dir bereits die neuste Prüfung zur Verfügung und du kannst diese nutzen, um gegen dein On-Premise System zu testen. Wichtige Prüfungen in der ATC Variante sind daher:
- Allowed Enhancements Technologies - Prüfung ob die erlaubten Erweiterungsszenarien verwendet werden, im Moment sind das nur BADI.
- Usage of APIs - Klassifizierung der Classic API und noAPI über das Cloudification Repository.
- Search customer modifications - Modifikationen sind nicht Clean Core und werden über diese Prüfung ermittelt.
- Critical Statements - Kritische Anweisungen die in der ABAP Entwicklungen nicht mehr genutzt werden sollten.
Hier findest du einmal die Gegenüberstellung der neuen Level mit den ATC Befunden und deren Grad als erste Übersicht.
Hinweis: Die Arbeit mit dem Ausnahmeprozess innerhalb des ATC erleichtert die Dokumentation und die Nachhaltigkeit beim Monitoring von Clean Core. Die Prüfung bei Freigabe blockiert auch mögliche Verstöße an der Clean Core Strategie.
Upgrades
Für Upgrades stellt SAP in Zukunft ein Changelog für die Classic APIs (Level B und C) zur Verfügung. Damit haben wir die Möglichkeit unsere Entwicklungen gegen das Changelog zu prüfen, um Änderungen und Fehler schneller zu finden. Vor allem wenn es Richtung Testaufwand geht, sollte die Liste an geänderten Objekten helfen. Damit soll der Testaufwand bei einem Releasewechsel minimal gehalten werden. Wenn es keine Änderungen an einer Komponente gab, dann müssen Eigenentwicklungen nicht getestet werden, die diese Komponente nutzen.
Hierfür wird eine ATC Prüfung zur Verfügung gestellt, mit der du vor einem Upgrade deinen Bestand an Eigenentwicklungen prüfen kannst und bereits vor einem Upgrade reagieren kannst.
API Enablement
Das Thema API Enablement, früher einmal TIER-2, bleibt aber weiterhin ein Thema. Durch den Wegfall von TIER-2 gibt es aktuell keinen Prozess, wo die APIs angelegt werden sollen und wie das Thema Governance und Wiederfindbarkeit aussieht. Daher musst du innerhalb deines Unternehmens schauen, wie du mit dem Thema umgehen willst, da es mit dem aktuellen Level Concept keine Empfehlung und Anleitung mehr gibt.
Ein Vorschlag von unserer Seite wäre daher:
- Komponente - Anlage einer passenden Struktur im System, wo Entwickler ihre freigegebenen Objekte anlegen können. Als Repository können neue Entwickler einen Überblick bekommen, was es bereits im System an APIs gibt. Hier soll vor allem vermieden werden, das bestehende APIs immer wieder neu gebaut werden, sondern möglichst zentrale APIs bereitgestellt und genutzt werden. Eine eigene SWC ist hier optional, eine passende Struktur würde hier im Vordergrund stehen.
- Monitoring - Welche APIs und Funktionen werden für Level A freigegeben? Hier sollte weiterhin zentral geprüft werden, welche Funktionen gewrappt werden (Best-Practice weiterhin beachten). Grundsätzlich fallen die APIs auf, wenn sie in Level C und D fallen.
Modernisierung
Grundsätzlich kannst du nun Clean Core erreichen, ohne dein komplettes System auf ABAP Cloud umzustellen. Dabei solltest du mit Hilfe des ATC erst einmal mit den Level D Entwicklungen beginnen, diese Prüfen und Anpassen. Liefert die ATC Prüfung, dann nur noch Warnungen oder alle Fehler wurden dokumentiert, hast du die Reise Richtung Clean Core eigentlich schon abgeschlossen.
Im nächsten Schritt solltest du dir das Thema Modernisierung anschauen, die neuen ABAP Cloud APIs sind weiterhin ein wichtiger Bestandteil und eine Vereinheitlichung macht Sinn. Hier vor allem im Hinblick auf Technologie, wie Fiori Apps, Application Jobs, Business Configuration und das neue Mail Framework, um alle Bereiche zu harmonisieren. Grundsätzlich macht es Sinn die Neuentwicklungen auf Level A zu beginnen, außer die Technologie der Fachanwendung lässt es nicht zu. Handelt es sich um eine reine GUI Anwendung, es steht kein RAP Objekt zur Verfügung und Erweiterungen werden mit klassischen Mitteln durchgeführt, dann solltest du das auch so machen. Ist die Erweiterung dann Level C oder sogar Level B, bist du erst einmal auf der Clean Core Seite.
Zusammenfassung
Grundsätzlich ein Tipp von unserer Seite, mach dir am Anfang Gedanken darüber, welche Strategie du für ein System verfolgst. Möchtest du Cloud Ready werden, dann ist Level A das Ziel und möglichst viel Classic ABAP ablösen. Reicht dir Clean Core, dann musst du nur von Level D wegkommen, was nun einfacher zu erreichen ist. Möchte oder kann dein Unternehmen nicht in die Cloud, reicht hier sicherlich Clean Core zu. Da aktuell Level C aber undefiniert ist, solltest du dir in Zukunft auch Gedanken über diese Objekte machen, da diese Objekte entweder Level B werden (Gut) oder Level D (Schlecht). Wir empfehlen aber trotzdem viele Anwendungen mit ABAP Cloud umzusetzen, um eine zukunftssichere Investition in die Anwendungen zu machen.
Hier die wichtigsten Punkte:
- 3-TIER Modell (TIER 1-3) wird Clean Core Level Concept (Level A-D)
- Clean Core leichter erreichbar
- Ziel bleibt ABAP Cloud für Neuentwicklungen
- ATC für mehr Governance
Fazit
Das Clean Core Level Concept sollte nun eine Erleichterung für Kunden sein, um Clean Core zu erreichen. Allerdings müssen sich auch Gedanken über Messbarkeit und Governance gemacht werden, damit im System nicht wieder ein Chaos der verschiedenen APIs entsteht. Auch sollte der Weg (Clean Core und/oder Cloud Ready) abgestimmt und im Auge behalten werden.
Quelle:
ABAP Cloud
Clean Core Extensibility (White Paper)
Extensibility Guide (Aktuelle Version)
SAP Community - ATC recommendations for Governance




