Daten filtern und gruppieren
in diesem Beispiel wird beschrieben wie Daten während der Transformation gefiltert und gruppiert werden können. Zusätzlich wird noch erläutert, wie mit dem .NET Script Heater die gefilterten Datensätze/Zeilen zur Nachbearbeitung in eine separate CSV Textdatei geschrieben werden können.
Ausgangssituation
Das Beispiel verwendet auf der READ (Links) sowie auf der WRITE (Rechts) jeweils den Textfile Adapter. Folgende kleine CSV Textdatei wird dabei eingelesen.
ArtikelNr;Gruppe;Beschreibung
1;1000;Beschreibung zu Artikel 1
2;2000;Beschreibung zu Artikel 2
2;2000;Bemerkung zu Artikel 2
3;3000;Beschreibung zu Artikel 3
In dieser CSV Textdatei kommt für den Artikel 2 eine zweite Zeile vor. Diese soll vom FlowHeater auf der WRITE Seite zu einer Zeile zusammengefasst bzw. gruppiert werden. Die zweite Beschreibung soll dabei in einem weiteren Feld "Zusatz" auf der WRITE Seite landen. Als weitere Herausforderung wollen wir nur Artikelgruppen > (größer) 1000 verarbeiten.
Zu 1)
Hier wird das Feld ArtikelNr mit dem GroupBy Heater verbunden. Achtung: damit der GroupBy Heater richtig funktioniert, müssen die Datensätze/Zeilen auf der READ Seite in sortierter Reihenfolge vorhanden sein. Sollten die Datensätze nicht sortiert vorliegen, können Sie dies mit Hilfe des Sort Heaters vor der Transformation sortieren.
Zu 2)
Hier sehen wir ganz links die IF/Wenn Bedingung. Als Bedingung wurde lediglich "wenn Gruppe <= (kleiner gleich) 1000" angegeben. Sie können sich die Bedingung ansehen, indem Sie auf dem IfThenElse Heater doppelklicken. Falls die Bedingung zutrifft wandert der Wert TRUE bzw. Wahr aus dem Heater heraus und geht dann erst mal zum .NET Script Heater. Hier werden die gefilterten Datensätze dann über wenige dynamische C# .NET Skript Zeilen in die Datei %TEMP%FlowHeater.txt geschrieben. Der Heater verarbeitet als 1. Eingangsparameter den Output des IfThenElse Heater (WAHR / FALSCH) und schreibt dann einfach alle weiteren Eingangsparameter in die Datei FlowHeater.txt ins TEMP Verzeichnis. Der .NET Script Heater gibt dann zum Schluß noch den ersten Eingangsparameter 1:1 an den Filter Heater weiter. Der Heater entscheidet anhand des booleschen Wahrheitswert (TRUE bzw. WAHR) dass der Datensatz gefiltert bzw. übersprungen werden muss. Bei allen anderen Werten als TRUE bzw. WAHR geht die Verarbeitung ganz normal weiter.
Zu 3)
Hier verwenden wir den Heater AutoID mit aktivierter Gruppierungsfunktion um pro Gruppierung beginnend von 1 hochzuzählen. Dieser Wert wandert dann zu 2 If-Then-Else bzw. Wenn-Dann-Sonst Heater. Die Bedingungen sind recht einfach, "wenn Eingangsparameter = 1" bzw. "wenn Eingangsparameter = 2". Der erste If-Then-Else Heater geht zum Feld Beschreibung (Bedingung = 1) und der zweite If-Then-Else Heater geht zum Feld Zusatz (Bedingung = 2).
Quick Tutorial YouTube Video