Übung 05
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
COMPLETEDwerden berücksichtigt.Für jede Bestellung wird eine
line_item_summaryerstellt, 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.
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"}]}
]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 ihnTransformOrder.Gib folgenden Code ein. Diese Funktion nimmt ein einzelnes Bestellobjekt und fügt das Feld
line_item_summaryhinzu.
const order = $input.item.json;
// Erstelle einen String aus den Produktnamen
order.line_item_summary = order.items.map(item => item.name).join(', ');
return order;Workflow zum Transformieren und Speichern
Erstelle einen zweiten Workflow
M05-Lab-Transform-Process.Lies die
raw_ordersaus 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, mitorder_idals Key).
Teil 2: Umsatz pro Land aggregieren (Dataset)
Ziel: Die transformierten Bestelldaten verwenden, um den Gesamtumsatz pro Land zu berechnen.
Teil 3: Ergebnis als CSV formatieren (Text Template)
Ziel: Das aggregierte Ergebnis in eine saubere CSV-Datei umwandeln.
## Twig-Template erstellen
Gib folgendes Template ein:
Glückwunsch! Du hast einen komplexen BI-Export-Prozess mit den drei mächtigsten Transformations-Werkzeugen in Xentral Connect implementiert.
Was this helpful?
