Praxishandbuch SAP CAP - Cloud Application Programming Model - Johannes Gerbershagen - E-Book

Praxishandbuch SAP CAP - Cloud Application Programming Model E-Book

Gerbershagen Johannes

0,0
19,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Das SAP Cloud Application Programming Model, kurz SAP CAP, ist ein Framework zur Erstellung von Unternehmensanwendungen, das sich besonders für wiederkehrende Aufgaben eignet. Dabei vereint es SAP- und Open-Source-Technologien. Es basiert nicht auf ABAP, sondern auf einer eigenen Datendefinitionssprache, CAP CDS, sowie Java bzw. JavaScript.

In diesem Buch erklärt Ihnen der Softwareentwickler Johannes Gerbershagen zunächst die Grundlagen von SAP CAP. Sie werden mit den nötigen Entwicklungswerkzeugen, insbesondere Node.js, vertraut gemacht, lernen die Core Data Services Definition Language (CDL), die Core Data Services Query Language (CQL) und Vue.js kennen. Sie erfahren, wie Projektionen und Views, Aktionen, Funktionen und Berechtigungen aufgebaut sind, und erhalten Informationen zum Deployment. Des Weiteren stellt der Verfasser die Entwicklung einer SAP-CAP-Anwendung anhand eines Beispielfalls vor, für den er auch den Code zur Verfügung stellt. Ferner erfahren Sie, wie die Integration von SAP-CAP-Anwendungen mit bestehenden ABAP-Anwendungen funktioniert.

Das Buch ist ein kompakter, praxisnaher Helfer für Entwickler, die mit SAP CAP zu neuen Ufern aufbrechen möchten.


  • Eine Alternative zu SAP RAP, die keine ABAP-Vorkenntnisse erfordert
  • Praxisnahe Tipps für Neu-und Quereinsteiger
  • Grundlagen für die Erstellung von SAP-BTP-Anwendungen
  • Erläuterung anhand einer Beispielanwendung mit Code

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB
MOBI

Seitenzahl: 114

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Johannes Gerbershagen

Praxishandbuch SAP® CAP

Cloud Application Programming Model

Johannes GerbershagenPraxishandbuch SAP® CAP – Cloud Application Programming Model

ISBN:978-3-960122-60-9 (E-Book)

Lektorat:Bernhard Edlmann

Korrektorat:Die Korrekturstube

Coverdesign:Philip Esch

Coverfoto:iStockphoto.com | millionsjoker No. 488649482

Satz & Layout:Johann-Christian Hanke

1. Auflage 2023

© Espresso Tutorials GmbH, Gleichen 2023

URL:www.espresso-tutorials.de

 

Das vorliegende Werk ist in allen seinen Teilen urheberrechtlich geschützt. Alle Rechte sind vorbehalten, insbesondere das Recht der Übersetzung, des Vortrags, der Reproduktion und der Vervielfältigung. Espresso Tutorials GmbH, Bahnhofstr. 2, 37130 Gleichen, Deutschland.

Ungeachtet der Sorgfalt, die auf die Erstellung von Text und Abbildungen verwendet wurde, können weder der Verlag noch Autoren oder Herausgeber für mögliche Fehler und deren Folgen eine juristische Verantwortung oder Haftung übernehmen.

Feedback:Wir freuen uns über Fragen und Anmerkungen jeglicher Art. Bitte senden Sie diese an: [email protected].

Inhaltsverzeichnis

Cover
Titelseite
Copyright/Impressum
Vorwort
1 Grundgedanken
1.1 Unterschiede zwischen SAP CAP und SAP RAP
1.1.1 Boilerplate-Code
1.2 Entwicklungswerkzeuge für SAP CAP
2 Core Data Services für CAP
2.1 Core Data Services Definition Language
2.1.1 Datentypen
2.1.2 Virtuelle Elemente
2.1.3 Enums
2.1.4 Einschränkungen
2.1.5 Entitäten
2.1.6 Assoziationen und Kompositionen
2.2 Core Data Services Query Language
2.3 Projektionen und Views
2.4 Aktionen und Funktionen
2.4.1 Ungebundene Aktionen und Funktionen
2.4.2 Gebundene Aktionen und Funktionen
2.5 Berechtigungen
2.5.1 Authentifizierung und Berechtigungsrollen
2.6 Deployment in der BTP
2.6.1 Voraussetzungen
2.6.2 Deployment-Kommandos
2.6.3 Fehleranalyse
2.7 Vue.js
2.7.1 Komponenten
2.7.2 Funktionen
2.7.3 Lebenszyklus
2.7.4 Asynchrone Programmierung
2.7.5 Interaktion mit OData-Services
3 Beispielanwendung
3.1 OData-Versionen
3.2 Testapplikation
3.2.1 Startoptionen und -kommandos im Testmodus
3.3 UI5-Clientapplikation
3.4 CAP-CDS-Annotationen
3.4.1 Fahrzeugtypen
3.4.2 Fahrzeuge
3.4.3 Tourenübersicht
3.4.4 Tourenrückmeldung
3.5 Vue.js-Clientapplikation
3.5.1 Fahrzeugtypen
3.5.2 Fahrzeuge
3.5.3 Deep Insert
3.5.4 Tourenerfassung
3.5.5 Tourenrückmeldung
4 Integration in bestehende ABAP-Anwendungen
4.1 Von SAP CAP auf AS ABAP
4.1.1 Test
4.1.2 Produktivbetrieb
4.2 Von AS ABAP auf SAP CAP
5 Fazit
A Der Autor
B Disclaimer

Willkommen bei Espresso Tutorials!

Unser Ziel ist es, SAP-Wissen wie einen Espresso zu servieren: Auf das Wesentliche verdichtete Informationen anstelle langatmiger Kompendien – für ein effektives Lernen an konkreten Fallbeispielen. Viele unserer Bücher enthalten zusätzlich Videos, mit denen Sie Schritt für Schritt die vermittelten Inhalte nachvollziehen können. Besuchen Sie unseren YouTube-Kanal mit einer umfangreichen Auswahl frei zugänglicher Videos: https://www.youtube.com/user/EspressoTutorials.

Kennen Sie schon unser Forum? Hier erhalten Sie stets aktuelle Informationen zu Entwicklungen der SAP-Software, Hilfe zu Ihren Fragen und die Gelegenheit, mit anderen Anwendern zu diskutieren: http://www.fico-forum.de.

Eine Auswahl weiterer Bücher von Espresso Tutorials:

Tobias Steckenborn:

Schnelleinstieg SAP

®

Business Technology Platform (BTP) – ­Services und Integration

Johannes Gerbershagen:

Praxishandbuch SAP

®

Gateway

Dr. Boris Rubarth:

Schnelleinstieg in SAP ABAP

®

– 2., erweiterte Auflage

Ulrich Bähr, Axel Treusch:

Praxisbuch SAP

®

Interactive Forms und Adobe LiveCycle Designer

– 2., erweiterte Auflage

Thomas Stutenbäumer:

SAP

®

Praxishandbuch ABAP Teil 1 – Konzeption, Entwicklung und Debugging

– 2., erweiterte Auflage

Thomas Stutenbäumer:

SAP

®

Praxishandbuch ABAP

®

Teil 2 – Performance, Erweiterungen, Transportwesen

– 2., erweiterte Auflage

Vorwort

Dieses Buch behandelt das SAP Cloud Application Programming Model (SAP CAP). SAP CAP basiert nicht auf ABAP, ist aber für ABAP-Entwickler, Node.js-Entwickler oder Webentwickler leicht zu erlernen, da es die Konzepte des SAP-RAP-Programmiermodells übernimmt und mit den Node.js- und den Webentwicklungswerkzeugen kombiniert. Als erfahrener ABAP-Entwickler verlassen Sie mit SAP CAP die gewohnte Programmierumgebung. Das erfordert von Ihnen eine Umorientierung. Unter anderem müssen Sie sich mit Kommandozeilenwerkzeugen wie dem Node.js-Paketmanager »npm« vertraut machen. Dieses Werkzeug ist Ihnen bestimmt schon einmal begegnet, wenn Sie aus der Node.js-Ecke kommen. Mit etwas Routine können Sie vieles schneller und einfacher implementieren als mit anderen SAP-Programmiermodellen. Sie brauchen beispielsweise keine Verbuchungsroutinen oder langwierigen Eingabeprüfungen mit ABAP zu implementieren. Ebenso entfallen die redundante Datenhaltung und der damit verbundene Zusatzaufwand bei der Entwicklung. Bevor Sie die Zeitersparnis nutzen können, steht jedoch die Investition in Ihr Know-how an. Dabei soll Ihnen dieses Buch behilflich sein:

Viele Probleme, die mich als SAP-CAP-Neuling Zeit gekostet haben, sind in diesem Buch berücksichtigt, sodass Sie in derselben Situation schnell eine Lösung bereithaben.

Kapitel 3

enthält eine realistische Beispielanwendung, die die unterschiedlichen Aspekte beleuchtet.

Quellcode-Beispiele

Dieses Buch enthält viele Quellcode-Beispiele. Um die Lesbarkeit in Ihrem E-Book-Lesegerät zu verbessern, empfehlen wir, den Quellcode im Querformat zu betrachten.

Beispielanwendung

Die Beispielanwendung finden Sie im GitHub-Repository https://github.com/germanysources/CAP_sample_app.

Vorkenntnisse von SAP RAP und UI5 sind auch bei SAP CAP hilfreich. Während Sie bei SAP RAP mit dem SAP Gateway Service Builder aus ABAP-Dictionary-Strukturen oder aus CDS-Views OData-Services generiert haben, verwenden Sie bei SAP CAP dazu die Core Data Services für CAP.

SAP CAP ist nicht nur auf UI5-Applikationen beschränkt. Sie können mit SAP CAP auch Webapplikationen mit einem Framework Ihrer Wahl oder nur mit HTML5 und den nativen Web-APIs, die Ihnen moderne Browser zu Verfügung stellen, entwickeln. Es besteht bei SAP CAP im Vergleich zu anderen SAP-Produkten kein Vendor Lock-in. Die Komponenten, die Sie für Entwicklung und Betrieb von SAP-CAP-Applikationen benötigen, sind unter Open-Source-Lizenzen verfügbar. Die SAP-HANA-Datenbank und die SAP Business Technology Platform (BTP) sind nur zwei Möglichkeiten, die Applikationen zu betreiben. Es hindert Sie niemand daran, SAP-CAP-Applikationen mit einer SQLite- oder einer PostgreSQL-Datenbank im Hintergrund selbst zu hosten. Wenn Sie eine Webapplikation mit nutzergenerierten Inhalten entwickeln möchten, ist SAP CAP ein Programmiermodell, das es zu evaluieren lohnt.

Im Text verwenden wir Kästen, um wichtige Informationen besonders hervorzuheben. Jeder Kasten ist zusätzlich mit einem Piktogramm versehen, das diesen genauer klassifiziert:

Hinweis

Hinweise bieten praktische Tipps zum Umgang mit dem jeweiligen Thema.

Achtung

Warnungen weisen auf mögliche Fehlerquellen oder Stolpersteine im Zusammenhang mit einem Thema hin.

Die Form der Anrede

Um den Lesefluss nicht zu beeinträchtigen, verwenden wir im vorliegenden Buch bei personenbezogenen Substantiven und Pronomen zwar nur die gewohnte männliche Sprachform, meinen aber gleichermaßen Personen weiblichen und diversen Geschlechts.

Hinweis zum Urheberrecht

Sämtliche in diesem Buch abgedruckten Screenshots unterliegen dem Copyright der SAP SE sowie Adobe. Alle Rechte an den Screenshots hält die SAP SE. Der Einfachheit halber haben wir im Rest des Buches darauf verzichtet, dies unter jedem Screenshot gesondert auszuweisen.

1   Grundgedanken

In diesem Kapitel möchte ich Ihnen die grundsätzlichen Konzepte des SAP Cloud Application Programming Model (CAP) und die einschlägigen Entwicklungswerkzeuge vorstellen.

1.1   Unterschiede zwischen SAP CAP und SAP RAP

Sowohl SAP CAP als auch SAP RAP verwenden OData-Services für CRUD-Operationen (CREATE, READ, UPDATE, DELETE). Alle Algorithmen, die Sie mit SAP CAP entwickeln, können Sie daher auch mit ABAP und SAP RAP umsetzen. Der Hauptunterschied besteht in der Datenhaltung. SAP CAP verwendet als erstes Programmiermodell nicht mehr das ABAP Dictionary zur Datenmodellierung, sondern die anwendungsspezifische Programmiersprache CAP CDS (Core Data Services für CAP), mit der Sie Strukturen, Entitäten und Assoziationen beschreiben. Adapter setzen dabei das in CAP CDS definierte Datenmodell in ein für die Datenbank passendes Datenbankschema um. Der Begriff »Datenbankschema« steht dabei für eine Kollektion aus Datenbanktabellen und für die Relationen der Tabellen untereinander. Es sind u.a. Adapter für SQLite, das hauptsächlich zu Entwicklungs- und Testzwecken dient, sowie für SAP HANA und PostgreSQL vorhanden.

Aus dem Datenmodell erstellen Sie Servicedefinitionen, die SAP CAP in OData-Services umsetzen kann. Die Servicedefinition enthält Projektionen oder Views auf Entitäten des Datenmodells. Aus Projektionen erstellt SAP CAP OData-Services zum Lesen oder Modifizieren von Entitäten. SAP CAP und die Adapter kümmern sich dabei darum, Anfragen an die OData-Services in native SQL-Statements umzusetzen und die Resultate der SQL-Abfragen an den Aufrufer weiterzugeben. Dies entspricht dem SAP Gateway (SAP RAP), nur dass SAP CAP keine Modell- und Datenanbieterklassen generiert. Über die Arbeitsweise des SAP Gateway erfahren Sie mehr in meinem »Praxishandbuch SAP Gateway« (Espresso Tutorials, 2021).

1.1.1   Boilerplate-Code

Mittels Annotationen implementieren Sie mit CAP CDS Bedingungen (z.B. Mussfelder). Das Ziel dabei ist es, Boilerplate-Codes zu vermeiden. Unter Boilerplate-Code versteht man mehrfach vorhandene Code-Segmente, die dieselbe Funktionalität bereitstellen bzw. weitestgehend identisch sind. Ein Beispiel sind Eingabeprüfungen. Im BAPI BAPI_GOODSMVT_CREATE ist die Eingabeprüfung händisch mit vielen IF-Klauseln implementiert. Unter anderem wird geprüft:

Existiert die Materialnummer?

Existiert die Bewegungsart?

Existiert der Lagerort?

SAP CAP nimmt Ihnen diese Arbeit ab. Sie definieren sich ein Datenmodell mit

den Materialstammdaten,

den Bewegungsarten,

den Lagerortstammdaten und

den Materialbelegpositionen.

Im Datenmodell geben Sie dann mittels Assoziationen an, dass die Materialnummer aus den Materialstammdaten, die Bewegungsart aus der Bewegungsartentabelle und der Lagerort aus den Lagerortstammdaten stammt. SAP CAP prüft nun beim Erstellen einer Materialbelegposition diese Zusammenhänge und wirft einen Fehler, wenn die Materialbelegposition inkonsistent ist.

1.2   Entwicklungswerkzeuge für SAP CAP

Die SAP-CAP- und die ABAP-Entwicklung unterscheiden sich beim Einsatz der Entwicklungswerkzeuge. Bei der ABAP-Entwicklung gibt es im Regelfall immer ein Entwicklungssystem, auf dem Sie mit dem SAP GUI bzw. mit den ABAP Development Tools arbeiten. Bei SAP CAP entfällt das klassische Entwicklungssystem. Sie verwenden Ihren eigenen Rechner, um Programme zu erstellen und zu testen. Daher können Sie SAP GUI bzw. die ABAP Development Tools erstmal beiseitelegen. Stattdessen installieren Sie Node.js (https://nodejs.org/) und eine Entwicklungsumgebung Ihrer Wahl (z.B. Microsoft Visual Studio Code oder SAP Business Application Studio), die JavaScript bzw. Java-Projekte unterstützt und Ihnen eine Kommandozeile bietet (Bash bei macOS und Linux, Powershell, Eingabeaufforderung bzw. Git Bash bei Windows).

Node.js ist eine JavaScript-Umgebung für die Entwicklung von Webservices und bietet mit der NPM Registry viele Open-Source-Pakete, die Ihnen auf einfache Art den Aufbau eines Webservice ermöglichen. Dies hat sich auch die SAP zunutze gemacht und das CAP-SDK (Source Development Kit) in der NPM Registry veröffentlicht. Damit Sie nicht alle Pakete händisch von der NPM Registry herunterladen müssen, kommt Node.js mit dem Paketmanager npm im Schlepptau. Sie bedienen npm über die Kommandozeile Ihrer Entwicklungsumgebung. Dieses Werkzeug lädt Ihnen u.a. alle Pakete herunter, die Sie für Ihr Projekt benötigen. Die folgenden npm-Befehle sollten Sie kennen, bevor Sie mit der Entwicklung starten:

npm install

: Installiert alle benötigten Pakete, die in der Datei »package.json« angegeben wurden. Pakete werden aus der Registry https://registry.npmjs.com geladen. Unter https://npmjs.com durchsuchen Sie die Registry.

npm install @sap/cds-dk

: Installiert das Paket »@sap/cds-dk« (CAP-SDK) lokal im aktuellen Verzeichnis.

npm install –g @sap/cds-dk

: Installiert das Paket »@sap/cds-dk« global auf Ihrem Computer, sodass es für alle Projekte zur Verfügung steht.

Um ein neues Projekt zu starten, erstellen Sie als Erstes ein Verzeichnis lokal auf Ihrer Festplatte. Öffnen Sie die Kommandozeile und wechseln Sie in das Verzeichnis. Mit dem Befehl npx cds init erstellen Sie die initiale Ordnerstruktur für Ihr Projekt (siehe Abbildung 1.1). Sollte die Kommandozeile den Befehl nicht finden, fehlt Ihnen noch das CAP-SDK.

Abbildung 1.1: CAP-Projekt – initiale Ordnerstruktur

Die Ordner haben folgende Bedeutung:

.vscode

:

Einstellungen für Visual Studio Code (VS-Code, Entwicklungsumgebung der Firma Microsoft)

app

:

Ordner für die Clientapplikationen

db

:

Ordner für Schemadefinitionen (siehe

Abschnitt 2.3

)

srv

:

Ordner für Servicedefinitionen (siehe

Abschnitt 2.3

)

.cdsrc.json

:

lokale Projekteinstellungen

.gitignore

:

Dateien, die das Versionsverwaltungswerkzeug »git« ignoriert

package.json

:

lokale Paketkonfiguration

README.md

:

Dokumentationsdatei

Die Dateien müssen Sie immer in den passenden Verzeichnissen ablegen. Eine Schemadefinition im Ordner srv oder eine Servicedefinition im Ordner db kann SAP CAP nicht verarbeiten. Während der Entwicklung legt npm das Verzeichnis »node_modules« sowie die Datei »package-lock.json« an, die zur Verwaltung der Pakete dient.

Wenn Sie mit VS-Code arbeiten, installieren Sie die Erweiterung SAP CDS Language Support (siehe Abbildung 1.2).

Abbildung 1.2: VS-Code – Erweiterung

Diese Erweiterung bietet Ihnen Syntax-Highlighting und Source-Code-Prüfung (siehe Abbildung 1.3).

Abbildung 1.3: VS-Code – Syntax-Highlighting

Die Kommandozeile finden Sie im Menü Terminal • New Terminal (siehe Abbildung 1.4).

Abbildung 1.4: VS-Code – Kommandozeile öffnen

Abbildung 1.5 zeigt die Kommandozeile. Ein Kommando bestätigen Sie immer mit Enter, um es auszuführen.

Abbildung 1.5: VS-Code – Kommandozeile

2   Core Data Services für CAP

Eine zentrale Komponente des SAP Cloud Application Programming Model sind Core Data Services (CAP CDS). Dabei handelt es sich, wie bei den ABAP CDS bzw. HANA CDS, um eine Datendefinitionssprache.

Mithilfe der CAP CDS (nicht mit den CDS für ABAP bzw. HANA zu verwechseln) definieren Sie das Datenmodell Ihrer Anwendung. Sie verwenden dazu die Core Data Services Definition Language (CDL) sowie die Core Data Services Query Language (CQL). Die Präsentationslogik Ihrer Anwendung erstellen Sie mit Webtechnologien. In diesem Buch werden UI5 bzw. SAP Fiori und Vue.js angesprochen. Natürlich können Sie andere Technologien wie HTML5 und JavaScript oder wie Web-Components, React, Svelte usw. verwenden.

2.1   Core Data Services Definition Language

Die Core Data Services Definition Language (CDL) legt ihr Hauptaugenmerk darauf, Datenmodelle kurz und prägnant zu beschreiben, ohne dass dabei der Fokus auf die Problemdomäne in technischen Details verloren geht. Dazu wurde eine SQL-ähnliche Syntax entwickelt. Kernelement ist wie bei ABAP CDS und dem SAP Gateway die Entität (im folgenden CDL-Entität genannt). Eine Entität repräsentiert einen Eintrag in einer Datenbanktabelle bzw. Einträge in mehreren zusammenhängenden Datenbanktabellen und besteht aus mehreren Feldern, die einen elementaren oder zusammengesetzten Datentyp besitzen. SAP CAP veröffentlicht Entitäten mittels OData-Services.

2.1.1   Datentypen

CDL-Entitäten setzen sich aus elementaren Datentypen (CDL-Datentypen) zusammen. Tabelle 2.1 zeigt alle elementaren CDL-Datentypen. Dazu ist der jeweilige SQL-Datentyp, der bei Generierung des Datenbankschemas Anwendung findet, mit angegeben.

CDL-Datentyp

Beschreibung

SQL-Datentyp

UUID

Eindeutige ID (36 Zeichen lang)

NVARCHAR(36)

Boolean

Wahrheitswert

BOOLEAN

Integer

Natürliche Zahl

INTEGER

Integer64

Natürliche Zahl mit erweiterter Länge

BIGINT

Decimal

Dezimalzahl

1

DECIMAL

Date

Datum

DATE

Time

Uhrzeit

TIME

DateTime

Datum und Uhrzeit

2

TIMESTAMP

Timestamp

Zeitstempel

3

TIMESTAMP

String

Zeichenkette

NVARCHAR

Binary

Binärdaten

VARBINARY

LargeString

Zeichenkette mit unbegrenzter Länge

NCLOB

LargeBinary

Binärdaten mit unbegrenzter Länge

BLOB

1    Länge und Dezimalstellen sind eine optionale Angabe. Ohne diese Angabe wird der Datentyp »DECFLOAT« verwendet.

2   Genauigkeit von einer Sekunde.

3   Genauigkeit von 0,1 µs.

Tabelle 2.1: CDL-Datentypen

CDL-Datentypen sind Case-sensitive

Anders als bei ABAP und SQL muss bei Angabe der CDL-Datentypen auf Groß- und Kleinschreibung geachtet werden.

Aus den elementaren Datentypen können Sie wie in Listing 2.1 strukturierte Datentypen erstellen. Mit dem Zusatz many