Bedingung "eins von drei Spreeadsheets/CSVs ist länger als X" ohne Condition Group?

Hi, ich generiere in einem Flow drei CSVs, und würde mir gern eine Mail senden, wenn eine der drei CSVs länger als 50 Zeilen ist.

Mit einer Condition Group ließe sich das gut abbilden, aber: ich hab schon eine im Flow, und es gibt nur eine pro Flow :see_no_evil_monkey:

Es gab mal Überlegungen dieses Limt abzuschaffen, aber das scheint im Sande verlaufen zu sein:

So sieht meine Gruppe mit der CSV-Generierung aus:

Da werden Fehler abgefangen und gemeldet. Ein paar Fehler kanns immer mal wieder geben.

Aber kürzlich hatte ich einen (sehr mysteriösen) Fall, dass in einem Durchlauf kurz nach Mitternacht der „no x1“-Zweig mir 1000 Fehler ausgespuckt hat, wo keine 1000 Fehler waren. Und dann Dinge tat die es nicht hätte tun sollen (1000 Artikel sind offline gegangen) :weary_face:

Ich wollte mir jetzt egtl keine Mühe machen raus zu finden ob das Problem bei euch oder Plenty lag (eher bei euch, es war ein Querverweis gescheitert der egtl nicht scheitern sollte), und einfach nur das Problem gemeldet bekommen, weil mir das zielführender scheint :upside_down_face:

Aber mir fehlt wirklich die Kreativität wie ich das ohne Condition Group hin bekomme.

Bedingung noch mal runter gebrochen: einer der drei CSV-Writer generiert eine CSV mit über 50 Zeilen. Dann triggere einen EmailSend-Step, der mich darüber informiert.

Danke für jeden Input,
Grüße Daniel

Hallo Daniel,

du solltest jede Nachricht einzeln filtern können mit dem FileFilter-Schritt und der Bedingung „geschriebene Zeilen > 50“. Anschließend die drei FileFilter-Ergebnisse mit ToList zusammenführen und das in einen MailSend-Schritt füttern, der nur eine Mail verschickt, wenn Anhänge vorhanden sind.
Sofern ich deine Anforderungen richtig verstanden habe, müsste das so funktionieren.

Gruß
Gustav

1 „Gefällt mir“

Ah, das scheint der fehlende Part gewesen zu sein :light_bulb:

Den Step hab ich noch nie benutzt gehabt. Klingt gut, das teste ich Montag.

Vielen Dank für deinen wie immer hochwertigen Input :folded_hands:

Hm, glaube doch nicht :confused:

Der FileFilter lässt mich nicht das outputNumWrittenRows-Objekt einbinden (das ich dann auf Länge prüfen könnte), nur das output-Objekt mit der Datei selbst. Und bietet dann auch nur Filterbedingungen auf Dateiname und Größe an:

Ich könnte mit der Dateigröße schon irgendwie in die richtige Richtung kommen, aber leider ist in den Inhalten zu viel Varianz um wirklich genau zu sein. Stand jetzt sollten etwa 9kb meine 50 Zeilen ergeben, aber eine der Spalten hat wechselnden Inhalt, kann auch sein morgen sind 9kb mehr oder weniger Zeilen.

Vllt überseh ich aber auch nur irgend eine Variable die nicht dokumentiert bzw in der UI exponiert ist, mit der ich die rows prüfen kann?

Was das UI anbietet und was möglich sind, sind ja zwei Paar Schuhe :wink: . Aus dem CSVWriter-Schritt kommt als Variable auch die Anzahl an geschriebenen Zeilen raus.

Du kannst also auch sowas als Filterbedingung nutzen:

outputNumWrittenRows@SpreadsheetCSVWriter_8 > 1

Gruß
Gustav

1 „Gefällt mir“

Ah. Dem Step zwar das File-Objekt geben, aber im Filter dann nicht darauf, sondern auf die Reihen im Step selbst filtern. Na klar :light_bulb:

Hab dem ganzen nicht getraut, weil der FileFilter die Größe z.B. als sizeInBytes verwendet, während sie im CSVWriter ja outputFilesize heißt. Und Freemarker immer still scheitert wenn man ne Variable prüft die gar nicht existiert :see_no_evil_monkey: Aber ist ja dann egal, wenn ich direkt auf den Step zugreife.

Ich kannte die „Output untersuchen“-Ansicht mit dem Variblen-Output auch gar nicht. Auf den kleinen Pfeil unterm Step klicken, the more you know :star_struck:

Vielen Dank :heart_hands: