Aufträge anhand einer CSV Liste zählen

Hallo,
ich möchte gern wissen ob man irgendwie Aufträge zählen kann indem man eine CSV Liste eingibt.

Ich habe einen Flow erstellt und mit CSV Reader Step eine CSV Liste mit SKUs hochgeladen. Dann hab ich im Mapper Step Produktname hinzugefügt. Ich habe zwei Variablen angelegt für den Zeitraum für den Aufträge berücksichtigt werden sollen. Wir haben zwei Datastores „Auftragsdaten“ und „Auftragspositionen“. In Erstem steht das Auftragsdatum was für den Zeitraum wichtig ist und im Zweiten findet man die Artikel zu den Aufträgen mit SKU des Artikels. Wie kann ich jetzt zählen lassen wieviel in dem vorgebenen Zeitraum für jede SKU in der CSV Aufträge existieren?

Hallo @keenberk,

um zu ermitteln, ob deine Aufträge zwischen den beiden Daten liegt, kannst du die Funktion [isDateBetween](https://apps.synesty.com/transformy?action=showTemplateFunctionDocumentation&target=functions#isDateBetween) nutzen. Dies gibt ein true oder false aus. Danach kannst mit einem Filter-Step diese filtern.

Um dann von deinen Auftragsköpfen auf die Auftragspositionen zu kommen kannst du folgende Funktion im Wert-Feld nutzen:

<#if (row.children()?? && row.children()?size > 0)>
<#list row.children() as c>
${c.get('SKU')!}<#sep>,
</#list>

Nun ist die Frage, wie viele SKUs enthält deine CSV? Davon würde ich nun den nächsten Schritt abhängig machen. Ist es eine überschaubare Anzahl, könntest du vor dem ersten Schritt noch aus deiner CSV ein Mappingset erstellen, das kannst du mit dem Step AddUpdateMappingset bewerkstelligen, das zum Beispiel so aufgebaut ist[SKU]=true.
Hast du das gemacht, kannst du dieses Mappingset in der Spalte verwenden, in der du die SKUs aus den Auftragspositionen geholt hast und den „Mapping Modus“ „Suchen & Ersetzen“ verwendest.
In einer weiteren Hilfsspalte checkst du dann ob in der Spalte mit dem Mappingset ein „true“ enthalten ist. Das prüfst du mit $[‚AuftragspositionSKU‘]?contains(„true“)c}

Viele Grüße
Lukas

Hallo Lukas,
danke schonmal. Das isDateBetween als Filter vor dem Mapper nutzen? Und dann die Funktion im Mapper selbst?
Aktuell sind 1236 SKU in der CSV.

Hallo @keenberk,

das ist ganz dir überlassen. Wenn du es im Filter machen möchtest, musst du es noch mit "true" vergleichen. Also ungefähr so:

isDateBetween("2016-02-04", "2016-02-03", "2016-02-05")?c == "true"

Viele Grüße
Lukas

1 „Gefällt mir“