Jan Hagemeister stellte einen ungewöhnlichen und technisch sehr ausgefeilten Ansatz für die Erstellung von Verkaufsauswertungen vor. Ziel war es, aus hunderttausenden von Datensätzen einer Verkaufsplattform möglichst performant eine zeitliche Aggregierung nach Verkaufskanal und Artikelnummern umzusetzen. Der übliche Weg über Statistikfelder und indizierte Spalten war bei der Menge der zu verarbeitenden Datensätze zu langsam. Als Ergebnis sollte u.a. ein Umsatz-Wochendurchschnitt für jede Artikelnummer täglich neu berechnet werden.

Ausgangspunkt für den gewählten Ansatz war die Tatsache, dass der Datenimport von Textdateien laut Aussage von Jan der schnellste Weg ist, um neue Datensätze anzulegen. Zudem sollten die Datenspalten aus der Quelltabelle so gefiltert werden, dass nur die benötigten Spalten für Datum, Umsatz, Artikelnummer und Verkaufskanal verarbeitet werden müssen. Jan zeigte eine einfach aufgebaute Schleife, welche alle Datensätze aus der Quelltabelle in einer Sortierung nach Datum durchläuft und die Summen in 2 Variablen aggregiert. Per Formelfeld wird das Datum zuvor in einen nummerischen Wochenwert umgerechnet. Die benötigten Spalten werden dann mit den neuen FileMaker Dateibefehlen zeilenweise an eine Textdatei im Temp-Verzeichnis angehängt. Anschließend wird diese Textdatei per CSV-Import zurück in die Auswertungstabelle importiert. Diese enthält nun bereits die wochenweise aggregierten Summen.

Um den Median-Wert pro Artikel aus der Summenliste zu ermitteln, kommt eine trickreiche CustomFunction zum Einsatz, welche nun die Ergebniswerte mit dem Befehl “HoleWert” direkt aus der Liste heraus liest.

Dadurch wird eine extrem hohe Performance sowohl beim Erzeugen der Daten, als auch beim Berechnen des Median-Werts erreicht. Die Verwendung von nummerischen Werten für alle Datumsangaben – anstatt Datums- oder Zeitstempel-Feldern – sollen laut Aussage von Jan ebenfalls die Selektion und Sortierung nochmals beschleunigen.

Das Ergebnis beeindruckte: Ein kompletter Durchlauf der Auswertung über mehr als 450.000 Datensätze war in knapp 2 Minuten fertig. Der klassische Weg über Auswertungsfelder hätte laut Aussage von Jan mehr als 10 Mal so lange gebraucht.