Entwicklung von SAP S/4HANA Add-ons und SAP Fiori Tools mit ABAP und SAP BTP
Dieser Leitfaden bietet eine schrittweise Anleitung zur Entwicklung maßgeschneiderter Add-ons und Tools für SAP S/4HANA und SAP Fiori. Er behandelt die wesentlichen Konzepte und Technologien – SAP ABAP für das Backend, die SAP Business Technology Platform (SAP BTP) für Cloud-Services sowie SAP Fiori/SAPUI5 für die Benutzeroberfläche. Zudem werden die Einrichtung der Entwicklungsumgebung, die Entwicklung von ABAP-Erweiterungen und Fiori-Apps, Integrationsmethoden, Monetarisierungsstrategien und bewährte Praktiken erläutert. Der Inhalt ist für Entwickler mit mittleren Kenntnissen strukturiert und bietet detaillierte Erklärungen, Beispielcode sowie anschauliche Screenshots, um das Lernen zu erleichtern.
1. Einführung in die Entwicklung von SAP Add-ons
Überblick über SAP S/4HANA und SAP Fiori:
SAP S/4HANA ist die ERP-Business-Suite der nächsten Generation von SAP, die auf der In-Memory-Datenbank SAP HANA läuft. Sie nutzt moderne Innovationen in der Datenverarbeitung und ein vereinfachtes Datenmodell, um Echtzeitanalysen und optimierte Geschäftsprozesse bereitzustellen.
SAP Fiori ist die moderne Benutzeroberfläche (UX) von SAP und besteht aus webbasierten Anwendungen, die mit SAPUI5 entwickelt werden. Fiori bietet eine intuitive, rollenbasierte Benutzerführung über verschiedene Geräte hinweg und ersetzt zunehmend die klassische SAP GUI als Haupt-Benutzeroberfläche in SAP S/4HANA.
Anstelle monolithischer Transaktionsbildschirme bietet Fiori eine Sammlung von fokussierten Apps (Kacheln) für spezifische Aufgaben (z. B. das Anlegen eines Kundenauftrags oder die Genehmigung von Urlaubsanträgen). Diese Apps sind über das Fiori Launchpad zugänglich. Durch die konsequente Einhaltung von Designrichtlinien und die Nutzung eines responsiven, HTML5-basierten Ansatzes verbessert Fiori die Benutzerfreundlichkeit und Produktivität erheblich.
Bedeutung von Add-ons und Tools:
Jedes Unternehmen hat einzigartige Anforderungen. Add-ons (kundenspezifische Erweiterungen oder Plugins) und Tools (individuelle Anwendungen, Berichte, Integrationen) ermöglichen es Organisationen, das standardmäßige SAP S/4HANA an ihre spezifischen Bedürfnisse anzupassen, ohne den SAP-Kerncode zu verändern. Durch die Entwicklung von Add-ons können Unternehmen funktionale Lücken schließen, maßgeschneiderte Prozesse automatisieren oder die Benutzerproduktivität verbessern.
SAP stellt offizielle Erweiterungsmechanismen bereit, sodass benutzerdefinierter Code das System an spezifische Anforderungen anpassen kann, während der Kern stabil bleibt. Gut konzipierte Add-ons helfen, den ROI einer SAP-Implementierung zu maximieren, indem sie sich an Geschäftsprozesse anpassen und unabhängig von SAP-Upgrades weiterentwickelt werden können (wodurch ein „clean core“ erhalten bleibt). Im SAP-Ökosystem kann ein robustes Add-on sogar zu einem eigenständigen Produkt werden, das von anderen wiederverwendet oder erworben werden kann – ein Anreiz für Partner und Entwickler, Innovationen auf der Plattform voranzutreiben.
Zentrale Technologien
• SAP ABAP: ABAP (Advanced Business Application Programming) ist die primäre Programmiersprache für das SAP S/4HANA-Backend. ABAP läuft auf dem ABAP-Applikationsserver und wird zur Entwicklung kundenspezifischer Berichte, Transaktionen, Data-Dictionary-Objekte, Erweiterungen und Geschäftslogik verwendet. In S/4HANA (On-Premise und Private Cloud) bleibt ABAP zentral für Erweiterungen.
ABAP ist zudem in SAP BTP (über das ABAP Environment, auch bekannt als „Steampunk“) verfügbar, um cloudbasierte Erweiterungen mit einem „clean core“-Ansatz zu entwickeln. Die tiefe Integration von ABAP mit der Datenbank (einschließlich ABAP Core Data Services für fortgeschrittene Sichten) und seine zahlreichen Frameworks (BAPIs, Enhancement Spots etc.) machen es zu einem leistungsstarken Werkzeug für die Unternehmensentwicklung.
• SAP Business Technology Platform (BTP): SAP BTP ist die Cloud-Plattform, die Dienste und Umgebungen bereitstellt, um Anwendungen zu entwickeln und auszuführen, die SAP-Systeme erweitern oder integrieren. Sie umfasst verschiedene Laufzeitumgebungen (Cloud Foundry, ABAP Environment, Kyma etc.) sowie Dienste für Authentifizierung, Datenbanken, Integration, Analytik, KI und mehr.
Für unsere Zwecke ermöglicht BTP die Bereitstellung individueller Anwendungen (z. B. einer Fiori UI5-App oder eines ABAP-Services) in der Cloud und deren Anbindung an ein S/4HANA-System (On-Premise oder Cloud). Sie unterstützt die Entwicklung von Erweiterungsanwendungen, ohne das On-Premise-System zu beeinträchtigen, und steht somit im Einklang mit SAPs „clean core“-Strategie. Zusammenfassend bietet BTP die Infrastruktur und Services zur Entwicklung von Cloud-Anwendungen, Integrationen und Innovationen auf Basis von SAP-Lösungen.
• SAP Fiori/UI5: SAP Fiori ist das UX-Framework, und SAPUI5 ist die zugrundeliegende Frontend-Technologie (ein JavaScript-UI-Toolkit) zur Entwicklung responsiver Webanwendungen. Fiori-Apps sind Webanwendungen, die den Fiori-Designrichtlinien von SAP für Konsistenz und Benutzerfreundlichkeit folgen. Sie rufen Geschäftsdaten über OData-Services aus dem SAP-Backend ab und präsentieren diese in intuitiven Benutzeroberflächen.
SAPUI5 (und seine Open-Source-Variante OpenUI5) ist das HTML5-Framework, das zur Entwicklung dieser Apps genutzt wird. Das Verständnis von Fiori erfordert das Wissen über die Entwicklung von SAPUI5-Anwendungen (Controller, Views, Models) sowie deren Bereitstellung entweder auf einem SAP Frontend-Server (für On-Premise-Fiori) oder auf SAP BTP (für Cloud-Deployments). In der Praxis verwenden Entwickler Tools wie SAP Web IDE oder SAP Business Application Studio, um UI5-Apps zu entwickeln und sie über das Fiori Launchpad den Benutzern bereitzustellen.
Durch das Beherrschen von ABAP, SAP BTP und Fiori/UI5 kann ein Entwickler leistungsstarke End-to-End-Lösungen entwickeln:
• ABAP für individuelle Geschäftslogik und Datenverarbeitung,
• Fiori/UI5 für die Benutzeroberfläche,
• SAP BTP für Cloud-Bereitstellung und Integration.
2. Einrichtung der Entwicklungsumgebung
Bevor mit der Entwicklung begonnen werden kann, ist es entscheidend, eine geeignete SAP-Entwicklungsumgebung einzurichten. Dazu gehören der Zugang zu einem SAP S/4HANA-System für die ABAP-Entwicklung, die Installation der erforderlichen IDEs und Tools sowie die Bereitstellung von Cloud-Ressourcen auf SAP BTP für die Entwicklung und Bereitstellung von Fiori-Apps.
Erforderliche Software und Tools
Die folgende Tabelle fasst die wichtigsten Komponenten zusammen, die installiert oder auf die zugegriffen werden muss:
Tool / Komponente
Zweck
SAP S/4HANA-System (Entwicklerzugang)
Eine SAP S/4HANA-Instanz, auf der ABAP-Entwicklungszugang besteht. Dies kann eine On-Premise-Installation oder ein Sandbox-/Testsystem sein. Es dient als Backend für die Erstellung benutzerdefinierter Tabellen, ABAP-Programme, OData-Services usw.
SAP GUI für Windows (und/oder SAP Business Client)
Traditioneller Desktop-Client zum Anmelden bei SAP-Systemen. Erforderlich für die Nutzung klassischer SAP-Entwicklungstransaktionen (SE11, SE80, SE38 usw.) und zur Überprüfung der Backend-Funktionalität. Die neuesten SAP GUI-Versionen unterstützen S/4HANA und enthalten SAP Logon zur Verwaltung von Verbindungen.
Eclipse IDE mit ABAP Development Tools (ADT)
Moderne IDE für die ABAP-Entwicklung. ABAP Development Tools ist ein Plugin für Eclipse, das eine ABAP-spezifische Entwicklungsumgebung für das Coding, das Design von CDS-Views, Debugging, Versionskontrolle (Transporte) usw. bereitstellt. Dies ist erforderlich, um mit erweiterten Funktionen wie ABAP CDS und neuen Programmiermodellen zu arbeiten. Eclipse (z. B. Eclipse 2023-xx) kann heruntergeladen und das ADT-Plugin über die Update-Seite https://tools.hana.ondemand.com hinzugefügt werden.
SAP Business Technology Platform (BTP) Konto
Ein SAP BTP-Konto (entweder eine kostenlose Testversion oder ein Enterprise-Konto) wird benötigt, um Cloud-Dienste zu nutzen. In BTP wird ein Subaccount erstellt, Dienste wie SAP Business Application Studio oder SAP Web IDE aktiviert und Ziele (Destinations) für die Verbindung mit dem S/4HANA-System konfiguriert. Das BTP Cockpit ist die Web-Oberfläche zur Verwaltung dieser Ressourcen.
SAP Business Application Studio (BAS) oder SAP Web IDE
Cloudbasierte IDEs zur Entwicklung von SAPUI5/Fiori-Anwendungen. BAS ist die neuere, containerbasierte Entwicklungsumgebung auf BTP, die eine Desktop-ähnliche Erfahrung im Browser bietet (und Web IDE ersetzt). Web IDE Full-Stack ist ein älteres (mittlerweile veraltetes) Tool, das ebenfalls in der Cloud oder lokal läuft und Vorlagen sowie Assistenten für die Fiori-Entwicklung bereitstellt. Eine dieser Umgebungen wird zur Erstellung und Bereitstellung der Fiori/UI5-App verwendet.
SAP Cloud Connector (optional, für On-Premise-Integration)
Falls das S/4HANA-System On-Premise betrieben wird, ermöglicht der SAP Cloud Connector als kleine On-Premise-Komponente eine sichere Verbindung zwischen der SAP BTP-Cloud und dem lokalen Netzwerk. Dies wird zusammen mit BTP-Zielkonfigurationen verwendet, um Cloud-Apps eine sichere Kommunikation mit On-Premise-S/4HANA-OData-Services zu ermöglichen.
Installation von SAP GUI und ABAP Development Tools
Um SAP GUI zu installieren, laden Sie den Installer (SAP GUI for Windows 7.70 oder 8.00) vom SAP Marketplaceherunter (erfordert eine S-User-ID) oder nutzen Sie eine Testumgebung, die es enthält. Die Installation erfolgt über einen Assistenten. Nach der Installation konfigurieren Sie eine Verbindung zu Ihrem SAP S/4HANA-System in SAP Logon(Sie benötigen den Anwendungsserver-Host, die Systemnummer und den Mandanten). Sobald die Verbindung hergestellt ist, können Sie SAP GUI öffnen und auf Transaktionen wie SE11 (Data Dictionary), SE38 (ABAP Editor)usw. zugreifen.
Für ABAP in Eclipse (ADT) installieren Sie zunächst eine unterstützte Eclipse IDE auf Ihrem Rechner (zum Beispiel Eclipse IDE for Java Developers). SAP empfiehlt die neueste stabile Eclipse-Version. Nach der Installation von Eclipse fügen Sie das ABAP Development Tools Plugin hinzu:
1. Öffnen Sie Eclipse und gehen Sie zu Help > Install New Software.
2. Geben Sie die Update-Site-URL für ADT ein (z. B. https://tools.hana.ondemand.com/latest).
3. Wählen Sie ABAP Development Tools aus der Liste und fahren Sie mit der Installation fort.
4. Nach einem Neustart öffnen Sie die ABAP Perspective in Eclipse.
5. In der ABAP Perspective erstellen Sie ein neues ABAP-Projekt, indem Sie eine Verbindung zu Ihrem S/4HANA-System herstellen (dies kann entweder über einen SAP Logon-Eintrag oder durch manuelle Eingabe der Verbindungsparameter erfolgen).
6. Danach können Sie ABAP-Pakete und Objekte in Eclipse durchsuchen und Entwicklungsaufgaben mit erweiterten Funktionen wie Syntaxprüfung, Code-Vervollständigung, Debugging und Git-Integration via abapGit durchführen.
Einrichtung von SAP BTP
Falls Sie noch kein SAP BTP-Konto haben, registrieren Sie sich für eine SAP BTP Trial- oder Free-Tier-Version. Sobald Sie ein globales Konto auf SAP BTP besitzen, öffnen Sie das SAP BTP Cockpit in Ihrem Webbrowser und führen die folgende Grundkonfiguration durch:
1. Subaccount erstellen
• Das Subaccount stellt eine isolierte Umgebung (Region + Plattform) dar.
• Wählen Sie eine Region (z. B. Europe Frankfurt) und einen Subaccount-Namen.
• Wählen Sie die Entitlements (Dienste) aus, die Sie nutzen möchten (z. B. SAP Business Application Studio, Portal Service (Launchpad), Destination Service, Cloud Connector usw.).
2. Space (Cloud Foundry Runtime)
• Falls Sie die Cloud Foundry Runtime verwenden (z. B. für die Bereitstellung von HTML5-Apps), aktivieren Sie Cloud Foundry und erstellen Sie eine Organisation und einen Space innerhalb des Subaccounts.
• Dies ist erforderlich, um bestimmte Dienste zu nutzen oder Webanwendungen bereitzustellen.
3. Tools & Services
• Gehen Sie zum Service Marketplace im Subaccount und aktivieren Sie den SAP Business Application Studio (BAS)oder SAP Web IDE Dienst.
• Falls Sie BAS nutzen, erstellen Sie eine Service-Instanz (Dev Space) vom Typ SAP Fiori (dieser ist bereits mit SAPUI5-Tools vorkonfiguriert).
• Falls Sie Web IDE verwenden, aktivieren Sie die Subscription für SAP Web IDE Full-Stack und starten diese über das BTP Cockpit.
4. Destinations einrichten
• Falls Ihre Fiori-App OData-Services aus S/4HANA abrufen muss, richten Sie eine Destination im BTP Cockpit ein.
• Gehen Sie zu Connectivity > Destinations und konfigurieren Sie eine neue Destination mit der URL zum OData-Endpoint Ihres S/4HANA-Systems (z. B. SAP Gateway Server URL), Authentifizierungsdetails (OAuth oder Basic Auth mit technischem Benutzer) usw.
• Falls Ihr S/4-System On-Premise ist, müssen Sie zusätzlich den SAP Cloud Connector einrichten, um den On-Prem-Host auf einen erreichbaren virtuellen Host abzubilden.
• Dazu installieren Sie den SAP Cloud Connector auf einem Server in Ihrem Netzwerk und melden sich mit Ihrem BTP-Konto an, um die Verbindung herzustellen.
Destinations sind essenziell, da sie es Cloud-Anwendungen ermöglichen, sichere On-Premise-OData-Services über SAPs Konnektivitätslayer zu konsumieren.
Konfiguration der Fiori/UI5-Entwicklungsumgebung
Nachdem BAS oder Web IDE aktiviert ist, konfigurieren Sie Ihre Fiori-Entwicklungsumgebung:
• In SAP Business Application Studio (BAS)
• Öffnen Sie Ihren Dev Space, der bereits das SAPUI5 SDK und die notwendigen Werkzeuge enthält.
• Falls erforderlich, importieren Sie relevante SDKs oder richten ein Git-Repository für Ihr Projekt ein.
• BAS ist in der Regel bereits für die Fiori-Entwicklung vorkonfiguriert.
• In SAP Web IDE
• Starten Sie Web IDE über das BTP Cockpit (Service > SAP Web IDE > Open Web IDE).
• Es ist keine lokale Installation erforderlich, da es direkt im Browser läuft.
• Überprüfen Sie, ob die Destination zum S/4HANA-System korrekt konfiguriert ist (Web IDE nutzt die in BTP Cockpit definierten Destinations zur Entdeckung von OData-Services).
• SAPUI5-Bibliotheksversion sicherstellen
• Stellen Sie sicher, dass Sie Zugriff auf eine SAPUI5-Version haben, die mit der S/4HANA-Fiori-Frontend-Version übereinstimmt.
• In BAS/Web IDE können Sie die SAPUI5-Version auswählen (z. B. 1.108 oder 1.96, abhängig von der S/4HANA-Version).
• Alternative On-Premise-Entwicklung für UI5
• Falls Sie eine On-Premise-Entwicklung bevorzugen, könnten Sie alternativ die SAP Web IDE Personal Edition lokal installieren.
• Sie können auch jede andere IDE nutzen und mit den UI5 CLI-Tools arbeiten.
• Allerdings wird die Verwendung der SAP Cloud-IDEs empfohlen, da sie eine nahtlose Integration mit SAP-Systemen bieten.
Ihre Entwicklungsumgebung ist nun bereit
Mit dieser Einrichtung verfügen Sie über:
✅ ABAP-Entwicklungszugang (über SAP GUI und Eclipse ADT) für Backend-Entwicklung
✅ SAP BTP mit einer Fiori-Entwicklungsumgebung (BAS oder Web IDE) für UI-Entwicklung
In den nächsten Abschnitten werden wir ABAP Add-ons und Fiori-Apps mit dieser Umgebung entwickeln. 🚀
3. Entwicklung von SAP Add-ons mit ABAP
SAP ABAP wird verwendet, um S/4HANA zu erweitern, indem benutzerdefinierte Objekte erstellt und Standardfunktionen erweitert werden. In diesem Abschnitt behandeln wir die zentralen ABAP-Entwicklungsaufgaben:
• Erstellung benutzerdefinierter Tabellen und Funktionsbausteine,
• Entwicklung von Berichten und Transaktionen,
• Nutzung von Erweiterungs-Frameworks (BADIs und User Exits) zur Modifikation des Standardverhaltens,
• Erstellung von ABAP Core Data Services (CDS) Views.
Vorausgesetzt wird eine Vertrautheit mit der SAP-Entwicklungsumgebung (SE11, SE80 usw.).
ABAP-Entwicklungskonzepte
In SAP werden Entwicklungsobjekte (Programme, Tabellen, Datenelemente, Klassen usw.) typischerweise in der ABAP Workbench (SE80) oder in der Eclipse-basierten ADT (ABAP Development Tools) erstellt. ABAP folgt einem modularen Ansatz:
• Datenstrukturen werden im ABAP Dictionary (Transaktion SE11) erstellt. Dazu gehören Tabellen, Datenelemente (Felddefinitionen), Strukturen, Sichten und Suchhilfen.
• Wiederverwendbare Logik kann in Funktionsbausteinen (SE37), Klassenmethoden (SE24 für Klassen) oder BAPIs gekapselt werden.
• Berichte (ausführbare Programme) werden über SE38 oder in Eclipse ADT erstellt (REPORT oder PROGRAM Statement). Transaktionen (T-Codes) werden über SE93 angelegt, um diese Programme oder Funktionsbausteine für Endbenutzer ausführbar zu machen.
• SAP-Erweiterungstechniken (User Exits, Customer Exits, BADIs, Enhancement Spots) ermöglichen es, benutzerdefinierte Logik in SAP-Standardprozesse einzufügen, ohne den Originalcode zu verändern.
• ABAP CDS Views werden in Eclipse ADT als .ddl-Quelldateien definiert und bieten eine leistungsstarke Möglichkeit zur Erstellung von Datenmodellen und deren Bereitstellung für OData.
Im Folgenden werden diese Aspekte Schritt für Schritt behandelt.
Erstellung einer benutzerdefinierten Tabelle und eines Funktionsbausteins
Benutzerdefinierte Tabelle erstellen
Angenommen, wir möchten eine benutzerdefinierte Datenbanktabelle erstellen, um unternehmensspezifische Daten wie „Kundenumsatz nach Region“ zu speichern. Dazu verwenden wir die Transaktion SE11 (ABAP Dictionary) und gehen wie folgt vor:
1. SE11 öffnen und Datenbanktabelle auswählen. Einen Namen für die neue Tabelle eingeben (z. B. ZCUST_REV – benutzerdefinierte Objekte beginnen in der Regel mit „Z“ oder „Y“) und auf Erstellen klicken.
2. Eine Kurzbeschreibung für die Tabelle eingeben, eine Lieferklasse wählen (z. B. ‘A’ für Anwendungstabellen) und die Tabellenpflege-Attribute festlegen (z. B. ob Einträge über SM30 gepflegt werden können).
3. Im Reiter „Felder“ die Tabellenfelder definieren:
• Feldname
• Datenelement oder vordefinierter Typ
• Länge
• Schlüsselkennzeichnung (Primary Key)
• Beispiel für Felder:
• ZCUST_NO (Kundennummer, NUMC(6), Schlüsselfeld)
• ZREGION (Region, CHAR(3), Schlüsselfeld)
• ZREVENUE (Umsatz, DEC(15,2))
• Falls keine vordefinierten Datenelemente vorhanden sind, kann der Button „Predefined Type“ genutzt werden, um Typen direkt festzulegen.
4. Technische Einstellungen festlegen (Datenklasse und Größenkategorie über den Button „Technische Einstellungen“ konfigurieren), um die Datenbank-Speicherparameter zu definieren.
5. Tabelle speichern und aktivieren – Die Aktivierung erstellt die physische Tabelle in der Datenbank. Danach kann sie über SE11 oder SE16/SE16N aufgerufen werden, um Testdaten einzugeben.
Abbildung: Definition einer benutzerdefinierten Tabelle im ABAP Dictionary (SE11). In diesem Beispiel wird die Tabelle ZCUST_REV mit Feldern (z. B. Kundennummer) erstellt. Der Entwickler legt für jedes Feld den Namen, den Datentyp (NUMC mit Länge 6 für die Kundennummer) und die Schlüsselkennzeichnung fest. Solche benutzerdefinierten Tabellen ermöglichen die persistente Speicherung anwendungsspezifischer Daten in der S/4HANA-Datenbank.
Sobald die Tabelle aktiviert ist, kann sie von ABAP-Programmen beschrieben oder ein Pflegedialog für Benutzererstellt werden, um Einträge zu bearbeiten. Benutzerdefinierte Tabellen werden über Workbench-Transporte systemübergreifend transportiert.
Funktionsbaustein
Um eine wiederverwendbare Funktion zu erstellen (z. B. eine Funktion zur Berechnung eines Bonus oder zur Abfrage aggregierter Daten), nutzen Sie SE37 (Function Builder):
1. SE37 öffnen, Funktionsbaustein erstellen auswählen und einen Namen vergeben (z. B. ZCALC_BONUS) innerhalb einer benutzerdefinierten Funktionsgruppe (Funktionen existieren in Gruppen). Eine Kurzbeschreibung angeben.
2. Import-Parameter, Export-Parameter und Ausnahmen (Exceptions) im oberen Bereich des Function Builders definieren. Diese Parameter bilden die Schnittstelle der Funktion.
3. Im Bereich Source Code die ABAP-Logik implementieren. Zum Beispiel:
• Eine Mitarbeiter-ID importieren
• Die Datenbank nach Verkaufsdaten abfragen
• Einen Bonus berechnen
• Den Bonusbetrag als Exportwert zurückgeben
4. Den Funktionsbaustein speichern und aktivieren. Er kann nun aus jedem ABAP-Programm aufgerufen oder als remote-fähige API (RFC) freigegeben werden.
Funktionsbausteine können auch als User Exits dienen (SAP stellt manchmal leere Funktionsbausteine bereit, die bei bestimmten Ereignissen aufgerufen und von Kunden befüllt werden). Zudem können sie in OData- oder SOAP-Services eingebunden und für externe Systeme bereitgestellt werden.
Developing a Custom Report and Transaction Code
Erstellung eines benutzerdefinierten Berichts und Transaktionscodes
Benutzerdefinierter Bericht
ABAP-Berichte sind eigenständige ausführbare Programme, die häufig für Datenabfragen, einfache Ausgaben oder Batch-Jobs verwendet werden. Um einen Bericht zu erstellen:
1. Öffnen Sie SE38 (ABAP Editor) und erstellen Sie ein neues Programm (Typ: “Ausführbar”).
2. Alternativ können Sie in Eclipse ADT ein neues ABAP-Programm erstellen.
Ein einfacher Bericht, der Kunden und ihre Umsätze auflistet, könnte folgendermaßen aussehen:
REPORT zcustomer_revenue_report.
TABLES: zcust_rev. " declare usage of the custom table
SELECT zcust_no AS Customer, SUM(zrevenue) AS Total_Revenue
FROM zcust_rev
GROUP BY zcust_no
INTO TABLE @DATA(lt_rev_by_cust).
LOOP AT lt_rev_by_cust INTO DATA(ls_line).
WRITE: / ls_line-Customer, ls_line-Total_Revenue.
ENDLOOP.
Dieses Programm führt eine SELECT-Abfrage auf der benutzerdefinierten Tabelle aus, um den Umsatz nach Kunden zu aggregieren. Anschließend werden die Ergebnisse in einer Schleife ausgegeben. In der Praxis werden Berichte oft mit der ALV-Gitteranzeige für eine bessere Benutzeroberfläche und Selektionsbildschirme für Benutzereingaben (mittels PARAMETERS oder SELECT-OPTIONS im Code) erstellt.
Nach der Erstellung des Berichts muss dieser aktiviert werden. Sie können ihn direkt in SE38 oder über SA38 durch Eingabe des Programmnamen ausführen.
Falls Endbenutzer diesen Bericht einfach starten sollen, kann ein Transaktionscode erstellt werden:
1. Öffnen Sie SE93 (Transaktionen pflegen).
2. Wählen Sie Erstellen und geben Sie einen Transaktionscode ein (z. B. ZCUST_REV_REP).
3. Wählen Sie als Transaktionstyp “Programm und Selektionsbildschirm” und verknüpfen Sie die Transaktion mit dem Berichtsprogramm.
4. Speichern Sie die Transaktion – danach können Benutzer den Bericht über diesen Transaktionscode aus dem SAP Easy Access-Menü ausführen.
Benutzerdefinierte Transaktionen können auch in Benutzermenüs oder Rollen eingebunden werden, sodass sie im SAP Fiori Launchpad (als GUI-Transaktionen) oder im SAP GUI Easy Access-Menü angezeigt werden.
Erweiterung der SAP-Standardfunktionalität (BADIs und User Exits)
SAP bietet Erweiterungsmechanismen, mit denen benutzerdefinierter Code an vordefinierten Einhängepunkten (Hook Points) in Standardprogrammen ausgeführt werden kann. Dies stellt sicher, dass SAP-Standardcode nicht geändert wird (was zukünftige Upgrades erschweren würde), während dennoch individuelle Logik eingefügt werden kann. Die zwei häufigsten Erweiterungstechniken sind User Exits (einschließlich Customer Exits) und BADIs (Business Add-Ins):
User Exits / Customer Exits
Dies sind klassische (meist prozedurale) Erweiterungstechniken. Ein User Exit ist eine Subroutine oder ein Funktionsbaustein, den SAP an bestimmten Stellen im Programm aufruft. Standardmäßig tun diese Exits nichts, können aber von Kunden implementiert werden.
📌 Beispiel:
Im SD-Modul ermöglicht der User Exit MV45AFZZ das Einfügen benutzerdefinierter Prüfungen während der Auftragsbearbeitung.
So implementieren Sie einen User Exit:
1. Finden Sie die relevante SMOD/CMOD-Erweiterung. SAP gruppiert mehrere Exits oft in einer SMOD-Erweiterungmit einem bestimmten Namen.
2. Öffnen Sie CMOD, erstellen Sie ein Projekt, weisen Sie die relevante Erweiterung zu und fügen Sie Ihren Code in die vorgesehenen Includes oder Funktionsbausteine ein.
3. Nach der Aktivierung wird der benutzerdefinierte Code automatisch als Teil des Standardprozesses ausgeführt.
➡ User Exits erfordern oft Code in Includes oder Funktionsbausteinen, die SAP als Exit-Punkte definiert hat.
BADIs (Business Add-Ins)
BADIs sind eine modernere, objektorientierte Erweiterungstechnik. Ein BADI ist eine Schnittstelle mit einer oder mehreren Methoden, die SAP an einem bestimmten Punkt im Code bereitstellt. Entwickler können eine oder mehrere Implementierungen dieser Schnittstelle erstellen, um ihren benutzerdefinierten Code auszuführen.
BADIs werden über die Transaktionen SE18 (Definition, von SAP) und SE19 (Implementierung, durch Kunden) verwaltet. SAP stellt BADI-Definitionen bereit (z. B. gibt es einen BADI zur Erweiterung der Rechnungsbuchung). Der Entwickler erstellt dazu eine BADI-Implementierung, in der er die Logik in einer der angebotenen Methoden implementiert.
Hauptunterschied zwischen User Exits und BADIs:
✅ User Exits sind ältere, prozedurale Methoden, die oft begrenzter sind (z. B. in Includes eingebettet).
✅ BADIs sind vollständig objektorientiert und können mehrere Implementierungen haben (einige BADIs erlauben parallele oder filtergesteuerte Implementierungen).
Implementierung eines BADIs – Schritt für Schritt
1. Die richtige BADI-Definition finden
• Verwenden Sie SE18, die SAP-Dokumentation oder die “Wo wird verwendet”-Suche in SAP GUI mit dem Begriff „BADI“.
• In neueren Systemen werden viele Erweiterungen über Enhancement Spots verwaltet, die mehrere BADIs enthalten können.
2. Neue Implementierung in SE19 erstellen
• Öffnen Sie SE19, erstellen Sie eine neue BADI-Implementierung, geben Sie ihr einen Namen und wählen Sie die passende BADI-Definition aus.
3. Klasse für die Implementierung erstellen
• Das System fordert Sie auf, eine Klasse zu erstellen, die die BADI-Schnittstelle implementiert.
• In dieser Klasse schreiben Sie die benutzerdefinierte Logik in den bereitgestellten Methoden.
4. BADI-Implementierung aktivieren
• Sobald die Implementierung aktiviert ist, wird Ihr Code automatisch ausgeführt, wenn das Standardprogramm den BADI über CALL BADI oder das Enhancement Framework aufruft.
• Falls es mehrere Implementierungen gibt, werden entweder alle parallel oder nur die passende Implementierung anhand einer Filterbedingung ausgeführt – je nach BADI-Konfiguration.
Beispiel für eine BADI-Implementierung
Angenommen, SAPs Standard-Rechnungsbuchung verwendet den BADI BADI_INVOICE_POST mit der Methode CHECK_DATA, die vor der Buchung der Rechnung zur Datenvalidierung aufgerufen wird.
➡ Ein Entwickler könnte diesen BADI implementieren, um zusätzliche Prüfungen durchzuführen, z. B.:
✅ Überprüfung einer benutzerdefinierten Tabelle auf spezielle Regeln
✅ Abgleich mit einem externen System, bevor die Rechnung gebucht wird
📌 Wichtig:
Der BADI-Mechanismus stellt sicher, dass der benutzerdefinierte Code ohne Änderung der SAP-Standardlogik ausgeführt wird und so eine flexible und wartbare Erweiterung der SAP-Funktionalität ermöglicht.
📖 Laut offizieller SAP-Dokumentation:
“BADIs (Business Add-Ins) sind ein leistungsstarker Mechanismus in ABAP zur Erweiterung der SAP-Standardfunktionalität, ohne den Kerncode zu verändern. Sie bieten eine flexible und wartbare Möglichkeit, SAP-Anwendungen anzupassen.”
Ähnlich ermöglichen User Exits Erweiterungen an vordefinierten Punkten (z. B. am Ende von Form-Routinen usw.). Beide Techniken können innerhalb eines Projekts verwendet werden:
📌 Beispiel: Ein User Exit wird genutzt, um ein neues Feld auf einem Bildschirm hinzuzufügen, während ein BADIverwendet wird, um den Wert für dieses Feld zu befüllen.
Schritte zur Implementierung eines User Exits (Kurzübersicht)
1. Den Exit identifizieren – über SAP Notes oder Entwicklungsdokumentation.
• Beispiel: Ein SAP SD Exit für Verkaufsaufträge könnte sich im Programm MV45AFZZ befinden.
2. CMOD aufrufen → Projekt erstellen → die relevante Erweiterung zuweisen (eine Erweiterung fasst verwandte Exits zusammen).
3. Für jede Komponente der Erweiterung (z. B. ein Include oder Funktionsbaustein) auf Komponenten klicken und zum entsprechenden Include navigieren.
• Den benutzerdefinierten Code innerhalb des Includes schreiben (zwischen FORM…ENDFORM oder wie vorgesehen).
4. Das Projekt aktivieren – Der Code in den Includes wird jetzt als Teil des SAP-Standardprozesses ausgeführt.
Schritte zur Implementierung eines BADIs (Kurzübersicht)
1. Den BADI-Namen finden
• Über SE18 oder durch Debugging/SQL-Trace prüfen, ob für einen bestimmten Prozess GET_INSTANCE aufgerufen wird.
2. SE19 öffnen → Neue BADI-Implementierung erstellen → die BADI-Definition eingeben.
3. Eine Implementierungsklasse angeben (oder Standardklasse übernehmen) und zum Klasseneditor navigieren.
4. Code in der Methode schreiben
• Beispiel: Falls die Methode CHECK_DATA Importparameter hat, kann eine Prüfung implementiert werden, bei Bedarf ein Export-Flag gesetzt oder eine Exception ausgelöst werden.
5. Die Implementierung aktivieren.
Zusätzliche BADI-Optionen
Viele BADIs haben eine Filteroption, d. h. die Implementierung kann auf bestimmte Kriterien beschränkt werden (z. B. Buchungskreis oder Land). Diese Einstellungen werden in der BADI-Implementierungskonfiguration festgelegt.
Erweiterungs-Framework in SAP (ab ECC 6.0 und S/4HANA)
Mit ECC 6.0 und S/4HANA führte SAP Implizite und Explizite Erweiterungen ein.
Diese ermöglichen es, Erweiterungen in bestimmten Coding-Blöcken oder am Anfang/Ende von Form-Routineneinzufügen.
📌 Diese werden direkt im ABAP Editor über die Option „Enhance“ verwaltet und sind eine weitere Möglichkeit, Standard- oder benutzerdefinierten Code zu erweitern.
📢 Für mittlere Entwicklungsprojekte sind jedoch BADIs und User Exits die am häufigsten verwendeten Techniken und sollten im Fokus stehen.
Erstellung und Bereitstellung von ABAP CDS Views
ABAP Core Data Services (CDS) Views sind ein zentraler Bestandteil der S/4HANA-Entwicklung und spielen eine entscheidende Rolle in SAPs Strategie für in-memory-optimierte Programmierung.
📌 CDS Views ermöglichen es, komplexe Logik und Berechnungen direkt auf die HANA-Datenbankebene zu verlagern. Dadurch können sie effizient in Benutzeroberflächen (Fiori) oder Integrationsszenarien wiederverwendet werden.
➡ CDS Views werden in ABAP mit einem Eclipse-basierten Editor definiert.
➡ Sie verwenden eine deklarative SQL-ähnliche Syntax und integrieren sich nach der Aktivierung mit dem ABAP Data Dictionary.
Wichtige Merkmale von CDS Views
✔ CDS Views werden mit der Syntax DEFINE VIEW in einer DDL-Quelldatei definiert.
• Sie können Basis-Tabellen oder andere Views referenzieren,
• Filter, Joins, Assoziationen und sogar einfache Berechnungen anwenden.
✔ CDS Views unterstützen Annotationen – Metadaten, die:
• Den View als OData-Service bereitstellen,
• Das UI-Verhalten in Fiori Elements steuern.
✔ Nach der Aktivierung erzeugt ein CDS View:
• Eine SQL-View in der HANA-Datenbank,
• Ein Laufzeitobjekt in ABAP, das in ABAP-Programmen per SELECT-Abfrage wie eine Tabelle genutzt werden kann.
Erstellung eines CDS Views (Schritt-für-Schritt)
1️⃣ In Eclipse ADT:
• Ein neues ABAP DDL-Quelldokument erstellen (z. B. ZCUST_REVENUE_VIEW).
• Ein Transportauftrag und ein Paket müssen je nach Projekt ausgewählt werden.
2️⃣ Verwendung der CDS-Syntax zur Definition des Views.
• Beispiel:
@AbapCatalog.sqlViewName: 'ZCUSTREVV'
@AbapCatalog.compiler.compareFilter: true
@OData.publish: true
define view ZCUST_REVENUE_VIEW
as select from zcust_rev
{
zcust_no,
zregion,
sum( zrevenue ) as total_revenue
}
group by zcust_no, zregion
TDies definiert einen CDS-View, der die benutzerdefinierte Tabelle nach Kunde und Region aggregiert und den Umsatz summiert.
Die hier verwendeten Annotationen geben den zugehörigen SQL-View-Namen an und ermöglichen die OData-Expose-Funktion.
📌 @OData.publish: true würde in SAP S/4HANA automatisch einen OData-Service für diesen View generieren.
Schritte nach der Definition des CDS-Views
1️⃣ CDS-View aktivieren
• Die Aktivierung erstellt die Datenbank-View und macht den OData-Service verfügbar.
• Falls OData genutzt wird, generiert SAP im Hintergrund automatisch einen Service, den Sie in Transaktion /IWFND/MAINT_SERVICE finden und für die Nutzung aktivieren können.
2️⃣ CDS-View testen
• Datenvorschau in Eclipse durchführen oder
• In SE16 die generierte SQL-View aufrufen.
CDS Views als mehrschichtige Architektur
CDS Views können in Schichten unterteilt werden:
📌 Basisschicht → Komposit-Schicht → Konsumschicht (Consumption Views).
✅ In S/4HANA werden CDS Views intensiv genutzt – viele vorkonfigurierte S/4HANA-Analysen und Fiori-Elemente basieren darauf.
✅ Ein großer Vorteil ist, dass durch wenige Annotationen ein CDS-View als OData-Service bereitgestellt werden kann.
• Dadurch entfällt oft das manuelle Erstellen eines OData-Services für einfache Leseoperationen – die Plattform generiert dies automatisch.
Bereitstellung und Transport von CDS Views
• Nach der Erstellung können CDS Views über die üblichen SAP-Transporte in andere Systeme übertragen werden.
• CDS Views sind Objekte des Typs R3TR DDLS und können nach Entwicklung und Tests von DEV nach QA und Produktion transportiert werden.
Zusammenfassung
Die ABAP-Entwicklung für Add-ons umfasst:
✔ Die Erstellung benutzerdefinierter Dictionary-Objekte (Tabellen, Datenelemente),
✔ Das Schreiben von ABAP-Programmen oder die Erweiterung bestehender Programme,
✔ Die Nutzung von ABAP-Frameworks wie CDS und Enhancement-Spots, um Standardfunktionen upgradesicher zu erweitern.
4. Entwicklung von Fiori-Anwendungen mit SAP BTP
In diesem Abschnitt wechseln wir zur Frontend-Entwicklung:
📌 SAP Fiori-Anwendungen mit SAPUI5.
Diese Anwendungen laufen im Webbrowser (oder im Fiori Launchpad) und kommunizieren mit dem SAP S/4HANA-Backend über OData-Services.
➡ Wir nutzen SAPs cloudbasierte Entwicklungsumgebungen (SAP Web IDE oder SAP Business Application Studio auf SAP BTP), um eine Fiori-App zu erstellen, zu testen und bereitzustellen.
Überblick über die SAP Fiori/UI5-Architektur
Eine SAP Fiori-Anwendung folgt typischerweise einem Client-Server-Modell:
✔ Client-Seite → Die SAPUI5-App (HTML5/JavaScript-Anwendung) läuft im Browser und verwaltet die Benutzeroberfläche und Benutzerinteraktionen.
✔ Server-Seite →
• Das SAP S/4HANA-System (oder eine SAP BTP ABAP-Umgebung) stellt Geschäftsdaten über OData-Servicesbereit.
• Die SAP Gateway-Komponente (integriert in S/4HANA) veröffentlicht diese OData REST-Endpunkte, die von der UI5-App genutzt werden, um Daten zu erstellen, zu lesen, zu aktualisieren oder zu löschen (CRUD-Operationen).
SAP Fiori Launchpad – Der zentrale Einstiegspunkt
SAP Fiori-Apps werden aus dem SAP Fiori Launchpad gestartet.
📌 Das Launchpad ist eine Web-Plattform, die als zentrale Homepage mit Kacheln für jede App dient.
✔ Jede Kachel repräsentiert eine Fiori-App (oder einen Link zu einer klassischen GUI-Transaktion).
✔ Die Kachel ist mit einem OData-Service und einem UI5-Komponenten-Namen verknüpft.
✔ Wenn ein Benutzer eine Kachel klickt, wird die UI5-App im Browser geladen und ruft die OData-Services im Backend auf, um Daten zu holen oder zu senden.
🔹 Fiori-Apps sind rollenbasiert:
• Benutzer sehen nur die Apps, für die sie berechtigt sind.
• Die Berechtigungen steuern, welche Aktionen innerhalb der App möglich sind.
Architektur: Trennung von UI und Backend durch OData
Fiori nutzt ein entkoppeltes Modell, in dem die UI vom Backend durch OData-Services getrennt ist:
✅ Der gleiche OData-Service kann mehrere Oberflächen bedienen (Web UI, mobile UI usw.).
✅ Die UI kommuniziert nicht direkt mit der Datenbank, sondern über definierte Service-APIs.
Zusammenfassung
➡ “SAP Fiori-Apps werden mit SAPUI5 entwickelt, über das SAP Fiori Launchpad gestartet und beziehen Geschäftsdaten über OData-Services aus dem SAP S/4HANA-Backend.”
✔ Die Architektur ist stateless (jeder OData-Aufruf ist unabhängig → bessere Skalierbarkeit).
✔ Moderne Konzepte wie “Draft Handling” für langlaufende Transaktionen werden unterstützt.
Jetzt entwickeln wir eine Fiori-App – Schritt für Schritt. 🚀
Erstellung einer Fiori-App mit SAP Web IDE / Business Application Studio
In diesem Beispiel nutzen wir die SAP Web IDE (Full-Stack) für die Entwicklung einer Fiori-App.
📌 Die Schritte sind sehr ähnlich in SAP Business Application Studio (BAS).
Schritt-für-Schritt-Anleitung zur Erstellung einer Fiori-App
1️⃣ SAP Web IDE starten
• Öffnen Sie SAP Web IDE über das SAP BTP Cockpit (stellen Sie sicher, dass es zuvor aktiviert wurde, wie in Abschnitt 2 beschrieben).
• Die webbasierte Entwicklungsumgebung sollte nun sichtbar sein.
• Wählen Sie File > New > Project from Template, um den Projekt-Wizard für eine neue Fiori-App zu starten.
• (In Business Application Studio: Öffnen Sie einen Dev Space und nutzen den Befehl „Fiori: Create Project“ oder die Yeoman-Templates.)
2️⃣ Projektvorlage auswählen
• Die SAP Web IDE bietet vordefinierte Projektvorlagen, z. B.:
• SAP Fiori Worklist Application
• SAPUI5 Application
• Master-Detail Application
• Wählen Sie z. B. die SAP Fiori Master-Detail Application und klicken Sie auf Next.
3️⃣ Projekt konfigurieren
• Geben Sie einen Projektnamen ein (z. B. CustomerRevenueApp).
• Falls erforderlich, legen Sie ein Namespace fest.
• Wählen Sie die Datenquelle für die App aus:
• Falls ein OData-Service bereits existiert (z. B. der zuvor erstellte CDS View oder ein SAP-Standard-Service), wählen Sie Service Catalog.
• Wählen Sie dann die vorkonfigurierte Destination und den OData-Service aus S/4HANA.
• Der Wizard ruft automatisch die Service-Metadaten ab.
• Wählen Sie das Entity Set, das in der App angezeigt werden soll (z. B. eine Entität für Kundenumsätze).
4️⃣ Wizard abschließen
• Die Web IDE generiert nun ein vollständiges Projekt mit allen notwendigen Dateien:
• Controller (JavaScript)
• Views (XML)
• i18n-Texte (Mehrsprachigkeit)
• manifest.json (Anwendungsbeschreibung)
• Dieses generierte Projekt ist direkt lauffähig und kann sofort getestet werden.
5️⃣ App ausführen und testen
• Klicken Sie mit der rechten Maustaste auf den neu erstellten Projektordner und wählen Sie Run > Run as Web Application.
• Dies öffnet ein neues Browser-Tab mit einer Test-URL (häufig Port 8080 für lokale Tests oder ein FLP Sandbox-Modus in der Cloud).
• Die App wird geladen und ruft den OData-Service auf (über die konfigurierte Destination).
• Falls alles korrekt eingerichtet ist, sehen Sie nun Echtdaten aus Ihrem Backend, z. B.:
• Eine Kundenliste
• Eine Detailseite mit Umsatzdaten für jeden Kunden.
6️⃣ Die App weiterentwickeln
• Nun können Sie den generierten Code anpassen:
• Öffnen Sie die View-XML-Dateien, um das UI-Layout oder die Labels zu ändern.
• Bearbeiten Sie die Controller-JS-Dateien, um zusätzliche Logik hinzuzufügen (z. B. Eingabevalidierung, dynamische Navigation).
• Passen Sie die i18n-Property-Dateien an, um Texte zu lokalisieren.
• Neue UI-Elemente (Diagramme, Tabellen, Filter) mit SAPUI5-Steuerelementen hinzufügen und mit OData-Daten binden.
Typische Entwicklungsaufgaben in einer Fiori-App
✅ Datenformatierung (mit Formattern in UI5).
✅ Navigation zwischen Views (falls nicht im Template enthalten).
✅ Custom OData-Calls – Methodenaufrufe für Aktionen wie Genehmigungen oder Datenänderungen.
✅ Leistungsoptimierung
• Nutzung von $select oder $expand in OData-Abfragen, um die Datenlast zu minimieren.
Debugging und Testen während der Entwicklung
🛠 Während der Entwicklung wird häufig:
✔ Die Browser-Konsole (Chrome DevTools) zur Fehlersuche verwendet.
✔ Die UI5-Debugging-Tools genutzt.
✔ Der Fiori Launchpad Sandbox-Modus in SAP Web IDE oder BAS verwendet, um mehrere Apps in einer simulierten Launchpad-Umgebung zu testen.
🚀 Nächster Schritt: Die Fiori-App weiterentwickeln und für den produktiven Einsatz bereitstellen!
Abbildung: Beispiel einer SAP Fiori Launchpad-Startseite mit Kacheln
Jede Kachel (quadratisches Symbol) stellt eine Fiori-App oder eine geschäftliche Aufgabe dar (z. B. Aufträge verwalten, Teamkalender). Das Fiori Launchpad bietet einen rollenbasierten, personalisierten Einstiegspunkt für Endbenutzer.
Beim Klicken auf eine Kachel wird die SAPUI5-App gestartet, die anschließend über OData-Services mit dem S/4HANA-Backend interagiert.
Verbindung der Fiori-App mit dem SAP S/4HANA-Backend
Damit die Fiori-App Echtzeitdaten anzeigen oder Transaktionen ausführen kann, muss sie mit SAP S/4HANA kommunizieren.
➡ Dies erfolgt über OData-Services.
📌 In unserer Umgebung wurde eine SAP BTP-Destination für den S/4HANA OData-Service konfiguriert.
📌 Wenn die UI5-App aus der BTP-Umgebung ausgeführt wird, nutzt sie diese Destination zur Kommunikation mit dem Backend.
Wichtige Schritte für die Integration
✔ OData-Service in S/4HANA aktivieren
• Verwenden Sie /IWFND/MAINT_SERVICE, um den OData-Service zu aktivieren.
• Falls ein CDS-View mit @OData.publish: true erstellt wurde, muss der zugehörige ZCUST_REVENUE_VIEW_CDS-Service aktiviert werden.
✔ Datenquelle in manifest.json der Fiori-App definieren
• In SAP Web IDE auf BTP wird oft eine Route wie /destinations/YourDestinationName/ im OData-Service-URL verwendet.
• Dies ermöglicht, dass der Aufruf über den SAP Cloud Connector/Destination-Setup erfolgt, um das On-Premise-System zu erreichen.
✔ BAS und SAP Launchpad Service nutzen
• Falls BAS verwendet wird und die App ins SAP Launchpad Service bereitgestellt wird, muss die Destination ähnlich gemappt werden.
• Während der Entwicklung kann die App in einer “Mock”-Umgebung oder mit einem Proxy getestet werden.
✔ Integration testen
• Nutzen Sie Tools wie die Netzwerkanalyse des Browsers oder die SAP Gateway-Fehlerprotokolle (/IWFND/ERROR_LOG), um Probleme zu debuggen (z. B. fehlende Berechtigungen oder Service-Fehler).
• Falls notwendig, müssen OData-Aufrufe angepasst oder $metadata-Requests hinzugefügt werden.
📌 Beispiel:
Wenn die App eine Kundenliste lädt, sendet sie einen OData-Request an:
➡ .../ZCUST_REVENUE_VIEW_CDS/CustomerRevenueSet
➡ SAP Gateway empfängt die Anfrage, führt den CDS-View aus und sendet die Daten als JSON-Antwort an die UI5-App.
🔒 Sicherheitsaspekt:
✔ Der in der BTP-Destination hinterlegte Benutzer benötigt eine PFCG-Rolle in S/4HANA, die Zugriff auf den OData-Service und das Entity Set gewährt.
Bereitstellung einer Fiori-App auf SAP BTP
Nach der Entwicklung und dem Testen muss die Fiori-App bereitgestellt werden, damit Endbenutzer darauf zugreifen können.
Es gibt zwei gängige Bereitstellungsszenarien:
1️⃣ Bereitstellung auf SAP BTP (Cloud Foundry) als HTML5-Anwendung
➡ In SAP Web IDE gibt es die Option Deploy > Deploy to SAP Cloud Platform.
✔ Dies verpackt die UI5-App und stellt sie als HTML5-Anwendung im Cloud Foundry Space des BTP-Subaccountsbereit.
✔ Nach der Bereitstellung kann die App über eine URL aufgerufen oder in das SAP Launchpad Service (Portal) integriert werden.
📌 Schritte zur Bereitstellung:
1. In SAP Web IDE:
• Deploy to SAP Cloud Platform auswählen und sich mit BTP-Zugangsdaten anmelden.
2. Zielumgebung auswählen:
• Subaccount und Cloud Foundry Space wählen.
• OData-Destination angeben, damit die App in der Cloud die richtige Verbindung zu S/4HANA findet.
• Nach der Bereitstellung erscheint die App in der HTML5 Applications Sektion des BTP Cockpits.
3. App in das Fiori Launchpad integrieren:
• In BTP Cockpit zu Services > Launchpad (Site Manager) navigieren.
• Neue Site erstellen oder eine bestehende verwenden.
• Neue App im Content Manager hinzufügen:
• Titel vergeben
• Cloud Foundry HTML5 App als Speicherort wählen
• Die gerade bereitgestellte Anwendung aus der Dropdown-Liste auswählen
• Kachel-Stil und Ziel konfigurieren
4. App einer Gruppe und einem Katalog zuweisen.
5. Rolle für Benutzer zuweisen.
✅ Jetzt kann sich ein Benutzer im Fiori Launchpad anmelden und die Kachel für die App sehen.
✅ Ein Klick auf die Kachel öffnet die Live-Anwendung, die jetzt auf BTP läuft und mit S/4HANA kommuniziert.
2️⃣ Bereitstellung auf einem On-Premise SAP Front-End Server (FES)
Falls kein BTP-Frontend genutzt wird, kann die App auch auf einem lokalen SAP FES (Front-End Server) bereitgestellt werden:
📌 Schritte zur Bereitstellung auf FES:
✔ Die UI5-App muss ins SAPUI5-ABAP-Repository hochgeladen werden:
• Transaktion /UI5/UI5_REP_UPLOAD
• Oder via SAP Web IDE > Deploy to SAPUI5 ABAP Repository
✔ Danach kann die App über das On-Premise Fiori Launchpad gestartet werden.
➡ Dieses Szenario ist nur relevant, wenn BTP nicht genutzt wird.
➡ Unser Fokus liegt auf der Cloud-Bereitstellung über BTP.
Zusammenfassung: Bereitstellung unserer benutzerdefinierten App in SAP BTP Launchpad
1️⃣ Deployment starten → In Web IDE auf “Deploy to SAP Cloud Platform” klicken
2️⃣ Subaccount & Cloud Foundry Space wählen → App wird in BTP bereitgestellt
3️⃣ In BTP Launchpad einbinden → App im Launchpad Service als Kachel anlegen
4️⃣ Berechtigungen setzen → App einem Katalog, einer Gruppe und einer Rolle zuweisen
5️⃣ App testen → Im Fiori Launchpad erscheint die Kachel, App läuft mit S/4HANA-Daten
Warum Cloud-Bereitstellung in BTP?
✅ Keine UI-Installation auf S/4HANA notwendig – nur der OData-Service muss verfügbar sein.
✅ Unabhängige Wartung und Updates für die UI5-App.
✅ Zukunftssichere Architektur mit Cloud-Extensions statt On-Prem-Modifikationen.
Fazit: Modernes Fiori-Development mit BTP
✔ Wir haben eine Fiori-App mit Web IDE/BAS erstellt.
✔ Die App wurde über OData mit S/4HANA verbunden.
✔ Die Bereitstellung erfolgte auf SAP BTP.
📌 Diese Architektur entspricht SAPs “Side-by-Side”-Ansatz:
✅ Individuelle UI5-Anwendungen laufen in der Cloud (BTP)
✅ Backend-Kommunikation erfolgt über Standard-APIs (OData)
✅ S/4HANA bleibt upgradefähig und wird nicht direkt modifiziert
🚀 Jetzt ist die App einsatzbereit und in das SAP-Cloud-Ökosystem integriert!
5. Integration mit SAP S/4HANA
Die Integration ist ein entscheidender Aspekt bei der Entwicklung von Add-ons.
➡ Benutzerdefinierte Lösungen müssen oft mit SAP S/4HANA oder anderen Systemen kommunizieren,
➡ Daten austauschen oder
➡ Prozesse systemübergreifend auslösen.
📌 Eine bereits behandelte Methode ist OData für Fiori-Apps.
📌 Hier betrachten wir weitere Integrationsoptionen und Best Practices für SAP-Add-ons.
Integrationstechniken für SAP Add-ons
✔ Nutzung von OData-Services (SAP Gateway)
➡ OData ist das primäre Protokoll für SAP Fiori und alle RESTful-Integrationen mit SAP.
📌 Wann wird ein benutzerdefinierter OData-Service benötigt?
• Wenn eine benutzerdefinierte Funktion (z. B. ein Funktionsbaustein oder eine ABAP-Klassenmethode) entwickelt wurde,
• Kann diese über einen OData-Service verfügbar gemacht werden.
• Dies geschieht mit Transaktion SEGW (SAP Gateway Service Builder).
📌 Schritte zur Erstellung eines OData-Services:
1. OData-Projekt in SEGW erstellen
2. Datenmodell definieren (Entity Types/Sets manuell oder per RFC/BAPI-Import)
3. CRUD-Methoden (GET, POST, PUT, DELETE) in ABAP implementieren
4. Service generieren und aktivieren
5. Externe Anwendungen können den Service per HTTP(S) aufrufen
✔ OData unterstützt XML oder JSON und kann mit Tools wie SAP Gateway Client oder Postman getestet werden.
✔ OData/REST wird oft für Echtzeit-Kommunikation bevorzugt, da es leichtgewichtig und webbasiert ist.
✔ Entwicklung und Bereitstellung von SAP-APIs
Neben OData kann SAP S/4HANA auch andere API-Formate bereitstellen:
📌 SOAP-Webservices (älter, aber für bestimmte Integrationen noch genutzt – Transaktion SOAMANAGER)
📌 RFC/BAPI-Schnittstellen (Punkt-zu-Punkt-Integration, z. B. für .NET- oder Java-Anwendungen über RFC SDK)
✔ Ein benutzerdefinierter BAPI oder Funktionsbaustein kann als Webservice veröffentlicht werden.
✔ SAP erlaubt die Bereitstellung eines RFC-fähigen Funktionsbausteins als SOAP-Service über SICF/SOAMANAGER.
✔ Heute empfiehlt SAP jedoch RESTful Services oder das ABAP RESTful Application Programming Model (RAP)für neue APIs.
➡ SAP API Business Hub bietet vorgefertigte APIs für S/4HANA (OData und SOAP).
➡ Beste Praxis: Bestehende APIs nutzen, bevor eine neue entwickelt wird.
➡ Unterstützte Formate: OData/JSON, XML/SOAP usw. zur Kommunikation mit SAP- und Nicht-SAP-Systemen.
✔ Integration von SAP Add-ons mit externen Anwendungen
Falls ein SAP-Add-on mit Nicht-SAP-Systemen (z. B. einem Drittanbieter-CRM oder Cloud-Diensten) verbunden werden muss:
✔ SAP BTP bietet Middleware wie SAP Cloud Integration (CPI) oder API Management.
✔ Besser als ein direkter HTTP-Call aus ABAP (möglich mit CL_HTTP_CLIENT).
✔ Middleware entkoppelt Systeme und gewährleistet sichere Kommunikation.
📌 Beispiel:
Ein SAP-Add-on sendet Daten an ein Cloud-CRM.
✅ Schlechte Lösung: Direkter HTTP-Call von ABAP an das CRM.
✅ Bessere Lösung: Nutzung von SAP CPI als Integrationsschicht, um API-Aufrufe zu orchestrieren.
✔ Für einfache Integrationen kann ABAP auch Webservices oder REST-APIs konsumieren (CL_HTTP_CLIENT, IF_HTTP_SERVICE).
✔ Typische Integrationsszenarien
📌 Häufige Integrationsflüsse in Erweiterungsprojekten:
✔ Outbound IDocs oder Nachrichten für ereignisgesteuerte Integration (z. B. IDoc bei Auftragserstellung senden).
✔ Geplante Jobs, die SAP-Daten extrahieren und an externe Systeme senden (via Datei oder HTTP).
✔ Echtzeit-API-Aufrufe, z. B. ein Benutzer klickt in SAP → API-Aufruf an Drittanbieter wird ausgelöst.
📌 Beispiel mit SAP BTP:
Eine serverlose App auf SAP BTP, die regelmäßig SAP-Daten über einen OData-Service abfragt und in einer externen Datenbank speichert.
Best Practices für Integrationsentwicklung
✔ Das richtige Protokoll wählen:
• OData/REST → Echtzeitabfragen und Updates.
• SOAP → Falls durch Altsysteme erforderlich.
• IDocs oder Events → Für asynchronen Datenaustausch.
✔ Sicherheit beachten:
• OAuth-Token oder API-Keys für externe APIs.
• SAP-Authentifizierung für eingehende API-Calls (via SAP Cloud Connector oder Gateway mit Benutzerrollen).
✔ Testen ist entscheidend:
• SAP-Tools: /IWFND/GW_CLIENT für OData, SLG1 für Logs.
• Externe Tools: Postman, SOAP UI zum Simulieren von API-Aufrufen.
✔ Fehlermanagement einbauen:
• Fehlgeschlagene API-Calls protokollieren (SLG1 Application Log).
• Bei Fehlern automatische Alerts an Admins senden.
Erweiterung über APIs: Mehr als nur Fiori-Apps
📌 Wenn ein Add-on über Services bereitgestellt wird, kann es nicht nur in Fiori-Apps, sondern in jeder externen Anwendung genutzt werden.
📌 Beispiel:
✔ Eine Mobile App könnte denselben OData-Service nutzen, um S/4HANA-Daten abzurufen.
✔ Ein Partner-System könnte über eine API eine Aktion in SAP auslösen.
➡ Das Prinzip: S/4HANA wird zum digitalen Kern und stellt APIs bereit, um mit anderen Systemen zu kommunizieren.
Zusammenfassung der Integration von SAP S/4HANA Add-ons
✅ Häufigste Methode: OData-Services als Integrationsschicht für den Datenaustausch mit externen Anwendungen.
✅ Flexible Architektur: Lose Kopplung zwischen S/4HANA und externen Systemen.
✅ SAP als digitaler Kern: Add-ons nutzen APIs, um mit Fiori, mobilen Apps oder Drittanbietern zu interagieren.
🚀 Moderne SAP-Integrationen sind API-basiert und ermöglichen eine flexible, zukunftssichere Architektur!
6. Monetarisierung von SAP Add-ons und Tools
Nachdem ein SAP Add-on oder Tool entwickelt wurde, stellt sich die Frage der Monetarisierung.
➡ Möglichkeiten:
✔ Verkauf an SAP-Kunden
✔ Anbieten als Service (Subscription, Consulting)
✔ Einsatz als Wettbewerbsvorteil in der Beratung
📌 Das SAP-Ökosystem bietet verschiedene Möglichkeiten zur Monetarisierung von Innovationen:
✔ Veröffentlichung im SAP Store (ehemals SAP App Center)
📌 Was ist der SAP Store?
✔ Ein Online-Marktplatz von SAP, auf dem Partner ihre Softwareprodukte anbieten können.
✔ Ermöglicht die Listung von SAP S/4HANA-Erweiterungen, Fiori-Apps und Integrationen.
✔ Bietet Zugang zu Tausenden SAP-Kunden weltweit.
📌 Vorteile der Veröffentlichung im SAP Store:
✔ Hohe Sichtbarkeit für SAP-Kunden.
✔ Kunden können Lösungen entdecken, testen und kaufen.
✔ SAP Store übernimmt Zahlungsabwicklung – Partner konzentrieren sich auf Produktentwicklung und Support.
✔ Über 3.000 Anwendungen und Services werden bereits über den Store vermarktet.
📌 Wie veröffentlicht man ein Add-on im SAP Store?
1. Registrierung als SAP-Partner erforderlich.
2. Review-Prozess durch SAP (Prüfung auf Qualitäts- und Integrationsstandards).
3. Optional: SAP-Zertifizierung der Lösung (erhöht das Vertrauen der Kunden).
4. Kunden können entweder kostenlose Testversionen nutzen oder Lizenzen direkt erwerben.
✔ SAP PartnerEdge Programm
📌 Was ist SAP PartnerEdge?
✔ SAPs offizielles Partnerprogramm für die Vermarktung und den Vertrieb von SAP-Erweiterungen.
✔ Vier Engagement-Modelle: Build, Sell, Service, Run.
✔ Für die Monetarisierung eines Add-ons ist die “Build”-Variante relevant.
📌 Vorteile als PartnerEdge Build-Partner:
✔ SAP-Lizenzen für Entwicklung & Support.
✔ SAP-Zertifizierung für das Add-on möglich.
✔ Marketing- und Vertriebsunterstützung von SAP.
✔ Co-Selling-Möglichkeiten mit SAP-Vertrieb.
📌 Hinweis:
➡ Wer sein Add-on im SAP Store listen will, muss oft SAP PartnerEdge Build-Mitglied sein.
➡ PartnerEdge regelt auch Vertriebsvereinbarungen, um Add-ons effizient zu monetarisieren.
✔ Consulting & Freiberufliche Dienstleistungen
📌 Monetarisierung über Beratung statt Software-Verkauf
• Viele SAP-Entwickler bieten Consulting-Leistungen an, anstatt ihr Add-on separat zu verkaufen.
• Spezialisierte Add-ons werden nicht direkt verkauft, sondern bei Kunden individuell implementiert.
• SAP-Berater mit Expertise in S/4HANA, ABAP und Fiori sind sehr gefragt.
📌 Vorteile des Consulting-Modells:
✔ Monetarisierung erfolgt über Projektgebühren statt Lizenzverkauf.
✔ Jede Implementierung kann individuell auf den Kunden angepasst werden.
✔ Freelancer nutzen oft eigene Tools/Add-ons als “Accelerators”, um Projekte schneller umzusetzen.
✔ Kein Aufwand für Software-Vertrieb und Lizenzmanagement – stattdessen direkte Abrechnung für Entwicklungszeit und Expertise.
📌 Für wen eignet sich dieses Modell?
✔ SAP-Berater und Entwickler, die nicht selbst Vertrieb & Support von Software organisieren möchten.
✔ Individuelle Lösungen für Kunden umsetzen anstatt generelle Softwareprodukte zu verkaufen.
✔ Lizenzierungs- und Verkaufsmodelle für SAP Add-ons
📌 Mögliche Lizenzierungsmodelle:
✔ Per-User-Lizenzierung (Preis pro Benutzer).
✔ Per-Server oder CPU-Lizenzierung (je nach Systemgröße).
✔ Subscription-Modell (SaaS) → Monatliche oder jährliche Gebühr für Cloud-basierte Add-ons.
✔ Usage-basierte Monetarisierung → Preis pro verarbeitetem Geschäftsvorfall (z. B. pro Rechnung oder Bestellung).
📌 Preisgestaltung und Wartung:
✔ Unternehmen erwarten Wartungsverträge → oft 15-20 % der Lizenzkosten jährlich für Support & Updates.
✔ Pakete & Editionen anbieten:
• Basis-Version (Standard-Funktionen)
• Premium-Version (erweiterte Features, Integrationen)
✔ Preisgestaltung muss den Nutzen widerspiegeln → Enterprise-Kunden verlangen oft Skalierbarkeit.
📌 Zusätzliche Vertriebsmöglichkeiten:
✔ Zusammenarbeit mit SAP-Sales (z. B. Co-Selling mit SAP Account Executives).
✔ Add-ons können von SAP-Partnern als Teil größerer Deals angeboten werden.
✔ SAP Store vs. Direktvertrieb
📌 Unterschiede zwischen Vertrieb über den SAP Store und Direktvertrieb:
📌 Fazit:
➡ SAP Store eignet sich für kleinere bis mittlere Lösungen.
➡ Für Großkunden-Deals ist direkter Vertrieb oder SAP-Sales-Partnerschaft vorteilhafter.
✔ Zusammenarbeit mit SAP-Implementierungspartnern
📌 Vorteil: SAP-Implementierungsfirmen arbeiten mit vielen Kunden, die ähnliche Anforderungen haben.
• Wenn ein Add-on eine Lücke füllt, könnten Partner es weiterverkaufen oder empfehlen.
• Partnerschaften mit SAP-Integratoren können eine gute Umsatzquelle sein.
✔ SAP PartnerEdge-Mitgliedschaft erhöht Glaubwürdigkeit und erleichtert Partnernetzwerke.
Wichtige Erfolgsfaktoren für die Monetarisierung
✔ Klare Dokumentation des Add-ons: Features, Vorteile, ROI für den Kunden.
✔ Demos oder Testversionen bereitstellen.
✔ Referenzkunden & Erfolgsstories sammeln → Vertrauensbildung für zukünftige Käufer.
✔ Langfristiger Support & Wartung sicherstellen: Kunden erwarten Updates und Kompatibilität mit neuen SAP-Versionen.
📌 Wichtig: SAP Roadmap im Auge behalten!
• Falls SAP eine ähnliche Funktion in den Standard integriert, muss das Add-on angepasst oder repositioniert werden.
• Viele erfolgreiche SAP-Partnerprodukte haben als Add-ons begonnen → Einige wurden von SAP übernommen oder sind zu spezialisierten Lösungen weiterentwickelt worden.
• Markt beobachten & kontinuierlich Innovationen einbauen.
📢 Fazit: Monetarisierungsstrategien für SAP Add-ons
✅ SAP Store nutzen für breite Kundenreichweite.
✅ SAP PartnerEdge beitreten, um professionelle Vermarktung & Zertifizierung zu erhalten.
✅ Consulting & Projektgeschäft als Alternative zum Lizenzverkauf.
✅ Flexible Lizenzierungsmodelle anwenden (User-basiert, Subscription, Transaktionsbasiert).
✅ Partnerschaften mit SAP-Integratoren aufbauen.
✅ Wartung & Support langfristig sichern.
🚀 Mit einer klugen Monetarisierungsstrategie kann ein SAP-Add-on zu einem erfolgreichen Produkt oder Service werden!
7. Best Practices und Optimierung
Bei der Entwicklung von Unternehmenssystemen wie SAP ist es wichtig, Best Practices zu befolgen, um sicherzustellen, dass Add-ons effizient, sicher und wartbar sind.
✔ Performance-Optimierung
📌 Optimierung von ABAP-Code und Datenbankabfragen
• Verschachtelte SELECTs und große Schleifen vermeiden → SQL möglichst direkt nutzen, um die HANA-Performance auszuschöpfen.
• CDS Views oder Joins bevorzugen statt Daten in ABAP zu aggregieren.
• Indizes auf benutzerdefinierten Tabellen setzen, um Datenzugriff zu beschleunigen.
• SAP-Analysetools nutzen:
• SQL Trace (ST05) → Identifiziert teure Datenbankabfragen.
• ABAP Runtime Analysis (SAT) → Findet langsame ABAP-Verarbeitungen.
• Performance Trace (ST12) → Misst Performance und identifiziert Bottlenecks.
📌 Performance-Tipps für Fiori/UI5
• $batch verwenden, um mehrere OData-Aufrufe in einer Anfrage zu bündeln.
• Serverseitiges Paging ($top/$skip) nutzen, um nur benötigte Daten abzurufen.
• $select-Option nutzen, um nur relevante Felder zu laden.
• Caching für häufig genutzte Daten aktivieren.
• UI5-App-Ladezeit optimieren, indem nur benötigte Komponenten geladen und unnötige Bibliotheken vermiedenwerden.
✔ Sicherheit (Security Best Practices)
📌 Sicherheit im ABAP-Code
• AUTHORITY-CHECK implementieren, um Berechtigungen für sensible Operationen zu prüfen.
• Eigene Berechtigungsobjekte erstellen, wenn das Add-on neue Transaktionen oder Services bereitstellt.
• Dynamische SQL-Abfragen und Betriebssystem-Kommandos absichern, um SQL Injection und Code Injection zu verhindern.
• Zufallswerte & Hashing-APIs für Verschlüsselung nutzen (ABAP bietet Secure Random-APIs).
📌 Sicherheit für OData-Services & BTP
• SAP PFCG-Rollen für OData-Services definieren, um den Zugriff auf Entity-Sets und CRUD-Operationen zu steuern.
• OAuth-Token oder sichere Vaults statt Klartext-Passwörter verwenden.
• XSS-Schutz in UI5: Datenbindung nutzen, anstatt HTML direkt zu rendern.
• UI dynamisch an Benutzerrechte anpassen → Rollen des Benutzers abrufen und steuern, welche Optionen sichtbar sind.
• Regelmäßige SAP Security Patches einspielen und Code mit SAP Code Vulnerability Analyzer scannen.
✔ Fehleranalyse und Debugging
📌 ABAP-Debugging & Systemanalyse
• SAP GUI Debugger und Eclipse ADT Debugger nutzen, um Breakpoints zu setzen.
• ABAP-Dumps analysieren (ST22) → Wenn ein Fehler auftritt, zeigt ST22 den Call-Stack und Variableninhalte.
• Systemlog (SM21) für Systemprobleme prüfen.
• Applikationslog (SLG1) nutzen, um eigene Logs für Fehleranalyse anzulegen.
📌 Fiori/UI5 Debugging
• Browser-Konsole (F12) verwenden → JavaScript-Fehler und Netzwerkfehler analysieren.
• SAP Gateway Error Log (/IWFND/ERROR_LOG) prüfen → Zeigt fehlgeschlagene OData-Requests mit Payload.
• UI5 Debugging Tools:
• Ctrl + Alt + Shift + P → Performance-Statistiken anzeigen.
• Ctrl + Alt + Shift + S → Technische Informationen zur UI5-App.
📌 SAP BTP Debugging
• Cloud Foundry Logs (cf logs) prüfen.
• SAP Cloud Connector Logs analysieren, falls On-Premise-Verbindungen fehlschlagen.
✔ Wartbarkeit und Namenskonventionen
📌 Gute Namenskonventionen sind entscheidend
• Objekte mit Z/Y-Prefix und beschreibenden Suffixen versehen (z. B. ZCUST_REVENUE_VIEW).
• Klare Strukturierung der SAP-Objekte → alle Add-on-Objekte in einem eigenen Paket oder Namespace bündeln.
• Kommentare in ABAP-Code setzen, insbesondere bei komplexer Logik.
• Standard-Erweiterungspunkte (BADIs, Enhancement-Spots) bevorzugen, statt Standardcode zu ändern.
• Falls Änderungen an Standardobjekten nötig sind, diese dokumentieren, da sie bei SAP-Updates berücksichtigt werden müssen.
✔ Testing: Qualitätssicherung und Belastungstests
📌 Testdaten und Testszenarien erstellen
• ABAP Unit Tests schreiben für kritische Algorithmen.
• Integrationstests in Fiori durchführen, um sicherzustellen, dass der Datenfluss korrekt funktioniert.
• Tests mit verschiedenen Benutzerrollen durchführen, um Berechtigungen zu validieren.
• Performance-Tests ausführen, z. B. ein Bericht mit 100.000 Datensätzen laufen lassen und optimieren.
📌 Fazit: Warum Best Practices wichtig sind
🚀 Durch die Einhaltung dieser Best Practices verbessern Sie die Qualität und Zuverlässigkeit Ihrer SAP Add-ons erheblich:
✅ Höhere Performance → Schnellere Antwortzeiten & optimierte Datenbankabfragen.
✅ Sichere Anwendungen → Schutz vor unbefugtem Zugriff & Sicherheitslücken.
✅ Einfachere Wartung → Gut strukturierter Code erleichtert spätere Anpassungen.
✅ Fehlersicherheit → Durch Debugging-Strategien weniger Probleme im Produktivbetrieb.
✅ Bessere User Experience → Schnell ladende, stabile und intuitive Fiori-Apps.
➡ Ein performantes, sicheres und gut dokumentiertes Add-on reduziert den Supportaufwand und verbessert Ihre Reputation als Entwickler oder Anbieter. 🚀
Fazit
Durch die Befolgung dieses Leitfadens sollte ein Entwickler mit mittleren Kenntnissen in der Lage sein:
✅ Die SAP-Entwicklungsumgebung einzurichten (SAP GUI, Eclipse ADT, SAP BTP).
✅ ABAP-Erweiterungen in S/4HANA zu entwickeln.
✅ Eine SAPUI5/Fiori-App auf SAP BTP zu erstellen, die mit diesen Erweiterungen interagiert.
✅ OData-Services für die Integration mit SAP zu nutzen.
✅ Optionen zur Bereitstellung oder Monetarisierung der Lösung zu verstehen.
✅ Best Practices für Performance-Optimierung und Sicherheit anzuwenden.
🚀 Dank praktischer Übungen und visueller Unterstützung wird die Entwicklung von SAP Add-ons erheblich vereinfacht.
📌 Mit den hier vermittelten Grundlagen kann ein Entwickler nicht nur eigene Erweiterungen bauen, sondern auch komplexere SAP-Projekte umsetzen und optimieren.