Webservices bedürfen einiger Entwicklungszeit und sind oftmals teure Investitionen. Doch was für Möglichkeiten gibt es, wenn ein Webservice erstellt werden soll und dieser auch noch kostengünstig und in schneller Zeit realisiert werden sollen?

Da kommt Power Automate zum Einsatz. Mit Power Automate steht ein mächtiges Tool zur Verfügung, mit dem, in vergleichsweise kurzer Zeit, eine API erstellt werden kann. In Kombination mit SharePoint als Datenspeicher, entstehen nicht einmal zusätzliche Lizenzgebühren, da beide in allen Office 365 Abos bereits integriert sind (bis 750 Flow Runs).

Anhand einer realen Kundenanforderung möchte ich Ihnen zeigen, wie diese Lösung mit Power Automate und SharePoint Online in Office 365 einfach umgesetz werden kann.

Customer Case

Ausgangslage

Ein grösseres Handelsunternehmen für Schreinereibedarf hat uns folgende Aufgabe gestellt:

Kunden des Handelsunternehmens sollen in Zukunft mit sogenannten «Smart Labels» ausgestattet werden. «Smart Labels» sind kleine Geräte welche zum Beispiel in einem Lagergestell angebracht werden und mit denen der zuständige Lagerist, ganz bequem, mit einem einzigen Knopfdruck auf dieses «Smart Label», eine vordefinierte Menge eines Lagerartikels, direkt an sein ERP übermitteln kann. Das ERP führt dann die Bestellung beim Händler aus.

Wird das «Smart Label» gedrückt, dann soll diese Bestellung in einer sogenannten Watchlist abgespeichert werden. In regelmässigen Abständen prüft das ERP des Kunden dann diese Liste nach neuen Eingängen und legt eine Bestellung auf, respektive, wenn nötig, wird eine bestehende offene Bestellung aktualisiert.

Use-Case

Um diese Anforderungen abzudecken, haben wir eine Power Automate Lösung mit SharePoint Backend verwendet. Sobald der Knopf auf dem Label gedrückt wird, sendet das Label einen Call an den Flow, worauf dieser, bei erfolgreicher Authentifizierung, die Daten in die Watchlist fügt. Ebenso sendet das Label in regelmässigen Abständen einen Status-Request an den Flow, welcher die angefragten Informationen in der Watchlist heraussucht und diese als Response zurückgibt. Somit sieht der Kunde auf dem kleinen Screen des Labels jederzeit, was der Status der Bestellung ist.

Flow API ERP

Gleichzeitig verarbeitet ein weiterer Workflow die Anfragen (requests) des ERP-Systems. Das ERP fragt den Flow-Webservice nach Einträgen in der Watchlist ab. Dabei wird ein Session-Key mitgesendet, den der Flow abgreift und sich damit bei einem Server authentifiziert. Ist der Key valid, erhält der Flow die Identifikation des Kunden zurück. Darauf basierend werden die georderten Produkte in Auftrag gegeben. Sobald die Bestellung rausgeht, sendet das ERP einen neuen Request an den Webservice, worauf dieser den Status der betroffenen Positionen aktualisiert.

Weitere Informationen

Beim oben beschriebenen Case werden Requests mit Daten im XML- und andere mit JSON-Format gestellt. Standardmässig ist Flow darauf ausgelegt, mit JSON-Daten zu arbeiten. Doch mit den nötigen Kniffen, lassen sich auch XML-Daten verarbeiten und zurückgeben.

Das Ganze klingt ja hervorragend, gibt es keine Nachteile?

Diese gibt es. Bei einem in JAVA, C#, Go (und anderen Sprachen) programmiertem Webservice, benötigen diese Request-Response Prozesse meist nur Millisekunden. Bei einem Flow, der in einer SharePoint-Liste Daten zusammenträgt, kann das, je nach Menge der Einträge, schon mal ein paar Sekunden dauern. (Interessant wäre hier ein Test betreffend Ausführungszeit mit einem Flow und einer SQL-Datenbank, dies müsste ich jedoch noch durchführen.)

Fazit

Wenn die Ausführungszeit keine Rolle spielt, respektive ein bisschen höher sein darf und handelt es sich um eine relativ kleine Datenmenge, kann mit Flow tatsächlich in kurzer Zeit ein zuverlässiger Webservice erstellt werden. Dies ohne Unsummen zu investieren.