This is a test message to test the length of the message box.
Login
ABAP Clean Core
Erstellt von Software-Heroes

ABAP Tipp - Clean Core

795

In diesem Artikel mal etwas zum Thema Clean Core, was bedeutet es für den Entwickler, was sind Vorraussetzungen und auf was muss man achten.

Werbung


Das Thema Clean Core geistert aktuell bei vielen Unternehmen durch die Gänge, doch was bedeutet es eigentlich und wie kannst du es erreichen? In diesem Artikel wollen wir der Frage was genau dahinter steckt und wie du es heute schon bei dir umsetzen kannst.

 

Begriffserklärung

Wie der Begriff vermuten lässt, wollen wir unser Kernsystem sauber halten, also das System auf dem unsere Hauptprozesse laufen. Was bedeutet aber sauber? Hier geht es um den Anteil Eigenentwicklung und den Einfluss auf das System. Es gibt eine breite Palette von Erweiterungstechniken für ein SAP System, wie zum Beispiel: BADI, Enhancement oder Userexit. Am Ende aber auch die Möglichkeit für Modifikationen, dass heißt wir ändern den ausgelieferten Standard.

Und genau hier liegt das Problem, wir ändern Standardcoding, kopieren Funktionen oder nutzen nicht freigegebene APIs von der SAP. Das sorgt für einen gewissen Aufwand beim Upgrade, da wir den Standard abgleichen müssen zu unseren Änderungen und im Anschluss die Eigenentwicklungen ebenfalls komplett testen müssen. Denn nicht freigegebene Objekte bedeuten auch, dass diese sich ändern können oder gelöscht werden.

All dies verzögert einen Upgrade des Systems und bedeutet viel Aufwand beim Kunden. Mittlerweile liefert die SAP auch alle 3 Monate neue Releases aus, um neue Features zu bringen und Fehler zu beseitigen.

 

Konsequenz

Für dich als Entwickler bedeutet dies nun, dass du das System nur über freigegebene Erweiterungspunkte erweitern und freigegebenen Objekte nutzen solltest. Vor allem bei Eigenentwicklungen musst du dir dann Gedanken über die Verwendung und Anlage von neuen Datenelementen machen, da die meisten Datenelemente nicht freigegeben sind. Wieso solltest du keine Elemente von SAP verwenden die nicht freigegeben sind? Ganz einfach, da sich diese ebenso ändern können wie der Standard. Bei Datenelementen passiert das nicht so oft, erfordert aber jedes Mal einen entsprechenden Testaufwand.

 

Cloud Ready

Dazu sollten wir uns noch den zweiten Begriff anschauen, dieser heißt Cloud Ready. Dieser Zustand bezieht sich auf ein S/4 Cloud System, welches als SaaS Lösung zur Verfügung gestellt wird und nur einen sehr spartanischen Ansatz zur Erweiterung bietet. Der Upgrade des Systems erfolgt durch die SAP und damit ist so ein System automatisch Clean Core, bietet aber nicht den vollen Umfang zur Erweiterung.

Im Cloud Ready Kontext gibt es auch keine SAP GUI und Transaktionen mehr, alles basiert auf Fiori als Frontend, was die klassischen Transaktionen maximal über GUI for HTML funktioniert.

 

Erweiterung

Alles was eine Eigenentwicklung ist, stellt eine Erweiterung des Systems dar und ist im ersten Moment nicht Clean Core. Dazu stellt SAP drei verschiedene Erweiterungsmodelle zur Verfügung die du nutzen kannst:

  • Keyuser Extensibility - Ist die Möglichkeit über Fiori Apps Erweiterungen am System vorzunehmen, z.B. um Z-Felder im Datenmodell anzulegen und auf das UI zu bringen, BADIs auszuprägen oder eigene CDS Views auf freigegebenen Views zu erstellen und als API zur Verfügung zu stellen.
  • Side-by-Side Extensibility - Erstellung eigener Anwendungen im Z und Y Bereich auf einem eigenen System, meist in der Cloud (ABAP Environment aka Steampunk). Dabei werden APIs des Kernsystems konsumiert, um an Daten und Funktionen zu gelangen.
  • Embedded Steambunk - Wird auch Developer Extensibility genannt, da hier dem Entwickler On-Stack die Möglichkeit gegeben wird, das System nach Clean Core Pattern zu erweitern.

 

Grundlage der beiden letzten Methoden ist das ABAP RESTful Programming Model (kurz RAP), welches in ABAP entwickelt wird und eine Fiori Anwendung am Ende zur Verfügung stellt.

 

Freigegebene Objekte

Freigegebene Objekte findest du über die ABAP Development Tools über die Suche oder über einen eigenen Baum, den du dir im Project Explorer erstellen kannst. Über den Project Explorer würde es entsprechend so aussehen:

 

Wenn du ein Objekt hast und nicht sicher bist, ob es freigegeben ist, dann kannst du über den "Properties" View aufrufen und bekommst die entsprechende Information über den API Status des Objekts. Hier einmal ein Besipiel für einen Core Data Service für den Business Partner:

 

Wichtig ist hier der C1 Contract, ob und wo das Objekt genutzt werden kann. Ist ein solcher Vertrag vorhanden, ist das Objekt freigegeben und kann genutzt werden. Der C0 Contract ist ein ganz neuer Status und bedeutet, dass das Objekt auch für die Erweiterung freigegeben ist.

 

Probleme

Die neue Welt klingt erst einmal in sich logisch und scheint einige Vorteile mitzubringen. Aber wenn man dann einmal auf die Möglichkeiten der kundenindividuellen Erweiterungen schaut, wird man schnell feststellen, dass noch vieles an Features fehlt, die man eigentlich bräuchte. APIs zur Bereitstellung der Daten gibt es noch nicht für alle Module und auch nicht für alle Tabellen gibt es bereits Core Data Services.

Mit Embedded Steampunk wartet zwar bereits ein erster Ansatz sich seine eigenen APIs zu bauen und viel direkt im System zu machen, doch wird es noch ein paar Jahre brauchen, bis es alle Kundenwünsche abdeckt.

 

Fazit

Du solltest nun erfahren haben was Clean Core eigentlich bedeutet und wofür es benötigt wird. Vor SAP liegt noch ein längerer Weg um den Kunden alles zu liefern, was sie für die saubere Erweiterung eines Systems benötigen. Doch die Grundsteine sind gelegt und du kannst sie bereits heute nutzen, um dein System in die richtige Richtung zu lenken.


Enthaltene Themen:
TippClean CoreSchnelle Updates
Kommentare (0)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP Tipp - Ranges und Select-Options

Kategorie - ABAP

Ranges und Select-Options in ABAP sind sehr ähnlich und doch gibt es feine Unterschiede bei der Nutzung im ABAP OO Kontext. Hier schauen wir uns die moderne Verwendung an.

09.05.2025

ABAP Tipp - Generische Query Implementierung

Kategorie - ABAP

Die immer wieder gleiche Implementierung in Query Klassen für Custom Entities in RAP? Es wird mal Zeit für eine wiederverwendebare Komponente.

22.04.2025

ABAP in Praxis - String Verarbeitung

Kategorie - ABAP

In diesem praktischen Beispiel schauen wir uns die String Verarbeitung zur Ermittlung der CDS Namen in CamelCase an und wie du das mit ABAP umsetzen kannst.

15.10.2024

ABAP in der Praxis - Test Driven Development

Kategorie - ABAP

Wie funktioniert eigentlich TDD in der Praxis und gibt es einfache Beispiele zum Lernen in ABAP? In dieser Übung gehen wir auf den praktischen Teil ein.

24.09.2024

ABAP in der Praxis - Datenmenge zusammenführen

Kategorie - ABAP

Wir führen wir zwei unterschiedliche Datenmengen in ABAP zusammen, vor allem im Hinblick auf das Moderne ABAP? Eine praktische Aufgabe zum Thema.

17.09.2024