Übung 04

Ziel: In diesem Lab kombinierst du die Konzepte aus diesem Modul, um einen Prototyp für einen intelligenten Synchronisations-Workflow zu bauen. Du wirst eine Liste von Produkten filtern, durch die gültigen Produkte loopen und dabei Werte mithilfe einer Assignment Table übersetzen.

Voraussetzungen:

  • Eine funktionierende Xentral Connect Instanz.


Teil 1: Die Vorbereitung (Daten und Übersetzungen)

Szenario: Du musst Produktdaten für den Versand in verschiedene Länder vorbereiten. Dabei müssen die Ländercodes des Shops (DE, AT) in die länderspezifischen Versandanweisungen des Logistikers (Versand nach Deutschland, Versand nach Österreich) übersetzt werden.

Schritte

1

Assignment Table erstellen

  • Gehe zum Data Explorer > Assignment Tables.

  • Erstelle eine neue Tabelle mit dem Namen Shipping-Instructions.

  • Füge folgende Einträge hinzu:

    • DEVersand nach Deutschland

    • ATVersand nach Österreich

    • CHZollpapiere erforderlich für Versand in die Schweiz

  • Speichere die Tabelle.

2

Testdaten anlegen

  • Erstelle einen neuen Workflow mit dem Namen M04-Lab-Smart-Sync.

  • Füge einen Set-Knoten hinzu, um eine Liste von Bestellungen zu simulieren. Nenne ihn source_orders und gib folgenden JSON-Wert ein:

source_orders (JSON)
[
  {
    "order_id": "ORD-101",
    "country_code": "DE",
    "is_shipped": false
  },
  {
    "order_id": "ORD-102",
    "country_code": "FR",
    "is_shipped": false
  },
  {
    "order_id": "ORD-103",
    "country_code": "AT",
    "is_shipped": true
  },
  {
    "order_id": "ORD-104",
    "country_code": "AT",
    "is_shipped": false
  }
]

Erwartetes Ergebnis

  • Die Assignment Table Shipping-Instructions ist angelegt.

  • Der Workflow M04-Lab-Smart-Sync ist erstellt und enthält einen Set-Knoten mit den Test-Bestellungen.


Teil 2: Der intelligente Workflow

Szenario: Verarbeite die Liste der Bestellungen. Es sollen nur Bestellungen berücksichtigt werden, die noch nicht versendet wurden (is_shipped ist false) und für die eine Versandanweisung existiert (Ländercode ist in der Assignment Table vorhanden).

Schritte

1

Durch Bestellungen loopen

  • Füge nach dem Set-Knoten einen Loop over Items-Knoten hinzu.

  • Verbinde ihn mit dem Array:

    • {{$node["source_orders"].json}}

2

Versandanweisung nachschlagen (Assignment)

  • Füge einen Assignment-Knoten vor dem If-Knoten, aber innerhalb der Schleife hinzu.

  • Table: Shipping-Instructions

  • Key: {{$node["Loop"].context["value"]["country_code"]}}

  • Wichtig: Aktiviere die Option "Continue on Fail", damit der Workflow nicht abbricht, wenn ein Ländercode (wie FR) nicht in der Tabelle gefunden wird.

3

Bedingungen prüfen (If-Knoten)

  • Füge einen If-Knoten in die Schleife.

  • Erstelle eine Bedingung mit zwei Regeln (AND-Verknüpfung):

    • Regel: Prüfe, ob die Bestellung noch nicht versendet wurde.

      • Value 1: {{$node["Loop"].context["value"]["is_shipped"]}}

      • Operation: Equal

      • Value 2 (Boolean): false

    • Regel: Prüfe, ob der Ländercode in unserer Tabelle existiert. Hierfür nutzen wir die hasOwnProperty-Methode auf die Daten der Assignment Table.

      • Value 1 (Expression): {{$item.json.hasOwnProperty($node["Loop"].context["value"]["country_code"])}}

        • Hinweis: Wähle hierfür den Assignment-Knoten aus dem vorherigen Schritt aus, du musst ihn also zuerst erstellen und dann hierher zurückkehren.

      • Operation: Equal

      • Value 2 (Boolean): true

4

Ergebnis loggen

  • Verbinde einen Log-Knoten mit dem true-Ausgang des If-Knotens.

  • Gib eine aussagekräftige Nachricht aus, die die Bestelldaten und die übersetzte Versandanweisung enthält, z.B.:

Bestellung {{$node["Loop"].context["value"]["order_id"]}} wird bearbeitet. Anweisung: {{$node["Assignment"].json["value"]}}

5

Workflow testen

  • Speichere, aktiviere und teste den Workflow.

Erwartetes Ergebnis

  • Der Workflow läuft erfolgreich durch.

  • Die Log-Ausgabe zeigt nur die Einträge für die Bestellungen ORD-101 und ORD-104 an, da nur diese beiden die Kriterien (nicht versendet & gültiger Ländercode) erfüllen.

  • Die Ausgabe für ORD-101 lautet:

    • Bestellung ORD-101 wird bearbeitet. Anweisung: Versand nach Deutschland

  • Die Ausgabe für ORD-104 lautet:

    • Bestellung ORD-104 wird bearbeitet. Anweisung: Versand nach Österreich

  • Die Bestellungen ORD-102 (unbekannter Ländercode) und ORD-103 (bereits versendet) werden vom If-Knoten herausgefiltert und erzeugen keinen Log-Eintrag.

Musterlösung (Mermaid-Diagramm)


Cleanup

  • Die erstellten Workflows und die Assignment Table können für spätere Referenz in der Instanz verbleiben.

Was this helpful?