Christoph Lordieck
28. März 2022

SAP CAP – das Cloud Application Programming Model

Mit SAP CAP (Cloud Application Programming Model) lassen sich ganzheitliche Cloud-Anwendungen zentral in einem vollumfänglichen Framework erstellen. Das CAP-Framework gewährt von Haus aus Zugriff auf Bibliotheken, Sprachen und Werkzeuge zum Erstellen von Anwendungen in der SAP Cloud. Nachfolgend erkläre ich, welche Vorteile SAP CAP bietet, welche Besonderheiten das Framework mit sich bringt und warum SAP CAP vor allem bei wiederkehrenden Aufgaben unbedingt eingesetzt werden sollte.

Was ist SAP CAP?

SAP Cloud Application Programming Model macht es Entwicklern besonders einfach, Cloud-Anwendungen auf Unternehmensebene zu erstellen. Das Framework liefert alle relevanten Bibliotheken, Sprachen und Werkzeuge direkt mit und führt die Entwickler anhand eines „goldenen Pfades“ durch den Entwicklungsfortschritt. Dieser Pfad besteht aus bewährten Best Practices und vorgefertigten Lösungen, die direkt einsatzbereit sind. Damit eignet sich SAP CAP vor allem optimal für wiederkehrende Aufgaben.

SAP CAP weist einige Unterschiede zu SAP RAP (RESTful Application Programming Model) auf und ist vielmehr Node.js als ABAP. Es vereint sowohl bekannte SAP-Technologien als auch Open-Source-Produkte in einem. Zusätzlich sind die Core Data Services (CDS) – eine universelle Modellierungssprache für Servicedefinitionen und Domänenmodelle – standardmäßig Teil von SAP CAP. Eine Vielzahl von Mocks für viele Plattformen ermöglichen schnelle Dev/Test-Run-Zyklen. Das liegt unter anderem daran, dass die Mocks aus einem SAP-S/4-Backend oder aus SAP API Hubs importiert werden können. Auch eine lokale Ausführung ist problemlos möglich.

Insbesondere die Jumpstart-Funktionalitäten sorgen für einen unkomplizierten und zeitnahen Entwicklungsstart: Gemäß dem „Convention over Configuration“-Prinzip können Entwicklerteams durch eine jederzeit aufrufbare Minimalkonfiguration sofort mit der Arbeit beginnen. Die kompakte Struktur von SAP CAP stellt alle benötigten Software-Development-Kits (SDK) bereit, die für Node.js und Java benötigt werden. Von Beginn an lassen sich Dienste über synchrone und asynchrone Schnittstellen bereitstellen.

Komponenten von SAP CAP

Im Kern basiert das SAP Cloud Application Programming Model auf drei Säulen: die integrierte Entwicklungsumgebung (IDE), die Core Data Services und die Service SDKs. Die Wahl der IDE ist grundsätzlich dem Anwender überlassen. Dieser hat gleich mehrere geeignete IDEs zur Auswahl – dazu gehören unter anderem das SAP Business Application Studio oder Microsofts Visual Studio. Um das Zusammenspiel der beiden anderen Komponenten zu verstehen, bietet sich ein detaillierter Blick auf die technischen Hintergründe an.

Core Data Services (CDS)

Die CDS sind essenzieller Bestandteil von SAP CAP und die integrale Modellierungssprache. Jedes geschäftliche Datenmodell eines Unternehmens kann mithilfe der Core Data Services vereinfacht und harmonisiert werden. Die auf diese Weise standardisierten Daten lassen sich systemübergreifend verwenden, was die Entwicklung beschleunigt und Kosten minimiert. Die CDS sind seit SAP HANA die infrastrukturelle Grundlage jeglicher Datenmodellierung bei SAP. Aus technischer Sicht ist vor allem ein Aspekt sehr entscheidend, denn die CDS definieren die Datenmodelle direkt im Arbeitsspeicher und nicht – wie bisher – auf dem Anwendungsserver.

Für Entwickler vereinfacht sich die Arbeit durch die Core Data Services dahingehend, dass sämtliche Abfragen und Ausdrücke in simplen Objektnotationen (JavaScript) erfasst werden können. Gleichzeitig lassen sich eine Vielzahl von Quellsprachen parsen und in verschiedene Zielsprachen kompilieren. Jegliche Entitäten lassen sich direkt in der Modellierungssprache definieren und mit Attributen versehen. Die Entitäten wiederum können anschließend in den entwickelten Services genutzt werden. Die Entwicklung eines Services samt Deployment wird im weiteren Verlauf näher beschrieben.

Service SDKs

Im Software-Umfang von SAP CAP befinden sich auch zahlreiche Service SDKs für Java und Node.js. Diese ermöglichen die Bereitstellung von Diensten über synchrone und asynchrone Schnittstellen. Darüber hinaus ermöglichen die Software Development Kits auch, dass Authentifizierungs- und Anmeldedienste durch wenige Zeilen Code eingebunden werden können. Auf Anwenderseite muss lediglich Node.js vorhanden sein. Die jeweiligen Bibliotheken lädt SAP CAP entsprechend nach Bedarf.

ABAP CDS View Grundlagen

ABAP CDS View Grundlagen

Durch die Einführung der SAP HANA DB soll die Datenmodellierung innerhalb eines SAP-ERP-Systems erweitert werden. Wir zeigen Ihnen was Sie beachten müssen.

Technische Hintergründe und praktische Anwendung von SAP CAP

Bevor wir in die Praxis einsteigen, gilt es, ein grundlegendes Verständnis zu schaffen, wie sich SAP CAP von anderen Entwicklungslösungen der SAP unterscheidet. Vor allem der Unterschied zwischen SAP CAP und SAP RAP ist eine genaue Abgrenzung wert.

Wie unterscheiden sich SAP CAP und SAP RAP?

Die stetigen Entwicklungszyklen der SAP-ERP-Lösung haben gleich mehrere verschiedene Programmiermodelle zutage befördert. Mittlerweile gibt es mit ABAP, CDS, ODATA und UI5 mehrere Programmiersprachen, die auf verschiedenen Plattformen (SAP NetWeaver, HANA Studio oder SAP Web IDE) laufen. Schließlich brachte die SAP das Cloud Application Programming Model auf den Markt, um plattformübergreifend SAP- und Open-Source-Technologien in einem zentralen Framework zu bündeln.

Doch worin besteht nun der Unterschied zu SAP RAP, das ebenfalls auf dem CDS-Modell basiert? SAP RAP ist bis heute das von vielen Entwicklern bevorzugte Modell im Falle von „ABAP in der Cloud“. Es eignet sich sowohl für On-Premises-Lösungen als auch für Cloud Services. Es unterstützt keine direkte UI-Entwicklung und eignet sich in erster Linie für die Generierung neuer Schnittstellen auf der ABAP-Anwendungsschicht. Die zugrundeliegenden Datenbanken können entweder eine HANA-Datenbank in der Cloud oder ein konventionelles SAP S/4HANA sein.

Das zeigt, wo der wesentliche Unterscheid zwischen den beiden Programmiermodellen liegt: SAP CAP ist „Cloud only“ mit Open Source und SAP Stack auf der Anwendungsschicht von Java oder Node.js. SAP RAP wiederum ist die bevorzugte Lösung für ABAP-Anwendungen in der Cloud, deren UI in der Regel extern über Cloud Foundry oder NEO bereitgestellt wird.

Modellierung einer Entität und Bereitstellung eines Services

Da wir nun sämtliche Grundlagen über SAP CAP samt der wichtigsten Abgrenzung geklärt haben, wird es Zeit für einen Blick in die Praxis.

Für jedes Projekt mit SAP CAP ist die Modellierung der Entitäten der wichtigste Schritt vor dem eigentlichen Entwicklungsstart. Jede Entität besteht aus einem eindeutigen Namen mit seinen jeweiligen Attributen. Die Definition ist denkbar einfach und erfolgt nach dem folgenden beispielhaften Schema:

 

 

 

 

 

 

 

Wollen Sie nun einen Service kreieren, der die zuvor angelegten Entitäten nutzt, erfolgt auch dies nach einem simplen Muster. Auch ein Service besteht aus einem eindeutigen Namen und den jeweiligen Entitäten, die für den Service relevant sind. Beispielhaft könnten Sie einen solchen Service wie folgt definieren:

 

 

 

 

 

 

Deployment eines Services in der Cloud

Teil des Frameworks ist unter anderem der SAP Cloud Launchpad Service. Dieser ist ein App-Router, Deployer und Launchpad in einem, der nur noch mit den relevanten Daten versorgt werden muss. Vor dem Launch können die Entwickler die entsprechenden Services auswählen, die für die Entwicklung notwendig sind. Nachfolgend müssen lediglich die benötigten Bibliotheken geladen werden, die für das Deployment in der Cloud obligatorisch sind. Abschließend kann die Definition des UI mittels Annotationen erfolgen.

Sofern Microsofts Visual Studio Code verwendet wird, muss lediglich die notwendige Extension geladen werden. Die Minimalkonfiguration ermöglicht den direkten Entwicklungsstart. Beispielsweise legen Sie mit folgender Zeile Code das Projekt „Flughafendatenbak“ an:

Cds init flughafendatenbank

Visual Studio erstellt nun den Ordner flughafendatenbank und lädt unter anderem den Pfad srv, welcher nachfolgend für die zu definierenden Services verwendet wird. Die Services werden wie zuvor beschrieben generiert und das anschließende Deployment der App erfolgt beispielsweise per Cloud Foundry über ein entsprechendes Launchpad. Vor dem Deployment muss ein entsprechendes Launchpad konfiguriert werden.

Aufsetzen einer Testumgebung für SAP CAP mit Node.js

Erste Schritte in einer geeigneten Testumgebung sind ebenfalls nach wenigen Augenblicken und Klicks möglich. Nachfolgend wird von einem Szenario ausgegangen, in dem SAP CAP eingerichtet und Node.js installiert ist. Das cds.test-Toolkit ermöglicht die Ausführung eines CAP-Servers in einer Testumgebung. Die Node.js-APIs ermöglichen den Zugriff auf Dienste, welche sich auf dem Testserver ausführen lassen. Die SAP selbst liefert entsprechende Samples, mit denen sich die Funktionsweise von SAP CAP mit Node.js nachvollziehen lässt.

SAP CAP als optimale Lösung für Cloud-Anwendungen

Während SAP RAP für „ABAP in der Cloud“ und On-Premises Best Practice ist, hat sich SAP CAP zu der ersten Wahl für die Entwicklung von SAP Cloud-Anwendungen gemausert: Die SAP hat mit dem Cloud Application Programming Model ein Framework geschaffen, das die Abhängigkeiten bestimmter Sprachen und Plattformen der Vergangenheit angehören lässt. Auf Basis der erprobten Core Data Services können Entwickler standardisierte, kostengünstige und schnelle Cloud-Anwendungen programmieren, die auf der Anwendungsschicht von Java oder Node.js ausgeführt werden können.

Die direkte Unterstützung der UI-Programmierung, die Integration von Open-Source-Technologien und SAP Stack sowie die simple Konfiguration machen SAP CAP zu der gängigen Wahl bei Cloud-Entwicklungen. SAP CAP erspart Zeit und Kosten, da wiederkehrende Aufgaben in kurzer Zeit und mit wenig Aufwand abgewickelt werden können. Zudem ermöglichen die verwendeten Standards und Schnittstellen eine unkomplizierte Anbindung an andere SAP- und Drittanbieterdienste.

Haben Sie noch offene Fragen rund um SAP CAP? Kommen Sie einfach auf mich zu – ich helfe Ihnen gerne weiter.

Christoph Lordieck

Christoph Lordieck

Mein Name ist Christoph Lordieck. Einige Jahre Projekt- und Umsetzungserfahrung hat meinen Wissenshunger noch nicht gestillt und ich suche ständig nach neuen Themen und technischen Entwicklungen im ABAP Umfeld. Ich freue mich auf Ihre Frage oder Anregung!

Sie haben Fragen? Kontaktieren Sie mich!


Das könnte Sie auch interessieren

Die SAP Cloud Integration (früher bekannt als SAP Cloud Platform Integration bzw. SAP CPI) ist eine Technologie von SAP, um eine Middleware zwischen mehreren Systemen zu realisieren. Mit SAP Cloud […]

weiterlesen

Da in SAP und in Salesforce meist die gleichen Daten benötigt werden, lohnt es sich für Unternehmen, die beide Systeme im Einsatz haben, diese miteinander zu verbinden. So können Daten […]

weiterlesen

Für Unternehmen, die über ein SAP- und ein Salesforce-System verfügen, lohnt es sich sehr, beide Systeme miteinander zu verbinden. Die Integration der zwei Systeme können Sie auf vier Stufen abbilden, […]

weiterlesen

Mehr von unseren Partnern


Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice