Wie wir eine Logistik-App auf Basis von SAP Leonardo in weniger als 10 Tagen entwickelt haben

Björn Goerke, Chief Technology Officer und President of SAP Cloud Platform bei SAP, schlug einen Weg bei der SAP TechEd in Las Vegas ein, den bisher noch kein Unternehmen gegangen ist. Während seiner Star Trek-Keynote kündigte er die Partnerschaft zwischen Mendix und SAP an. Die SAP Cloud Platform Rapid Application Development by Mendix (eine SAP Solution Extension) vereint zwei erstklassige Technologien miteinander, um den Kunden ein unvergleichliches Erlebnis zu bieten. Jana Richter, Head of Product Management für SAP Cloud Platform Core, präsentierte während der Keynote zwei Anwendungen, die auf der Mendix-Plattform basieren. Aber wie wurden diese Anwendungen entwickelt? Welche Dienste werden eingesetzt? In diesem Blogbeitrag erfahren Sie, welcher Aufwand hinter der Entwicklung einer vernetzten Logistik-App stand.

Für die Präsentation eines geeigneten User Cases

Vor dem offiziellen Start der SAP- und Mendix-Partnerschaft wurde ein Evangelisten-Team damit beauftragt, eine Demonstrations-App zu bauen. Diese Anwendung sollte die neueste Technologie präsentieren, für die beide Unternehmen stehen.

Dabei haben wir uns für einen älteren User Case entschieden, bei dem es darum ging, den Transport von Waren zu verfolgen. Ein sehr kritisches Thema bei Gütertransporten ist die richtige Lagerung und die richtige Beförderungsart. Denn während des Transports gibt es viele Faktoren, die den Zustand der Ware negativ beeinflussen können, z.B. Lichteinwirkung, Temperaturanstieg oder –abfall, Bewegung und Feuchtigkeit. Sicherzustellen, dass auch wirklich alle Transportbedingungen erfüllt sind, ist eine große Herausforderung, bei der viele verschiedene Händler und Spediteure involviert sind.

Diesen Demo-Case wollten wir um Daten und Services von SAP erweitern. SAP wird von 87 Prozent der Forbes Global 2000-Unternehmen eingesetzt und ist damit ein wesentlicher Bestandteil fast jeden großen Unternehmens.

Bei der Entscheidung, welche Dienste und Daten wir von SAP verwenden möchten, haben wir vier Schlüsseltechnologien identifiziert:

  • Blockchain
  • IoT
  • S/4HANA
  • SAP Cloud-Plattform.

Auf der SAP Sapphire kündigte das Unternehmen seine neue Suite bestehend aus IoT-, Machine Learning- und Blockchain-Technologien unter dem Namen SAP Leonardo an. SAP Leonardo vereint neue Technologien und Services, um Unternehmen effektiv bei der digitalen Transformation zu unterstützen.

Diese Dienste wollten wir nicht nur nutzen, sondern auch mit Daten aus anderen SAP-Systemen ergänzen. Geht es um Warentransport ist es besonders wichtig zu wissen, welche Ware zu welchen Bestellungen gehört. Um diese Daten zu erhalten, mussten wir in unser S/4HANA-System integrieren, erst dann konnten wir Kundenaufträge abrufen. Damit unsere Anwendung gehostet und skaliert werden konnte, haben wir uns für die SAP Cloud-Plattform entschieden, welche die native Integrationsfunktion der Mendix-Plattform nutzt.

Verwenden von SAP Leonardo IoT

Um den Zustand unserer Ladung zu verfolgen, wurden die Container mit Sensoren ausgestattet. Diese senden kontinuierlich Daten aus, die analysiert und aufgezeichnet werden müssen. Die SAP Leonardo IoT-Plattform ermöglicht die Verwaltung mehrerer Geräte und Sensoren, so dass diese Sensoren große Datenströme an die IoT-Plattform senden können. Diese Daten werden dann gesichert gespeichert, damit sie anschließend mit Ihrer Anwendung ausgelesen und analysiert werden können. In Zusammenarbeit mit SAP-Teams haben wir einen IoT-Service mit SAP Leonardo IoT V4, der neuesten SAP IoT-Plattform, eingerichtet. Mithilfe der API und des Web-Interfaces richteten wir mehrere Geräte und Gerätezertifikate ein, um eine sichere Verbindung zu dem Service herzustellen.

SAP Leonardo IoT Example Screenshot

Die Verbindung zu dem SAP IoT-Service erfolgt entweder über REST- oder MQTT-Protokolle. Wir haben uns hier für MQTT entschieden, ein eher schlankes Protokoll, das häufig im IoT-Bereich eingesetzt wird, da es uns ermöglicht, Daten über eine einzige Verbindung zu empfangen und zu veröffentlichen. Durch den Einsatz von Modulen aus dem Mendix-App Store konnten wir die Integration in die SAP Leonardo IoT-Plattform problemlos realisieren. Das verwendete MQTT-Konnektormodul ermöglicht es Mendix-Apps, MQTT-Themen zu abonnieren und zu veröffentlichen. In unserem Szenario wollten wir die von SAP veröffentlichten MQTT-Themen abonnieren.

Um die App und das MQTT-Publishing leichter zu demonstrieren, haben wir einen Simulator in die Anwendung integriert. Mit diesem können wir Temperatur-, Feuchtigkeits-, Bewegungs- und Lichtdaten an den IoT-Service senden und auf unserem Display visualisieren. Der Simulator sendet jede Sekunde Daten an den Dienst. Sind die Daten empfangen, werden sie in SAP gespeichert, wo Mendix die Daten dann über das MQTT-Abonnement empfangen kann. Alternativ können Sie diese Daten auch über REST abrufen. Jedes Mal, wenn eine Nachricht empfangen wird, wird ein Microflow mit Themeninformationen und einer Nachrichten-Payload im JSON-Format ausgeführt. Um die Daten zu importieren, richten wir in Mapping zwischen JSON-Daten und dem Mendix-Domain Model ein.

SAP IoT Example Screenshot

Verwendung von Blockchain

Vor dem eigentlichen Gütertransport erstellen Unternehmen häufig ausführliche Verträge, in denen geregelt ist, wie die Güter transportiert werden sollen und welche Sanktionen bei einem Vertragsbruch verhängt werden. Während des Transports kommt es häufig zu Vorfällen, die den Zustand und Wert der Ware beeinträchtigen können und somit zu Vertragsbrüchen führen. Allerdings ist es oft schwierig zu erkennen, wie, wann und durch wen dieser Vertrag gebrochen wurde. Hier bietet die Blockchain-Technologie in Kombination mit Smart Contracts eine ideale Lösung.

Smart Contracts sind selbstausführende Vereinbarungen auf Basis der Blockchain-Technologie, die Aktionen auslösen, sobald bestimmte Bedingungen erfüllt sind. Wenn zum Beispiel eine zu hohe Temperatur gemeldet wird, möchten wir diese aufzeichnen und speichern und gegen die Vertragsbedingungen stellen und den Kunden warnen.

Blockchain ist die ideale Technologie für derartige Szenarien, da sie uns ein unveränderliches Ledger aller Ereignisse bietet. Dieses Ledger kann nicht geändert oder manipuliert werden. So ist sichergestellt, dass es keine Möglichkeit gibt, geschehene Vertragsbrüche abzustreiten. Die Blockchain-Technologie findet Anwendung in allen möglichen Branchen wie etwa in der Logistik, dem Gesundheitswesen, bei Banken.

SAP bietet neben seiner IoT-Plattform ebenfalls einen Service an, der den Aufbau einer Blockchain erleichtert. Die SAP-Blockchain basiert auf der Open-Source-Plattform Hyperledger Fabric. Hyperledger führt im Gegensatz zu anderen Blockchain-Technologien keine Kryptowährung aus. Hyperledger-Blockchains basieren auf Chaincodes, die überlicherweise in GoLang geschrieben sind. Entwickler können ihre eigenen Code-Funktionen erstellen, um mit der Blockchain zu interagieren.

Wir haben unseren eigenen Chaincode mit GoLang erstellt:

Blockchain Code Screenshot

Der Code enthält drei Funktionen, die es dem Benutzer des Chaincodes erlauben, in die Ketten zu schreiben, sie zu lesen und zu durchsuchen.

Sobald der Chaincode geschrieben ist, müssen wir ihn auf dem SAP Blockchain-Service ausführen.

Blockchain Example Screenshot

Der SAP Blockchain-Service enthält einige REST-APIs, die bei der Interaktion mit dem Chaincode helfen. Die API hat zwei Funktionen: Aufrufen (Invoke) und Abfragen (Query). Invoke wird verwendet, um eine Chaincode-Funktion aufzurufen und Query, um den Status des Chaincodes abzurufen.

Um mit diesen APIs zu interagieren, haben wir die nativen REST-Funktionen in Mendix verwendet. So konnten wir einen Microflow erstellen, um einen Block unserer Kette hinzuzufügen, einen Block in der Chain zu finden und alle Blöcke für einen Auftrag zu identifizieren. Um die API nutzen zu können, müssen Sie einen API-Schlüssel erstellen, der im SAP Service Cockpit angelegt werden kann.

Microflow Screenshot

Microflow Example Screenshot

SAP S/4HANA

Treten unerwünschte Ereignisse auf, wie zum Beispiel erhöhte Temperaturen, müssen wir wissen, welche Aufträge betroffen sein werden. Eine vollständige Übersicht aller Kundenaufträge und Bestellungen ist also unerlässlich, um die Auswirkungen auf das Geschäft zu verstehen. SAP S/4HANA ist eine in der Cloud ausgeführte Echtzeit-Enterprise Resource Management Suite. Der Dienst wird mit mehreren sofort einsatzbereiten OData-Diensten geliefert, die den Empfang und die Übertragung von Daten erleichtern. Im Rahmen der SAP-Einführung hat Mendix viele SAP-Konnektoren in verschiedene SAP-Technologien wie S/4HANA, SuccessFactors, Leonardo oder Ariba eingeführt. Diese Konnektoren finden Sie im Mendix App-Store und können kostenlos heruntergeladen werden. In diesem Fall haben wir den S/4HANA-Konnektor verwendet, um Bestellungen aus unserem S/4-System hinzuzufügen und anzuzeigen.

SAP S/4HANA Example Screenshot

SAP Cloud-Plattform

Um unsere Logistik-App zu demonstrieren, mussten wir unsere Anwendung noch irgendwo hosten. Wir entschieden uns für die kürzlich releasete Mendix-Integration in die SAP Cloud-Plattform. Die SAP Cloud-Plattform ist eine Open Source Platform as a Service (PaaS), die einzigartige In-Memory-Datenbank- und Business-Appliaktions-Services bereitstellt. Die Plattform nutzt die Cloud Foundry-Technologie, um eine offene, robuste und flexible Multi-Cloud-Architektur zu bieten. Das Mendix-Produkt lässt sich nahtlos in die SAP Cloud-Plattform integrieren und übernimmt die gesamte Kommunikation und Aktualisierung über unser Cloud-Portal. Mendix übernimmt die Erstellung aller notwendigen Dienste, einschließlich Datenbankservice und Single-Sign-On-Service.

Um die SAP Cloud-Plattform zu nutzen, können Sie über die “Create App” im Mendix Buzz Portal ein SAP-fähiges Starter Template wählen. Einige der Vorlagen basieren auf dem Fiori-Design und andere auf dem Mendix Atlas Framework. Sobald Sie sich für eine Vorlage entschieden haben, werden Sie von der Plattform aufgefordert, sich mit der SAP Cloud-Plattform zu authentifizieren. Nach der Authentifizierung können Sie die Region, das Unternehmen und den Speicherplatz auswählen, für den Sie die Software bereitstellen möchten.

SAP Cloud Platform Screenshot

Nachdem Sie eine Umgebung eingerichtet haben, können Sie im Mendix Studio Pro einfach auf die Schaltfläche “Ausführen” klicken und die App wird in der SAP Cloud-Plattform ausgeführt. Die Bereitstellung einer bestehenden Anwendung auf der SAP Cloud-Plattform kann über die Cloud-Einstellungen unter den allgemeinen Einstellungen für Ihr Projekt erfolgen. Kunden haben nun die Möglichkeit, über das Mendix-Portal in die Mendix Cloud, SAP Cloud oder On Premises zu migrieren, was den Wechsel zwischen verschiedenen Cloud-Umgebungen erleichtert. Sobald das Projekt in die gewünschte Umgebung integriert ist, können Sie einfach auf “Ausführen” im Mendix Studio Pro klicken, um Ihre Anwendung bereitzustellen.

SAP Cloud Platform Example Screenshot

Ist die Anwendung über die SAP Cloud-Plattform bereitgestellt, können die Benutzer zusätzliche SAP-Services konfigurieren und anbinden. Dienste wie Blockchain, HANA, Auditprotokolle und Objektspeicher können einfach hinzu gefügt werden, um eine Anwendung zu erweitern.

Das Endprodukt

Das Endprodukt zeigt deutlich die Stärke, die in der Kombination von Mendix und SAP liegt und wie zwei führende Unternehmen in ihren Bereichen effizient zusammenarbeiten können und so Unternehmen dabei unterstützen, mutig neue Wege einzuschlagen. Wir haben die App mit beispielloser Geschwindigkeit und mit sofort einsatzbereiten Konnektoren für SAP entwickelt.

Was werden Sie entwickeln?

Download the SAP Solutions Brief