Wer sich die Frage stellt, wie auf SAP S/4HANA State-Of-The-Art entwickelt werden soll, kommt um die Themen ABAP Cloud, 3-Tier-Modell und Clean Core nicht mehr herum. Es gibt bereits einige gute Artikel zum Thema ABAP Cloud, wie bspw. dieser Community-Beitrag. Mit diesem FAQ trage ich wichtige Themen und weiterführende Links zusammen und kann hoffentlich auch deine Fragen beantworten.
Was ist ABAP Cloud?
ABAP Cloud ist ein moderner Ansatz zur ABAP-Entwicklung, mit welchem u.a. eine einfache und stabile Update- und Erweiterungsfähigkeit des SAP-Systems sichergestellt werden soll. Dabei werden nur öffentlich verfügbare APIs (Public Interfaces), Objekte und Erweiterungspunkte genutzt, um den Kern des SAP-Systems sauber zu halten – Clean Core.
Eine gute Einführung in das Thema ABAP Cloud inkl. Architektur-Abbildungen findest du bspw. hier:
- Extensibility-Guide (siehe ab Kapitel 2, SAP S/4HANA CLOUD EXTENSIBILITY MODEL)
- API Enablement Guidelines (siehe ab Kapitel 1.1, Overview of the Three Tier Model)
Mit welchen Releases kann ABAP Cloud genutzt werden?
ABAP Cloud kann unter folgenden SAP-Releases benutzt werden:
- SAP S/4HANA Private Edition & on premise, ab Version 2022
- SAP S/4HANA Public Edition
- SAP BTP
Wo finde ich die Public Interfaces (API)?
Eine gute Übersicht über die verfügbaren Public Interfaces (APIs) findest du auf api.sap.com. Verzweige beispielsweise auf:
- das Produkt SAP S/4HANA Cloud Private Edition
- dann mittig im Menü auf API und All
- suche dann rechts im Suchfeld bspw. nach “sales order” und klicke auf Sales Order (A2X)
- Dort findest du alle Informationen zum Public Interface
Alternative Möglichkeiten, nach Public Interfaces zu suchen, findest du in dem Beitrag How to find SAP APIs for SAP S/4HANA 3-tier extensibility model. Dort wird dir zum Beispiel der Weg direkt über die Eclipse ABAP Development Tools gezeigt.
Was ist das 3-Tier-Modell?
Eine gute Architektur-Abbildung findest du bspw. in den API Enablement Guidelines (siehe Kapitel 1.1, Overview of the Three Tier Model) oder im Extensibility-Guide (siehe Abbildung 5.3, Interplay between the three tiers)
Tier 1: Cloud extensibility model
- ABAP Cloud Entwicklung
- Verwendung von Public Interfaces oder Key-User-Extensions
- “Cloud ready” und einfache Updates
Tier 2: Cloud API enablement
- Erweiterung von Tier 1
- Stellt mit “wrappern” eine Lösung zur Verfügung, wenn kein benötigtes Public Interface zur Verfügung steht
Hinweis: Prüfe die veröffentlichten Public Interfaces. SAP erweitert die Anzahl mit neuen Releases. - Eine Anleitung findest du in den API Enablement Guidelines
Tier 3: Classic ABAP extensions
- klassische ABAP-Entwicklung
- Wird weiterhin unterstützt, aber nicht empfohlen
- Typischerweise alter ABAP Code
Was sind Key-User-Extensions?
Mit Key-User-Extensions stellt die SAP Tools zur Verfügung, einfache Anpassungen ohne Entwicklungs-Skills (low- oder no-code) durchzuführen. Ein Beispiel ist die Erweiterung einer Tabelle um ein kundenindividuelles Feld.
Achtung: „Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel“ – Vermeide, dass jedes Problem mit einem neuen Tabellenfeld gelöst wird.
Funktioniert die klassische ABAP-Entwicklung noch unter SAP S/4HANA?
Ja, siehe Tier 3: Classic ABAP extensions.
Wie alten Code (Tier 3) cloud-ready (Tier 1) machen?
Das ist ein komplexer Prozess. Meiner Meinung nach solltest du dir immer zuerst die Business-Anforderung genau ansehen und im ersten Schritt überlegen, ob Best-Practice-Prozesse, Customizing, Business Functions oder externe AddOns deine Anforderungen erfüllen.
Ist eine Eigenentwicklung erforderlich, schau dir bspw. den Blog-Beitrag How to make your custom code cloud-ready and upgrade-stable an. Hier wird das Vorgehen mittels Eclipse und des ABAP Test Cockpit (ATC) beispielhaft erläutert.
Zu welchen Anwendungsfällen sollte welche Technologie verwendet werden?
In dem Dokument ABAP Cloud – Technical Use Cases and Recommended Technologies findest du eine Empfehlung, in welchen Anwendungsfällen du Cloud extensibility model, Key-User-Extensions oder klassische ABAP-Entwicklung verwenden solltest.