Nachdem wir nun die Phase der Ereignisverarbeitung behandelt und alle grundlegenden Konzepte im Zusammenhang mit der Einrichtung des B1iF durchgesprochen haben um diese Ereignisse für uns ordnungsgemäß zu „überwachen“, kommen wir zum spannenden Teil unseres Projekts – dem Empfang der ausgehenden Nutzdaten (XML), die mit dem HTTPCall Atom gesendet werden, und dem Aufruf unseres WebHooks, der dann unseren Workflow auslöst.
Ich gehe davon aus, dass Sie bereits ein aktives Azure-Abonnement haben; wenn nicht, ist es höchste Zeit, dass Sie eines abschließen.
Logic App Workflow-Schritte:
Schritt 1) Unsere Logic App muss einen Auslöser haben – in unserem Fall wird dies der Connector „When a HTTP request is received“ sein:
Denken Sie daran, dass wir nur einen Dienstendpunkt abonnieren wollen, indem wir eine
Rückruf-URL.
Tiese URL wird generiert, sobald die Logic App zum ersten Mal gespeichert wird, und sie ist
einzigartig
für diesen Workflow.
Schritt 2) Wenn Sie sich erinnern, ist die HTTPCall Atom auf B1iF, um unseren Workflow (mit der oben genannten Callback-URL) Senden eines XML-Body, so dass wir die „triggerBody() „Ausdruck verwenden, um abzurufen, was unsere Auslöser zu liefern hat.
Das reicht jedoch nicht aus, da wir den eingehenden XML-Körper in eine „leichtere“ Struktur konvertieren möchten, mit der wir leicht arbeiten können – JSON (JavaScript Object Notation).
Tatsächlich unterhält B1iF seine eigenen XSL-Transformationsschemata für so ziemlich jeden Ausgabetyp, der vom Empfängersystem benötigt wird, so dass wir sicherstellen können, dass wir diese Konvertierung durchführen, noch bevor wir die Nutzlast an das ausgehende endgültige Atom weiterleiten.
Dies würde zusätzliche Schritte erfordern, um die Ausgabe so vorzubereiten, dass unser WebHook einen JSON-Body anstelle eines XML-Bodys erhält. Der Einfachheit halber habe ich mich für einen schnelleren Weg entschieden und die Konvertierung in der Logic-App selbst durchgeführt.
- Wenn Sie mehr über XSL-Transformationsschemata wissen möchten, gehen Sie zu Version 1.X Ihres B1iF, navigieren Sie zu
Hilfe ->
Dokumente
und suchen Sie nach „Schemas“. Möglicherweise schreibe ich einen weiteren Blog darüber, wie verschiedene Schematypen bei XSL-Transformationen behandelt werden.
Also, unser 2.nd Workflow-Schritt würde eine „Compose“-Aktion beinhalten, die den Body in ein JSON-Element umwandelt:
Schritt 3) WENN wir den Workflow bis zu seiner 2. Aktion ausführen würden, würde dies folgende Ausgabe ergeben:
Wir können deutlich erkennen, dass der gesuchte Wert (New Business Partner Code, erinnern Sie sich? ) im neu erstellten JSON-Objekt „versteckt“ ist, und wir müssen ihn von dort extrahieren
Schritt 4) Anschließend erstellen wir eine zweite „Compose“-Aktion und verwenden den Ausdruck „Outputs()“, um durch unser JSON zu navigieren:
Mit dieser Aktion wird der BP-Code abgerufen und sein Wert gespeichert
Dabei kann es sich um einen Kundenauftrag mit Artikeln, eine Rechnung oder einen neuen Artikel handeln, der erstellt/aktualisiert wird – das hängt ganz von Ihrem Geschäftsszenario ab.
Das Wichtigste ist, dass Sie es jetzt in der Hand haben und es je nach Bedarf einsetzen können:
- Sie können einen Genehmigungsprozess auslösen
- Sie können eine Bestellung auf der Grundlage eines Kundenauftrags erstellen
- Sie können ein Angebot für einen neu erstellten Artikel an einen Kunden senden
All dies kann durch die Verwendung des SAP Business One Service Layers innerhalb der Logic App erreicht werden.
Die letzte Aktion wäre in meinem Fall, eine E-Mail an mich selbst zu senden, indem ich die Funktion „
Eine E-Mail senden (V2)“
eine E-Mail an mich selbst zu senden und die Ausgaben der Aktion „Verfassen“ als E-Mail-Text zu verwenden:
Unser endgültiger Ablauf wird wie folgt aussehen:
Und dann kommt die E-Mail selbst:
Auch hier müssen wir unsere Logic App speichern, damit unsere Callback-URL generiert wird:
Sobald wir diese URL kopiert haben, können wir zu B1iF zurückkehren und die Sache abschließen. Wir würden die URL in die folgenden Felder aufteilen:
- destProtokoll- https
- destHost- unser Azure-Hostname
- Zielort – 443
- destPath- die verbleibende URL-Zeichenfolge
- Methode – Bei diesem Szenario handelt es sich in der Regel um „POST“.
Schlussbemerkungen:
Obwohl unser Szenario nicht allzu komplex war, konnten wir einen Blick darauf werfen, wie integrierte SAP Business One-Ereignisse abgerufen und dann genutzt werden können, um andere Geschäftsabläufe auszulösen, indem sowohl das Integration Framework als auch serverlose Technologien wie Azure Logic Apps Workflows verwendet werden.
Zu den unmittelbaren Vorteilen, die wir daraus ziehen, gehören:
- Reduzierte DevOps
- Schnellere Markteinführung (= ein zufriedenerer Kunde, der uns gleichzeitig hilft, unsere eigenen internen Ressourcen besser zu verwalten)
- Reduzierte Kosten
Azure Logic Apps gibt es bei uns schon seit geraumer Zeit, aber mit der aktuellen Version gibt es so gut wie nichts, was bei der Erstellung einer Integration in unser ERP und der Verwaltung unserer APIs nicht erreicht werden könnte.
Die Tatsache, dass wir den relativ langen (mühsamen und auch ziemlich teuren) Prozess der Anmeldung bei der SAP BTP-Plattform und der Einrichtung des Event Mesh/Grid für die Zusammenarbeit mit dieser Plattform überspringen können, eröffnet uns ein riesiges Fenster an Möglichkeiten, um Geschäftsabläufe zu starten, die nur auf realen Ereignissen aus unserem eigenen ERP basieren, und zwar in Echtzeit und nicht wiederholt Abfrage und Überprüfung unsere Endpunkte, um zu sehen, ob wir Daten haben, mit denen wir arbeiten können.
Hinterlasse einen Kommentar
Du musst angemeldet sein, um einen Kommentar schreiben zu können.