Kitabı oku: «Praxishandbuch SAP Cloud Platform Integration»
Adam Kiwon
Praxishandbuch SAP® Cloud Platform Integration

Adam Kiwon
Praxishandbuch SAP® Cloud Platform Integration
ISBN:978-3-9601-2978-3 (E-Book)
Lektorat:Die Korrekturstube
Korrektorat:Johann-Christian Hanke
Coverdesign:Philip Esch
Coverfoto:© artisteer | Nr. 1160813252 istockphoto.com
Satz & Layout:Johann-Christian Hanke (E-Book)
1. Auflage 2020
© Espresso Tutorials GmbH, Gleichen 2020
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 die 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: info@espresso-tutorials.com.
Inhaltsverzeichnis
Cover
Titelseite
Copyright / Imprint
Vorwort
1 Schnittstellenplattformen
2 SAP Cloud Platform
2.1 Integration Platform as a Service
2.2 Bereitstellungsoptionen
2.3 Data Services und Process Integration
2.4 Account Cockpit
2.5 SAP CPI Onboarding
3 Schnittstellenentwicklung mit SAP CPI
3.1 Architektur
3.2 Integration Content
3.3 Entwicklungsprozess
3.4 Modularisierung
3.5 Fehlerbehandlung
3.6 Transportwesen
3.7 Sicherheit
3.8 Qualität und Integration Excellence
4 Integration Patterns
4.1 Events
4.2 Connectivity
4.3 Transformationen
4.4 Calls
4.5 Routings
4.6 Persistenz
4.7 Message Security
4.8 Laufzeitvariablen
5 Beispielszenario
5.1 Überblick
5.2 Umsetzung
5.3 Implementierung einer Variante
6 Standard Integration Content
6.1 Schnittstellen konfigurieren
6.2 Aktualisierungskonzept
6.3 Erweiterungskonzept
7 Monitoring und Betrieb
7.1 Nachrichten und Artefakte
7.2 Alerting
7.3 Zertifikate und Identitäten
7.4 Speicher
7.5 Logs und Traces
7.6 Eclipse
7.7 SAP Solution Manager und Focused Run
7.8 SAP Cloud ALM
8 Spezialthemen
8.1 B2B Add-on
8.2 Partner Directory
8.3 Integration Advisor
8.4 Lokales Deployment
8.5 API Management
8.6 Enterprise Messaging
8.7 Open Connectors
8.8 Workflow und Business Rules
8.9 SAP-Partner-Add-ons
9 Zusammenfassung und Ausblick
A Der Autor
B Disclaimer
Weitere Bücher von Espresso Tutorials
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:
Maximilian Rupp, Alexander Rupp:Praxishandbuch SAP® UI5 – Von der Idee zur App
Christoph Lordieck:Praxishandbuch BOPF – das Business Object Processing Framework
Sebastian Abshoff:Mobile Apps mit den SAP® Cloud Platform Mobile Services
Johannes Gerbershagen:Qualitätsmanagement in der ABAP-Entwicklung unter SAP®
Johannes Gerbershagen:SAP-Praxishandbuch ABAP Core Data Services (CDS)
Tobias Steckenborn:Schnelleinstieg in SAP® Cloud Platform Workflow

Vorwort
Dieses Praxishandbuch vermittelt Ihnen die Grundlagen der Modellierung von Schnittstellen mit SAP Cloud Platform Integration (SAP CPI). Ein zentraler Aspekt ist dabei die Vermittlung von Kenntnissen, wie die Integration zwischen Anwendungen, Systemen, Partnern und Behörden in der Cloud bzw. in hybriden Umgebungen erfolgen sollte und wie Schnittstellen sicher betrieben werden können. Es erläutert Ihnen die verwandten Integrationskomponenten der seit 2012 existierenden Integrationsplattform und beschreibt Szenarien für deren Koexistenz. Zudem soll es Experten als nützliches Nachschlagewerk zu detaillierten Funktionsweisen der einzelnen Integration Patterns dienen.
Kapitel 2 beschreibt Ihnen die Integrationsplattform der SAP und setzt SAP CPI in den Kontext zu anderen Technologien, die für eine Cloud sowie hybride Architekturen verwendet werden können und jeweils spezielle Funktionen bereitstellen, die eine konkrete Integrationsanforderung erfüllen.
Kapitel 3 stellt Ihnen die Grundlagen für ein robustes Schnittstellendesign bzw. die Entwicklung von Schnittstellen (Integration Content) mit SAP CPI vor und erläutert Ihnen die Zusammenhänge.
In Kapitel 4 werden die verschiedenen Integration Patterns, die für die Entwicklung des Integration Content benötigt werden, mit ihrer jeweiligen Funktionsweise anhand von Beispielen aufgelistet.
Kapitel 5 vertieft das in Kapitel 4 erworbene Wissen in einem Praxisbeispiel, das Sie Schritt für Schritt in Ihrem eigenen SAP-CPI-Tenant umsetzen können.
Leser, die sich nur für die Verwendung des Standard-Contents interessieren, können gleich zu den Kapiteln 6 und 7 springen, in denen die Konfiguration vorhandener Integration Packages und der Betrieb (Monitoring) von Schnittstellen in der Cloud beschrieben werden.
Den Abschluss bildet Kapitel 9 mit einer Ergänzung zu speziellen Integrationsthemen, die auf dem erlernten Wissen aufbauen.
SAP-Begriffe Deutsch/Englisch
Im Verlauf des Buches werden sowohl deutsche als auch englische Begriffe verwendet. Dies liegt zum einen daran, dass nicht jeder englische Begriff in seiner deutschen Übersetzung in der Praxis verwendet wird. So spricht man z.B. typischerweise von Deployment und nicht von Bereitstellung. Zum anderen steht die Benutzeroberfläche von SAP CPI nur in englischer Sprache zur Verfügung.
Quellcode-Beispiele
Dieses Buch enthält viele Quellcode-Beispiele. Um die Lesbarkeit in Ihrem E-Book-Lesegerät zu verbessern und den Zeilenumbruch korrekt darzustellen, empfehlen wir, den Quellcode im Querformat zu betrachten oder die Schriftgröße kleiner zu zoomen.
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.
Beispiel
Beispiele dienen dazu, ein Thema besser zu illustrieren.
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 die weibliche.
Hinweis zum Urheberrecht
Zum Abschluss des Vorwortes noch ein Hinweis zum Urheberrecht: Sämtliche in diesem Buch abgedruckten Screenshots unterliegen dem Copyright der SAP SE. 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 Schnittstellenplattformen
Dieses Kapitel vermittelt Ihnen die Bedeutung und den Nutzen sowie eine kurze Historie der Evolution von Schnittstellenplattformen bei der SAP, die mit SAP CPI als aktueller Technologie ihren vorläufigen Endpunkt findet.
Schnittstellen ermöglichen den elektronischen Datenaustausch zwischen (meist heterogenen) Anwendungen. IT-Landschaften in Unternehmen erfordern den Einsatz von Schnittstellenplattformen, sobald eine gewisse Komplexität erreicht ist. Meist ist dies bereits dann der Fall, wenn bestimmte Funktionen nicht mehr in einem Anwendungssystem allein betrieben werden (z.B. bei einer von der Auftragsverarbeitung getrennten Finanzbuchhaltung oder einer geteilten Verwaltung von Kundenstammdaten) oder ein elektronischer Austausch von Dokumenten mit Geschäftspartnern erfolgt (z.B. via EDIFACT).
Schnittstellenplattformen sind Systeme, die die standardisierte Entwicklung von Schnittstellen in IT-Landschaften gestatten und diese zudem verwalten, steuern sowie überwachen. Die dazugehörigen Konzepte basieren auf der Enterprise Application Integration (EAI) bzw. auf Serviceorientierter Architektur (SOA) und sorgen für die integrierte Abwicklung von Geschäftsprozessen in einer verteilten Landschaft von Anwendungen. Ziel ist die Vermeidung von Punkt-zu-Punkt-Architekturen, da diese u. a. schlecht zu verwalten und zu überwachen sind. Synonyme Begriffe für eine Schnittstellenplattform sind Enterprise Service Bus (ESB), Message Broker oder Message-oriented Middleware (MOM).
SAP-Schnittstellenplattformen existieren seit etwa 2004, und ihre Geschichte begann mit der SAP Exchange Infrastructure (XI). Davor existierte zwar bereits der SAP Business Connector (BC), ein von der Firma WebMethods zugekauftes Produkt, das ein SAP-R/3-System in die Lage versetzte, über Internetprotokolle (z.B. HTTP) mit Fremdsystemen zu kommunizieren. SAP XI war jedoch das erste echte SAP-Produkt zu den Themen »Integration« und »Connectivity« und ein wesentlicher Bestandteil der Integrationsplattform SAP NetWeaver. Später wurde das Produkt in SAP Process Integration (PI) umbenannt, unter dem es noch heute weitverbreitet ist. SAP PI basiert auf einem sogenannten Dual-Stack, d.h., es werden ein ABAP- sowie ein Java-Server verwendet.
Die letzte Stufe der Evolution (zumindest in der On-Premise-Welt) stellt das Produkt SAP Process Orchestration (PO) dar, das nur noch auf einem Java-Stack aufbaut und darüber hinaus die Komponenten SAP Business Process Management (BPM) sowie SAP Business Rules Management (BRM) beinhaltet, um primär zustandsbehaftete (stateful) Integrationen (z.B. das Aggregieren/Sammeln oder Korrelieren/Verknüpfen von Nachrichten) sowie die Verwaltung von Geschäftsregeln zu unterstützen.
SAP Cloud Platform Integration (SAP CPI), ehemals SAP HANA Cloud Integration (HCI), ist die aktuelle Cloud Middleware der SAP. Wesentliche Elemente von SAP PI/PO finden sich darin nicht wieder, so enthält es z.B. kein starr festgelegtes (geradezu dogmatisches) Vorgehensmodell für die Erstellung von Schnittstellen. Im Gegensatz zur proprietären und sehr SAP-eigenen Implementierung werden hier offene Standards wie z.B. Apache Camel als Laufzeitumgebung verwendet. Dennoch ist eine Abwärtskompatibilität für die bereits erstellten Message-Mappings gewährleistet, da diese SAP-spezifische Laufzeitumgebung ebenfalls implementiert wurde.
SAP CPI basiert auf einer gänzlich flexiblen Pipeline, einem grafisch dargestellten Block, in dem sich die Verarbeitungsschritte als grafische Elemente sehr individuell anordnen lassen. Dies ist Fluch und Segen zugleich, da eine diesbezügliche extreme Standardisierung zugunsten einer hohen Flexibilität auch ein Qualitätsrisiko bedeutet. Letzteres lässt sich jedoch durch die Etablierung guter Entwicklungsrichtlinien und eines Vorgehensmodells begrenzen, sowie ggf. durch den Einsatz zusätzlicher Tools, die eine möglichst hohe Transparenz sowie eine Schnittstellensteuerung ermöglichen.
2 SAP Cloud Platform
Dieses Kapitel gibt Ihnen einen Überblick über die wesentlichen Funktionen von SAP Cloud Platform im Hinblick auf das Thema Integration. Zudem werden grundlegende Konzepte der Verwaltung sowie der Inbetriebnahme erläutert.
SAP Cloud Platform stellt die Platform as a Service (PaaS) von SAP dar. Unter diesem Begriff werden Cloud-Dienste zusammengefasst, die die Erstellung und den Betrieb von Webanwendungen ermöglichen. Entsprechend vielfältig sind die unterschiedlichen angebotenen Dienste (Services), die jeweils eine bestimmte Aufgabe übernehmen, so z.B. Datenbanken, Entwicklungsumgebungen, Dokumentenverwaltung, Benutzeroberflächen (UIs) sowie Integrationsfunktionen. Diejenigen Services, die der Integrationsfunktionalität einer Plattform zugerechnet werden, bezeichnet man als Integration Platform as a Service (iPaaS).
2.1 Integration Platform as a Service
Zur iPaaS von SAP gehören aktuell die folgenden Services:
API Management
Cloud Integration (CPI)
Connectivity
Integration Advisor
Internet of Things
OData Provisioning
Open Connectors
SAP Edge Services
SAP Leonardo ML Foundation
Smart Data Integration
Ausgewählte Services, für die ein kombinierter Einsatz mit SAP CPI sinnvoll ist, werden in Kapitel 8 erläutert.
Übersicht der SAP-Cloud-Platform-Services
Unter der URL https://cloudplatform.sap.com finden Sie die aktuell verfügbaren Services inkl. einer Möglichkeit, die Kosten für deren Einsatz zu kalkulieren.
Sie können aktuell zwei verschiedene Editionen erwerben, die Process Integration (PI) Edition und die (umfangreichere) Enterprise Edition. In der PI-Version sind pro Produktionsumgebung drei Verbindungen sowie zehn Gigabyte Bandbreite enthalten. Eine Verbindung stellt dabei eine Anwendung dar, also typischerweise eine IP-Adresse, über die Nachrichten ausgetauscht werden. Weitere Verbindungen können Sie zusätzlich (kostenpflichtig) lizenzieren. Die Enterprise Edition hingegen umfasst zusätzliche Services (z.B. B2B-Adapter, siehe Abschnitt 8.1, oder Enterprise Messaging, siehe Abschnitt 8.6) und ist hinsichtlich der Anzahl der Verbindungen nicht limitiert.
Seit 2019 bündelt die SAP diese eigentlich autarken Services unter dem Begriff SAP Cloud Platform Integration Suite (siehe Abbildung 2.1). Sie verfolgt damit das Ziel, deren Koexistenz und Interaktion zu verbessern und sie entsprechend einfacher zu vermarkten.
Die Lizenzierung der Integration Suite erfolgt aktuell über drei verschiedene Editionen, die eine unterschiedliche Anzahl an Umgebungen bereitstellen:
Basic: SAP CPI
Standard: enthält den Basic-Umfang inkl. JMS (siehe Abschnitt 4.2.20), API Management (siehe Abschnitt 8.5), Open Connectors (siehe Abschnitt 8.7) und Integration Advisor (siehe Abschnitt 8.3)
Premium: enthält die Standard-Edition inkl. Alert Notification Service (siehe Abschnitt 3.3.3) und Transport Management Service (siehe Abschnitt 3.6.2)

Abbildung 2.1: SAP Cloud Platform Integration Suite
SAP-CPI-Editionen
Eine Übersicht der vorhandenen Editionen finden Sie im SAP-Blog unter https://bit.ly/3fx5CND.
2.2 Bereitstellungsoptionen
SAP unterscheidet aktuell zwei Arten von Rechenzentren, in denen die iPaaS-Services betrieben werden:
Neo (SAP-eigene Rechenzentren mit proprietärer Bereitstellung und Verwaltung)
Cloud Foundry (über die Rechenzentren sogenannter Hyperscaler)
Cloud Foundry ist eine Open-Source-PaaS, die von verschiedenen Software-Anbietern (z.B. SAP) verwendet und von Infrastrukturanbietern (Hyperscaler) bereitgestellt wird.
Hyperscaler wiederum sind Dienstleister im Cloud-Umfeld, über die durch den Zusammenschluss tausender Server in Rechenzentren eine Vielzahl an Systemen und ganze IT-Landschaften genutzt werden können. Zu den bekannteren gehören:
Microsoft Azure
Amazon Web Services (AWS)
Google Cloud Platform
Alibaba Cloud (Aliyun)
Dabei gilt es zu beachten, dass diese Hyperscaler ihre eigenen Plattformen betreiben, die sich hinsichtlich ihrer jeweiligen Funktionalität häufig ähneln (Datenbanken, Laufzeitumgebungen und viele weitere Services). Wir wollen sie im Weiteren allerdings nur als alternative Rechenzentren betrachten.
Manche Services von SAP Cloud Platform existieren exklusiv nur in einer von beiden Umgebungen.
Während einige Dienste der SAP Cloud Platform bereits von Beginn an in der Cloud Foundry existieren, wird SAP CPI erst seit 2019 in dieser Umgebung bereitgestellt.
SAP CPI Trial in Cloud Foundry
Sie können den Dienst sogar kostenlos ausprobieren (siehe https://cloudplatform.sap.com/try.html).
Die Funktionalität dieser Testversion (Trial) ist jedoch noch ziemlich beschränkt (z.B. fehlen bestimmte Adapter, Transporte, APIs) und wird im Detail in folgendem SAP-Hinweis beschrieben: https://launchpad.support.sap.com/#/notes/2752867.
2.3 Data Services und Process Integration
SAP CPI wird über zwei unterschiedliche Verwendungsarten bzw. Ausprägungen angeboten:
Process Integration (PI)
Data Services (DS)
CPI Process Integration wird hier im Buch detailliert erläutert; sie bildet die SAP Middleware für die nachrichten- und prozessbasierte Integration in der Cloud, während die CPI-Data-Services-Ausprägung die Datenperspektive einnimmt. Der primäre Fokus von Data Services liegt auf der Replikation von Daten (typischerweise direkt aus Datenbanktabellen) im Sinne eines ETL-Tools (Extract, Transform, Load). Aktuell ist das von CPI-DS verwendete primäre Integrationsszenario das SAP-Produkt IBP (Integrated Business Planning). Dabei werden Daten aus SAP ECC bzw. SAP S/4HANA über lokal installierte Agenten in die Cloud geladen, um dort die entsprechende Planungsapplikation mit Daten zu versorgen und passende Funktionalitäten bereitzustellen.
2.4 Account Cockpit
Die zentrale Verwaltung von Services findet im Account Cockpit statt. Es wird über die URL https://account.hana.ondemand.com aufgerufen, und man authentifiziert sich mit seinem S-User.
Jedes Unternehmen, das einen Vertrag mit der SAP schließt, also z.B. eine SAP-CPI-Lizenz kauft bzw. subskribiert, bekommt einen sogenannten Global Account zugewiesen. Dieser ist direkt an die Lizenz und die Laufzeit gekoppelt. Um eine Vielzahl an Global Accounts zu vermeiden, empfiehlt die SAP ein »consumption-based commercial model« (siehe https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=489198716), das das Cloud Platform Enterprise Agreement (CPEA) mit einschließt – ein Verfahren der Subskription mittels sogenannter Cloud Credits, die man erhält, um einzelne Services zu aktivieren, ohne ständig neue Global Accounts zu erstellen. Dabei sind alle Services auswählbar, die unter dem SAP Cloud Platform Service Description Guide and Agreement verfügbar sind (siehe https://www.sap.com/about/agreements/policies/cloud-platform.html). Jeder Global Account ist genau einer Region und damit einem Rechenzentrum zugeordnet.
Innerhalb eines solchen Global Accounts werden mehrere Sub-Accounts angelegt, die typischerweise einem Tenant zugeordnet sind. Ein Tenant entspricht dabei typischerweise genau einer Virtual Machine (VM), auf der die Services bereitgestellt und zur Laufzeit ausgeführt werden. Pro Sub-Account aktiviert man sodann diejenigen Services, die man verwenden möchte.
Bei der Verwendung von SAP CPI empfiehlt sich der Einsatz unterschiedlicher Tenants. Jeder Umgebung (Development, Quality Assurance, Production) ordnet man jeweils einen Tenant zu. Abbildung 2.2 veranschaulicht die einzelnen Tenants eines Global Accounts, hier DEV (Development) als Entwicklungsumgebung, QA (Quality Assurance) als Testumgebung und PRD (Production) als Produktivsystem. Die jeweiligen Sub-Accounts enthalten eine eigene Java-Laufzeitumgebung innerhalb einer VM sowie ein Schema in einer HANA-Datenbank.

Abbildung 2.2: Global Account und Sub-Accounts
Wichtig ist, dass der SAP mitgeteilt wird, welcher Sub-Account/Tenant für die Produktion eingesetzt wird, da das SAP-Operations-Team dann die Überwachung entsprechend gründlich vornimmt, um Ausfälle zu vermeiden bzw. die sogenannte Elastizität zu gewährleisten, im vorliegenden Sinn also die automatische Skalierung der Hardware-Ressourcen, d.h. das Hinzufügen von Speicherplatz oder Rechenleistung, wenn die Anforderungen an die Software steigen.
2.5 SAP CPI Onboarding
Mit Onboarding ist die Inbetriebnahme eines SAP CPI Tenants gemeint. Nach der Aktivierung des Dienstes bzw. bei Abschluss einer Subskription erhält der auf Kundenseite hinterlegte Administrator zu seinem S-User eine E-Mail mit Informationen zur ersten Anmeldung. Dabei erscheint der Service Cloud Integration im Account Cockpit des Sub-Accounts (bei Verwendung von CPEA), oder es wird ein neuer Sub-Account bereitgestellt, der dem SAP CPI Tenant entspricht. Der Administrator kann anschließend weitere Administratoren benennen sowie die Zuordnung der berechtigten Nutzer als Mitglied (Member) des Cloud Integration Service (unter Angabe der S-User) vornehmen. Abbildung 2.3 listet die zugeordneten Administratoren auf der Ebene des Global Account auf. Ein Administrator ist infolgedessen in der Lage, sich innerhalb des Global Account weitere Rechte (z.B. zu Sub-Accounts) zu erteilen. Deshalb sollte die Verbreitung dieses Privilegs innerhalb einer Organisation mit Bedacht erfolgen.

Abbildung 2.3: Global-Account-Mitglieder
Zudem können z.B. Entwickler, die keine Administratorrechte erhalten sollen, dem Dienst direkt zugeordnet und mit entsprechenden Berechtigungen ausgestattet werden (siehe Abbildung 2.4). Einem Benutzer (S-User) wird hier die vordefinierte Rolle AuthGroup.IntegrationDeveloper zugewiesen. Alternativ können Sie auch sogenannte Gruppen definieren, die einem Benutzer zugeordnet werden. Diese Gruppen können Sie aus mehreren Rollen zusammenstellen.

Abbildung 2.4: Rollenzuweisung für SAP CPI
Der Login erfolgt über eine URL im Browser, auch als Web User Interface (WebUI) bezeichnet. Die URL hängt von der Tenant-ID sowie der Region, in der der Sub-Account betrieben wird, ab. Die URL lässt sich über den Sub-Account CPI Productive unter Subscriptions ermitteln (siehe Abbildung 2.5).

Abbildung 2.5: Subscriptions in einem Sub-Account
Die Startseite von SAP CPI entspricht typischerweise derjenigen in Abbildung 2.6.

Abbildung 2.6: SAP-CPI-Startseite
Browserempfehlung
SAP empfiehlt die Verwendung von Google Chrome als Browser für alle SAP-Cloud-Platform-Produkte, um die beste Kompatibilität hinsichtlich der Anzeige und der Funktionalität zu ermöglichen.
3 Schnittstellenentwicklung mit SAP CPI
Dieses Kapitel beschreibt den Prozess der Schnittstellenentwicklung mit SAP CPI sowie die wesentlichen Objekte und Konzepte, die dabei Anwendung finden.
Nachdem Sie sich über den Browser auf dem Tenant angemeldet haben, haben Sie die Wahl, in einen der folgenden Bereiche zu navigieren:
Discover
Design
Monitor
Hinter Discover verbergen sich der SAP-Katalog, der fertigen, verwendbaren Integration Content enthält, sowie aufrufbare Schnittstellen von SAP-Anwendungen (APIs), die Sie in neu erstellten Schnittstellen bausteinartig einsetzen (»konsumieren«) können. In Kapitel 6 erläutere ich Ihnen die dazugehörigen Konzepte.
Der Monitor stellt Überwachungs- und Konfigurationsmöglichkeiten bereit, die in Kapitel 7 behandelt werden.
Der Bereich Design umfasst die Entwicklung von Schnittstellen und wird hier bzw. in Kapitel 4 ausführlich erläutert.
3.1 Architektur
3.1.1 Nodes
Sämtliche Aktivitäten hinsichtlich der Entwicklung von CPI-Schnittstellen erfolgen über den Browser, der sich wiederum mit der sogenannten Tenant Management Node verbindet. Darüber hinaus gibt es zwar vereinzelte Szenarios, die die Software Eclipse anstelle eines Browsers als Entwicklungsumgebung verwenden (siehe Abschnitt 7.6), die SAP jedoch hat alle wesentlichen Funktionen in der WebUI implementiert. Die Tenant Management Node dient der Interaktion zwischen Entwicklern bzw. Administratoren und dem CPI Tenant, um Änderungen an den Objekten vorzunehmen oder ein Monitoring zu betreiben.
Für die Laufzeit wird die Runtime Node verwendet. Dort werden die Schnittstellen bereitgestellt, und mit diesen Nodes interagieren die beteiligten Systeme. Jede Node stellt dabei eine eigene VM dar, die über Hauptspeicher (RAM), CPUs usw. verfügt. Die Skalierung der CPI erfolgt dementsprechend über die Größe und Anzahl der Nodes. Da sich das System »elastisch« verhalten soll, d.h., der Kunde sich nicht darum kümmern müssen soll, ob das System einer Belastung standhält, ist »die Dimensionierung der Laufzeitumgebung« für den Kunden nicht immer transparent. Abbildung 3.1 veranschaulicht den Aufbau der SAP-CPI-Architektur.

Abbildung 3.1: SAP-CPI-Architektur
Weitere Informationen zur SAP-CPI-Architektur
Im SAP Help Portal finden Sie unter nachfolgendem Link den Aufbau der SAP-CPI-Architektur: https://bit.ly/32lHCcE.
3.1.2 Apache Camel
SAP CPI basiert auf der Laufzeitumgebung Apache Camel; dabei handelt es sich um ein Open-Source-Projekt der Apache Software Foundation, das Java als Laufzeit verwendet und sogenannte Entwurfsmuster (Enterprise Integration Patterns) unterstützt, die für Systeme verwendet werden, die auf den Prinzipien von Enterprise Application Integration (EAI) und Message Oriented Middleware (MOM) beruhen. Einer der Vorteile von Apache Camel ist die Existenz einer Vielzahl von Components, die eine Integration zu Systemen und Anwendungen ermöglichen (siehe Abbildung 3.2) und somit die Entwicklung eines Adapters auf SAP CPI erleichtern, sofern die vorhandenen Adapter nicht bereits ausreichen, um Schnittstellen zu entwickeln. Darüber hinaus ist eine genauere Kenntnis von Apache Camel nicht erforderlich, um auf SAP CPI Schnittstellen modellieren zu können, da die mitunter sehr komplexe technische Implementierung für den Entwickler seitens der SAP abstrahiert wurde. Camel-eigene Begriffe wie »Endpoint« und »Processor« (siehe Abbildung 3.2) spielen in der SAP CPI WebUI daher keine Rolle.

Abbildung 3.2: Apache-Camel-Architektur
3.1.3 Aktualisierungskonzept
Ein CPI Tenant wird, wie jedes echte Cloud-Produkt (SaaS – Software as a Service), regelmäßig und derzeit ungefähr monatlich aktualisiert. Hierfür erhält der Tenant-Administrator eine Informations-E-Mail mit den Angaben zu den betroffenen Tenants (siehe Abbildung 3.3).

Abbildung 3.3: SAP-CPI-Update-E-Mail
Dabei gilt es zu beachten, dass die SAP im Vorfeld diverse technische Kombinationen erprobt und eine Vielzahl an Szenarios (vor allem den von SAP ausgelieferten Standard Integration Content) ausführlich testet (siehe auch Kapitel 6). Die SAP hat in einem Blogeintrag zusammengefasst, wie bei den Tests vorgegangen und eine störungsfreie Aktualisierung sichergestellt wird: https://bit.ly/32ku7tR. Dort wird auch die Möglichkeit erwähnt, ausgewählte eigene Integration Flows testweise an die SAP zu liefern, um diese mit jedem neuen Update (kostenpflichtig) mittesten zu lassen.
Der Status der CPI pro Data Center lässt sich im SAP Trust Center ermitteln: https://www.sap.com/germany/about/trust-center/cloud-service-status.html (siehe Abbildung 3.4). Dort können Sie vergangene Ereignisse nachverfolgen (z.B. eine erfolgte Wartung/ein erfolgtes Update oder eine außerplanmäßige Störung, siehe Abbildung 3.5).

Abbildung 3.4: SAP Trust Center

Abbildung 3.5: SAP-CPI-Statushistorie
Wenn Sie über aktuelle Störungen bzw. Alert-E-Mails zum Status einer Anwendung im Data Center informiert werden möchten (nur zur Verfügbarkeit, nicht auf Schnittstellenebene), können Sie sich für Status-Updates registrieren: https://sapcp.statuspage.io/ (siehe Abbildung 3.6).

Abbildung 3.6: SAP-Cloud-Platform-Status
3.2 Integration Content
Integration Content bezeichnet eine Software, die für die Funktionsweise einer Schnittstelle benötigt wird. Damit sind sämtliche Elemente gemeint, die eine Schnittstelle repräsentieren. Umgangssprachlich spricht man auch von »digitalem Klebstoff«, mit dem Systeme, Anwendungen, Geschäftspartner und Behörden miteinander verbunden werden können. Nachfolgende Objekte, die besondere Arten von Integration Content darstellen, werden hinsichtlich ihrer Bedeutung und Funktionalität erläutert.
3.2.1 Integration Package
Ein Integration Package ist eine Art Verzeichnis bzw. Archiv, das mehrere, typischerweise zusammengehörige Schnittstellen bündelt. Mit diesem können Sie, neben einer Kurzbeschreibung, eine Dokumentation als Text erfassen (siehe Abbildung 3.8) bzw. vorhandene Dokumente unter Documents importieren oder als Hyperlink auf ein freigegebenes Dokument (z.B. in der Anwendung SharePoint) verweisen.

Abbildung 3.7: Integration Package anlegen

Abbildung 3.8: Dokumentation im Integration Package
Die eigentlichen Schnittstellen werden unter Artifacts angelegt. Sie können nun eine Auswahl aus drei Objekten treffen, die ich Ihnen in den nachfolgenden Abschnitten erläutern werde:
Integration Flow
OData-Service
Value Mapping
Transporte
Beachten Sie, dass bei der Entwicklung von Schnittstellen der Transport zwischen den Tenants auf der Ebene der gesamten Integration Packages erfolgt, d.h., sämtliche Artefakte werden z.B. vom Entwicklungstenant zum Testtenant transportiert. Wie dies geschieht und welche Konzepte dabei relevant sind, betrachtet Abschnitt 3.6.
3.2.2 Integration Flow
Ein Integration Flow (auch: iFlow) stellt das wichtigste Element in der Schnittstellenentwicklung mit SAP CPI dar. Hier werden z.B. zwei Anwendungen durch Konnektivität (Übertragen von Nachrichten) und Transformation (Umwandeln von Nachrichten hinsichtlich Struktur, Format und Inhalt) miteinander verknüpft. Bei der Anlage eines Integration Flow geben Sie neben dem Namen auch eine Kurzbeschreibung an, die anschließend in der Paketübersicht angezeigt wird (siehe Abbildung 3.9). Zudem können Sie bei Bedarf einen Sender und Empfänger benennen; dies hätte jedoch eine rein dokumentierende Funktion und würde sich nicht auf das Design des grafischen Objektes auswirken.

Abbildung 3.9: Integration Flow anlegen
Weil es die gängigste Form einer Schnittstelle darstellt, wird das generierte Objekt zwar nicht zwangsläufig, aber in der Regel mit einem Sender, einem Integrationsprozess und einem Empfänger (Receiver) angelegt (siehe Abbildung 3.10); nach dem EVA-Prinzip (Eingabe, Verarbeitung, Ausgabe) der EDV wird auf diese Weise typischerweise eine Nachricht behandelt. Dennoch kann ein Integration Flow z.B. nur aus einem Integrationsprozess bestehen, der nicht durch eine eintreffende Nachricht gestartet wird, sondern durch ein zeitgesteuertes Ereignis, den Timer (siehe Events in Abschnitt 4.1), und keinen weiteren Empfänger aufruft, da nur eine CPI-interne Aktivität ausgeführt wird.

Abbildung 3.10: Integration Flow Template
Sie können eine Beschreibung hinterlegen, die den Ablauf der Schnittstelle im Detail erläutert. Häufig ist dies jedoch nicht notwendig, wenn die grafische Darstellung aussagekräftig genug ist. Letztere basiert dabei auf dem Modellierungsstandard BPMN 2.0 (Business Process Model and Notation). Wenn Sie die Elemente bereits kennen, ist dies sicherlich hilfreich. Falls nicht, werden Sie das Konzept schnell verinnerlichen. In Abschnitt 3.3 werden wir es näher betrachten.
Auf der Ebene des Integration Flow legen Sie zudem das Laufzeitverhalten (Runtime Configuration) fest. Hier können Sie auswählen, auf welcher Umgebung das Objekt »installiert« (deployed) werden soll (SAP CPI oder SAP Process Orchestration, siehe Abschnitt 8.4) oder ob z.B. HTTP Sessions aus Performancegründen wiederverwendet oder die Anmeldung bei einem auf dem HTTP-Protokoll basierten Empfänger immer vollständig durchlaufen werden soll (siehe Abbildung 3.11). On Exchange wird dabei für zustandsbehaftete Services verwendet, On Integration Flow für zustandslose (stateless) Services.

Abbildung 3.11: Wiederverwendung von HTTP-Sessions
Ein Integration Flow kann aus jeweils mehreren Integrationsprozessen, Sendern und Empfängern bestehen. Der Austausch von Nachrichten zwischen den Komponenten erfolgt hier grafisch durch das Verbinden der rechteckigen Kästen, indem per Drag-and-drop eine Linie gezogen wird. In Abbildung 3.12 wurde eine Verbindung vom Sender zum Start-Event des Integrationsprozesses hergestellt. Dabei erscheint ein Auswahlfenster, auf dem der zu verwendende Adapter (hier: HTTPS) zu selektieren ist. Anschließend können Sie die Adapter-spezifischen Eigenschaften des sogenannten Kommunikationskanals konfigurieren.

Abbildung 3.12: Integration Flow – Sender-Verbindung
Entsprechend ähnlich verfahren Sie bei der Konfiguration einer Verbindung hin zu einem Empfänger, indem Sie eine Linie vom End-Event zum Receiver ziehen (siehe Abbildung 3.13).

Abbildung 3.13: Integration Flow – Receiver-Verbindung
Abbildung 3.14 zeigt einen Integration Flow mit zwei Integrationsprozessen, die durch unterschiedliche Ereignisse gestartet werden. Beide rufen einen lokalen Integrationsprozess auf, der eine Wiederverwendung ermöglicht.

Abbildung 3.14: Integration Flow mit zwei Integrationsprozessen
Während der obere Integrationsprozess eine Nachricht via HTTPS vom Sender empfängt, ein Mapping ausführt und ein IDoc an den Empfänger sendet, startet der untere Integrationsprozess über einen Timer. Anschließend wird der sogenannte Data Store aufgerufen, um eine Nachricht zu lesen, das Mapping wird abgefragt und das Ergebnis in den Data Store geschrieben. Diese Darstellung soll Ihnen nur einen ersten Eindruck hinsichtlich der möglichen Komplexität und Interaktion der Elemente innerhalb eines Integration Flow vermitteln. Die einzelnen Elemente und Komponenten werden ausführlich in Kapitel 4 behandelt.
3.2.3 OData-Service
Ein OData-Service ermöglicht die Bereitstellung aufrufbarer Schnittstellen (APIs), die auf dem Open-Data-Protokoll basieren. Hierbei kann eine Senderanwendung (typischerweise eine UI5-HTML-Applikation) das Artefakt aufrufen. Ein Integration Flow kann zwar ebenfalls einen Sender via OData-Adapter anbinden, jedoch nur für eine einzelne Methode einer spezifischen Operation.
Der OData-Service von SAP CPI bietet die Option einer umfassenden Integration, deren Grundlage eine EDMX-Definition (Entity Data Model XML) darstellt und verschiedene Operationen gestattet. Der Service kann dabei basierend auf einem vorhandenen OData-Service oder einer SOAP (Simple Object Access Protocol) API generiert oder gänzlich neu angelegt werden. Zu jeder Methode werden sodann automatisch einzelne Integration Flows erstellt, die die tatsächliche Anbindung an ein Empfängersystem durchführen.

Abbildung 3.15: OData-Service – Definition
Abbildung 3.15 zeigt den Ablauf der Service-Definition mit den Optionen, ein OData-Modell aus einer Datenquelle zu importieren oder neu zu erstellen, indem die Metadaten (EDMX) manuell editiert werden.

Abbildung 3.16: OData-Service – Modell
In dem Beispiel aus Abbildung 3.16 wird eine EDMX mit zwei Entitäten verwendet: StockSet und PlantSet. Beide Entitäten bieten mehrere Operationen, um Daten aufzulisten (Query), anzulegen (Create), zu lesen (Read), zu ändern (Update) und zu löschen (Delete). Zu jeder Operation kann ein Integration Flow generiert werden, der via SOAP, REST oder OData eine Empfänger-Anwendung aufruft.

Abbildung 3.17: OData-Service – generierter Integration Flow
Abbildung 3.17 stellt einen generierten Integration Flow dar, der mit dem HTTP-Adapter erreicht wird. Er führt für die Query-Operation der Entität StockSet einen REST-Service im Zielsystem aus. Vor und nach diesem Aufruf ist zu erkennen, dass Skripte durchlaufen werden, die eine Nachricht jeweils verändern können. Hierbei handelt es sich um eine Vorlage, die Sie bei jedem neu angelegten Integration Flow Ihren Anforderungen entsprechend modifizieren können.
Im Grunde können Sie einen OData-Service als Gruppierung einzelner Integration Flows verstehen, die zueinander in Beziehung gesetzt werden können.
So sind auch komplexere Kombinationen möglich, z.B. indem ein generierter Integration Flow einen anderen Integration Flow aufruft. Diese Art der internen Kommunikation stelle ich Ihnen in Abschnitt 3.4.2 näher vor.
3.2.4 Value Mapping
Value Mappings ermöglichen die Konvertierung von Werten (typischerweise Codelisten) und werden innerhalb von Mapping-Programmen (Message Mappings) aufgerufen. Sie können sich ein Value-Mapping-Objekt wie eine Datenbanktabelle vorstellen, die Sie abfragen, um zu einem gegebenen Eingabewert einen Ausgabewert zurückzuerhalten. Beispiele hierfür sind etwa Währungsschlüssel oder Mengeneinheiten, die nicht immer nach ein und demselben ISO-Standard verwendet werden. Damit also z.B. ein proprietärer Währungsschlüssel »weuro1« in den ISO-Code »EUR« (nach ISO 4217) umgewandelt werden kann, erfassen Sie diesen Eintrag in einem Value Mapping. Dazu definieren Sie die Agency (den Herausgeber), den Identifier (das Objekt) und nehmen die entsprechenden Werte auf. Abbildung 3.18 zeigt Ihnen, wie das Artefakt angelegt wird. Pro Value Mapping können mehrere Zuordnungen für unterschiedliche Objekte erfasst werden, hier exemplarisch für die Währungsschlüssel und Mengeneinheiten dargestellt.

Abbildung 3.18: Value Mapping anlegen
Die Werte fügen Sie je erfasster und ausgewählter Zeile hinzu (siehe Abbildung 3.19).

Abbildung 3.19: Value Mapping – Werte zuordnen
Dabei sind auch Zuordnungen von N:1 möglich (wenn z.B. »weur1« oder »weur2« beide in den Wert »EUR« konvertiert werden), wobei die Zuordnungen grundsätzlich direktional funktionieren.
Falls Sie also einen Wert haben, dem mehrere Ergebnisse folgen können, wählen Sie den sogenannten Default Value aus (siehe Abbildung 3.20).

Abbildung 3.20: Value Mapping – Default Value
Der Aufruf erfolgt dann typischerweise aus einem grafischen Message Mapping, das ich Ihnen in Abschnitt 4.3.1 näher vorstelle.
3.3 Entwicklungsprozess
Die Entwicklung einer Schnittstelle sollte einem standardisierten Muster folgen; Sie sollten sich also folgende Fragen stellen:
Wer sind die beteiligten Systeme/Anwendungen/Partner?
Welche Kommunikationsprotokolle werden unterstützt?
Welche Authentifizierung ist möglich?
Welche Nachrichtenformate werden verwendet?
Ist eine Transformation der Nachricht(en) notwendig?
Gibt es besondere Anforderungen an die Verarbeitung?
Wie soll mit Fehlersituationen umgegangen werden?
Je mehr Fragen Sie beantworten können, desto einfacher fällt Ihnen die Implementierung bzw. die (grafische) Modellierung eines Integration Flow.
3.3.1 Modellierung eines einfachen Integration Flow
Die beteiligten Akteure werden (analog zum BPMN-Standard) als »Pools« dargestellt, also als rechteckige Kästen, die eine Bezeichnung tragen. Im Integration Flow sind dies die Sender, Empfänger und Integrationsprozesse. Diese Pools interagieren miteinander durch Nachrichten, die ausgetauscht und durch Verbindungslinien visualisiert werden. Wir konzentrieren uns bei der Entwicklung auf das, was sich innerhalb der Integrationsprozesse abspielt bzw. beim Integrationsprozess zum Empfänger oder vom Sender hin zum Integrationsprozess (siehe Abbildung 3.21).

Abbildung 3.21: Integration Flow – Grundstruktur
Innerhalb eines Prozesses werden folgende Objekttypen verwendet:
Ereignis (visualisiert durch einen Kreis)
Aktivität (visualisiert durch einen rechteckigen Kasten)
Gateway (Verzweigung, visualisiert durch eine Raute)
Ein Startereignis sorgt dafür, dass die Verarbeitung beginnt. Dies kann das Eintreffen einer Nachricht sein (Start-Event Message) oder auch nur ein Zeitpunkt (Start-Event Timer).
Im besten Fall nimmt das System keine Änderung der Nachricht vor, und dem Empfänger wird die Nachricht zugestellt. In diesem einfachen Beispiel werden lediglich ein Startereignis (Timer), ein Endereignis (Message) und ein Empfänger mit Mail-Adapter konfiguriert (siehe Abbildung 3.22).

Abbildung 3.22: Einfacher Integration Flow
Durch das Selektieren eines Objekts erscheint im unteren Bereich des Bildschirms eine Konfigurationsmöglichkeit. Der Timer kann z.B. hinsichtlich des Aufrufintervalls konfiguriert werden (hier wochentags zweistündlich zwischen 8 und 18 Uhr, siehe Abbildung 3.23).

Abbildung 3.23: Timer-Event-Konfiguration
Ebenso verfahren Sie mit den Verbindungslinien zwischen Event und System (hier E-Mail), um eine Verbindung zum E-Mail-Server herzustellen (siehe Abbildung 3.24).

Abbildung 3.24: Mail-Adapter-Konfiguration
Dabei müssen Sie berücksichtigen, dass der E-Mail-Server erreichbar sein muss, also im Internet oder On-Premise über einen Cloud Connector verfügbar gemacht wurde (siehe Abschnitt 3.7.4). Die Authentifizierung erfolgt hier über sogenannte Credentials, die hier nur als Alias angegeben werden und im Bereich Monitoring • Manage Security • Security Material angelegt werden (Details hierzu finden Sie in Abschnitt 3.7.1).
Ücretsiz ön izlemeyi tamamladınız.