Christoph Lordieck
28. März 2022

SAP CAP – das Cloud Application Programming Model

Mit SAP CAP (Cloud Application Programming Model) können Sie 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. In diesem Artikel erkläre ich u. a. die Vorteile von SAP CAP und die Besonderheiten des Frameworks.

Was ist SAP CAP?

SAP Cloud Application Programming Model (SAP CAP) ist ein Framework, das Entwicklern die Erstellung von Cloud-Anwendungen auf Unternehmensebene vereinfacht. 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.

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.

SAP CAP vs. SAP RAP

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 u. a. 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.

Komponenten von SAP CAP

Im Kern basiert das SAP Cloud Application Programming Model auf drei Säulen:

  1. Die integrierte Entwicklungsumgebung (IDE),
  2. die Core Data Services
  3. und die Service SDKs.

Die Wahl der IDE ist grundsätzlich Anwendern überlassen. Diese haben gleich mehrere geeignete IDEs zur Auswahl – dazu gehören u. a. 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 Unterschied 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:

SAP CAP

Abb. 1: Beispielhaftes Schema zur Beschriftung.

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:

SAP CAP

Abb. 2: Beispielhafte Definition eines Services.

Deployment eines Services in der Cloud

Teil des Frameworks ist u. a. 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.

SAP CAP

Abb. 3: Konifguration des Launchpads.

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.

FAQ

Was ist SAP CAP?

SAP CAP (Cloud Application Programming Model) ist eine Sammlung von Bibliotheken und Tools, die Sie für die Bereitstellung von datengetriebenen Schnittstellen nutzen können. Der Fokus von SAP CAP liegt auf APIs, Datenhaltung und die Möglichkeit zu der dynamischen Generierung von Oberflächen.

Was sind die Komponenten von SAP CAP?

Das SAP Cloud Application Programming Model basiert auf den drei Säulen integrierte Entwicklungsumgebung (IDE), Core Data Services (CDS) und Service SDK (Service Development Kit).

Was ist der Unterschied zwischen SAP CAP und SAP RAP?

Sowohl SAP CAP als auch SAP RAP stellen SAP Programmiermodelle dar. Während SAP RAP für Cloud- und On-Premises-Anwendungen genutzt werden kann, ist der Unterschied zu SAP CAP, dass Sie damit nur auf der Cloud basierte Apps erstellen können.

Christoph Lordieck

Christoph Lordieck

Als Bereichsleiter SAP Entwicklung berate ich Unternehmen rund um das Thema SAP Individualentwicklung. Einige Jahre Projekt- und Umsetzungserfahrung haben meinen Wissenshunger noch nicht gestillt und ich suche ständig nach neuen Themen und Entwicklungen im ABAP-Umfeld.

Sie haben Fragen? Kontaktieren Sie mich!


Verwandte Beiträge

SAP HANA bietet ungeahnte Vorteile in Bezug auf Performance und Flexibilität, ist aber bei vielen SAP Kunden noch mit einer gewissen Unklarheit behaftet.

weiterlesen

Das ABAP RESTful Programming Model definiert eine effiziente Architektur zur Entwicklung von SAP HANA-optimierten OData-Services (z.B. SAP Fiori-Apps) in der ABAP-Umgebung. Es ist der evolutionäre Nachfolger des ABAP Programming Model […]

weiterlesen

CDS Views ist die Lösung von SAP hinsichtlich der Performance-Optimierung. SAP hat das System so weit ausgeklügelt, dass Entwickelnde eigentlich gar nichts mehr beachten müssen. Die CDS Views hätten eine […]

weiterlesen

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