Übung 05

Ziel: In diesem Lab wendest du alle drei fortgeschrittenen Transformations-Werkzeuge an. Du wirst eine komplexe Transformation mit einer Custom Function durchführen, die Ergebnisse mit einem Dataset aggregieren und das Endergebnis als saubere CSV-Datei mit einem Text Template formatieren.

Voraussetzungen:

  • Eine funktionierende Xentral Connect Instanz.


Szenario

Du erhältst eine Liste von rohen Bestelldaten. Deine Aufgabe ist es, einen BI-Export (Business Intelligence) zu erstellen, der folgende Anforderungen erfüllt:

  • Nur Bestellungen mit dem Status COMPLETED werden berücksichtigt.

  • Für jede Bestellung wird eine line_item_summary erstellt, die die Namen aller bestellten Produkte als kommaseparierten String enthält.

  • Anschließend soll der Gesamtumsatz pro Land berechnet werden.

  • Das Endergebnis soll als CSV-Datei ausgegeben werden, sortiert nach dem Gesamtumsatz.


Teil 1: Die Rohdaten transformieren (Custom Function)

Ziel: Die rohen Bestelldaten mit einer Custom Function anreichern und für die Aggregation vorbereiten.

1

Workflow & Testdaten

  • Erstelle einen neuen Workflow: M05-Lab-BI-Export.

  • Füge einen Set-Knoten (source_orders) mit folgendem JSON-Array hinzu:

[
  {"order_id": 1, "status": "COMPLETED", "country": "DE", "total": 150.50, "items": [{"name": "Product A"}, {"name": "Product B"}]},
  {"order_id": 2, "status": "PENDING", "country": "DE", "total": 75.00, "items": [{"name": "Product C"}]},
  {"order_id": 3, "status": "COMPLETED", "country": "AT", "total": 200.00, "items": [{"name": "Product A"}, {"name": "Product D"}]},
  {"order_id": 4, "status": "COMPLETED", "country": "DE", "total": 120.00, "items": [{"name": "Product B"}]}
]
2

Daten im Data Store speichern

  • Füge einen Data Store > put-Knoten hinzu.

  • Speichere das Array unter dem Key raw_orders.

3

Custom Function erstellen

  • Füge einen Function-Knoten hinzu. Dieser Knoten wird nicht direkt mit den Daten verbunden; wir rufen ihn später aus einem anderen Knoten auf. Nenne ihn TransformOrder.

  • Gib folgenden Code ein. Diese Funktion nimmt ein einzelnes Bestellobjekt und fügt das Feld line_item_summary hinzu.

const order = $input.item.json;

// Erstelle einen String aus den Produktnamen
order.line_item_summary = order.items.map(item => item.name).join(', ');

return order;
4

Workflow zum Transformieren und Speichern

  • Erstelle einen zweiten Workflow M05-Lab-Transform-Process.

  • Lies die raw_orders aus dem Data Store (Data Store > get).

  • Loope durch das Array (Loop over Items).

  • Rufe in der Schleife den TransformOrder-Workflow als Sub-Workflow auf (Execute Workflow-Knoten) und übergib das aktuelle Bestellobjekt.

  • Speichere das Ergebnis des Sub-Workflows in einer neuen Data Store Collection namens transformed_orders (Data Store > put, mit order_id als Key).

Erwartetes Ergebnis (Teil 1)
  • Nach Ausführung des M05-Lab-Transform-Process-Workflows enthält der Data Store eine neue Collection transformed_orders.

  • Jeder Eintrag ist eine Bestellung, die jetzt das zusätzliche Feld line_item_summary enthält. Beispiel für order_id 1:

    {
      "order_id": 1,
      "status": "COMPLETED",
      "country": "DE",
      "total": 150.5,
      "items": [{"name": "Product A"}, {"name": "Product B"}],
      "line_item_summary": "Product A, Product B"
    }

Teil 2: Umsatz pro Land aggregieren (Dataset)

Ziel: Die transformierten Bestelldaten verwenden, um den Gesamtumsatz pro Land zu berechnen.

1

Dataset-Knoten hinzufügen

  • Füge im M05-Lab-BI-Export-Workflow nach dem Speichern der Rohdaten einen Dataset-Knoten hinzu.

  • Collection: transformed_orders

2

Aggregation Pipeline definieren

  • Füge die folgenden Stages als JSON-Array in den Dataset-Knoten ein:

Erwartetes Ergebnis (Teil 2)

Der Output des Dataset-Knotens ist ein Array mit den aggregierten Ergebnissen:


Teil 3: Ergebnis als CSV formatieren (Text Template)

Ziel: Das aggregierte Ergebnis in eine saubere CSV-Datei umwandeln.

1

Text Template-Knoten hinzufügen

  • Füge nach dem Dataset-Knoten einen Text Template-Knoten hinzu.

  • Verbinde ihn mit dem Ergebnis des Datasets.

2

## Twig-Template erstellen

  • Gib folgendes Template ein:

Erwartetes Ergebnis (Teil 3)

Der Output des Text Template-Knotens ist ein String im CSV-Format:


Glückwunsch! Du hast einen komplexen BI-Export-Prozess mit den drei mächtigsten Transformations-Werkzeugen in Xentral Connect implementiert.

Was this helpful?