Dynamischer Daten Import / Export

datenbank

weil Einfach - produktiver ist
Mit der Freeware Version können bis zu 10.000 Datensätze verarbeitet werden!

Daten gruppieren und Werte über die Gruppierung summieren

In diesem Beispiel wird beschrieben wie Daten während der Transformation gefiltert, gruppiert und über die Gruppierung Werte summiert werden können.

Ausgangssituation

Gegeben ist folgendes kleines Text Flatfile. (Es muss nicht immer CSV sein!) Hier sehen wir, dass die Textdatei teilweise unstrukturierte Daten/Zeilen enthält. Diese Zeilen werden wir über den Filter Heater herausfiltern.

Beispieldaten

 

Daten gruppieren und summieren
Daten gruppieren und summieren

Als kleine Herausforderung ist das Datum in einem etwas seltsamen Format yyyyMMdd vorhanden. Dann ist, falls die Menge 1 ist, kein Wert im Flatfile angegeben. Dieser Wert wird wir über die DefaultValue Eigenschaft im TextFile Adapter gesetzt. Außerdem wurde der Artikelpreis in Cent angegeben, hier müssen wir den Wert erst durch 100 teilen um ihn danach über die Gruppierung summieren zu können.

zu 1 die Gruppierung)

Das Feld Auftragsnummer wird als erstes zum GroupBy Heater gereicht. Der GroupBy Heater entscheidet anhand gleicher aufeinander folgender Eingangswerte ob der Datensatz zusammengefasst bzw. gruppiert werden muss. Hinweis: hierzu müssen die Daten in sortierter Reihenfolge vorliegen! Unterstützt die READ Datenquelle keine Sortierung, wie z.B. bei Textdateien, können Sie die Daten vor der Transformation mit Hilfe des Sort Heaters sortieren.

zu 2 die Filterbedingung)

Hier leiten wir das erste Feld Auftragsnummer erst mal zum SubString (Teilzeichenfolge) Heater. Der Heater extrahiert das erste Zeichen und gibt den Output an den If-Then-Else bzw. Wenn-Dann-Sonst Heater weiter. Hier lautet die Bedingung Wenn der Inhalt "A" oder "-" ist dann soll der Filter Heater den Datensatz ignorieren. Hinweis: Wird dem If-Then-Else Heater nur ein Eingangsparameter übergeben, wird der Boolesche Wahrheitswert der Bedingung ausgegeben. Diesen Wert wertet der Filter Heater aus um zu entscheiden ob der Datensatz gefiltert (JA bzw. TRUE) werden muss.

zu 3 das Datum transformieren)

Das Datum wird über 3 SubString (Teilzeichenfolge) sowie 2 X-Value Heater gebildet. Hierzu wird von oben nach unten der Tag, das Monat sowie das Jahr extrahiert. Der String Append Heater fügt diese einzelnen extrahierten Werte plus 2x den Punkt über den X-Value Heater, anhand der definierten Reihenfolge zu einem normalen Datum wieder zusammen. Die Eingangsreihenfolge können Sie sich mit einem Mausklick auf den Heater anzeigen lassen bzw. hierrüber auch verändern. Hinweis: Dieses Vorgehen soll die Flexibilität des FlowHeater verdeutlichen. Wesentlich einfacher können Sie das Datum über die richtigen (Datum) Formateinstellungen der Adaper READ/WRITE steuern.

  z.B. für
      READ = yyyyMMdd
      WRITE = dd.MM.yyyy

zu 4 die Summierung)

Kommen wir zum eigentlichen Ziel dieser Definition. Die einzelnen Artikelpreise müssen erst durch 100 geteilt werden damit wir die Cent Angaben in Euro mit 2 Nachkommastellen umrechnen. Der Wert 100 wird dabei statisch vom X-Value Heater herangezogen. Danach wird dieser Wert mit der Menge multipliziert, ist keine Menge angegeben verwendet der FlowHeater den im Textfile Adapter zu diesem Feld hinterlegten Default Wert. Zum Schluss muss der so errechnete Wert noch über die Gruppierungsfunktion des Addtions Heater pro Auftragsnummer aufsummiert werden!