ExcelWriter enthält gefilterte Zeilen

Hallo Community,

ich habe ein merkwürdiges Verhalten.
Die Datei, die der ExcelWriter erzeugt, beinhaltet Zeilen, die vorher schon rausgefiltert worden sind:

Filtere leere GP-Nummer:

Gefilterte Bestelldaten abrufen:

Erste Zeile der Excel:
Bildschirmfoto vom 2022-12-06 08-57-18

Warum wird diese Zeile exportiert?

Gruß David

Hallo David,

bei deinem Filter werden die Zeilen die du weiter geben möchtest als „negativeOutput“ ausgegeben.

Schau mal bitte nach, welchen Input der auf den Filter folgende Step verwendet. Standardmäßig wird „output@SpreadsheetFilter“ verwendet. Sollte das der Fall sein, wechsel ihn zu „negativeOutput@SpreadsheetFilter“:

Das könnte die Lösung deines Problems sein.

Viele Grüße
Felix

Hallo Felix,

Das ist Absicht, da ich ja nur die Zeilen ohne GP-Nummer haben will.
Im Mapper „Bestelldaten auslesen, …“ habe ich richtigerweise auch keine Ausgabe.
Allerdings landet die customer_id 6684531818763 in der Excel, obwohl im Filter eine GP-Nummer vorhanden ist.

Gruß David

Hallo David,

okay alles klar, kannst du bitte deine Filterbedingung zeigen?

Viele Grüße
Felix

Hallo Felix,

die Filter sind:

Bildschirmfoto vom 2022-12-07 18-36-53

und

Gruß David

Das einzige was bis jetzt noch nicht in Screenshots auftaucht ist, ein Screenshot der Quelle, die in deinen ExcelWriter geht.

Bist du dir ganz sicher dass dort der Mapper rein geht, von welchem du sagst, dass er das korrekte Ergebnis liefert?

Also so wie du es beschreibst sollte das ja ungefähr so sein:

  • Filter(gp_nummer leer oder „0“)
  • Mapper(output@Filter)
  • ExcelWriter(Mapper)

Hallo,

Gruß David

Ok danke.
Jetzt noch die Frage, was es mit den 2 Filtern auf sich hat? Steht das zusammen in einer Filterbedingung drin und du hast es aus Platzgründen nur extra geschickt? Ist das „UND“ oder „ODER“ verknüpft?
Oder steht das in einem Mapper vorher?

Denn: Beim 2. Filter (also das mit dem <#list>): Die Anführungszeichen sind komisch. Evtl. wird diese Filter-Bedingung überhaupt nicht richtig ausgeführt und ist immer false.
Frage: Angenommen da würde immer false rauskommen, würde das das Verhalten zusammen mit deiner vorherigen ODER-Bedingung erklären? Vielleicht fehlen ja auch irgendwo Klammern.

EDIT: Das erklärt aber natürlich noch nicht warum der Mapper korrekt ist und der ExcelWriter nicht.

Kannst du mal das FIlter-Ergebnis per CSVWriter in eine CSV schreiben und dir die z.B. per StoreDebugFile wegspeichern und anschauen? Gibt es evtl. doppelte Zeilen? Evtl. siehst du im Mapper die Zeile, die korrekt gefiltert wird, aber später kommt das ähnliche nochmal und da klappt der Filter nicht?

Das sind zwei separate Filter und sind mit UND verknüpft, wobei der Zweite wohl überflüssig ist.

Das ist das Template eines TextHTMLWriter für


(Allerdings wird euch diese Info nicht viel über den Filter sagen.)

Inhalt der Excel- und CSV-Datei, die wir gleichzeitig erstellen sind gleich (Aktuell haben beide 40 Zeilen):

Am Beispiel der ersten Zeile sieht man, dass der GP-Nummer-Filter in der Vorschau korrekt ist:

und der output weiterverwendet wird.

CSV und Excel haben auch den gleichen Input. Aber der Datensatz wird in beide Dateien geschrieben.

Dürfte der Filter ebenfalls entfernen, da der Datensatz ja eine GP-Nummer kennt.

Verstehe gerade nicht worauf du hier hinaus willst.

Gruß David

Hallo David,

vielen Dank für deine Hilfe. Kommt die gp_nummer irgendwie aus einem Datastore (per Querverweis oder SearchDatastore Step) ?
Falls ja: Kann es sein das der Wert im Datastore innerhalb des Flows oder von einem anderen Flow geleert wird ? Das würde die unterschiedlichen Ergebnisse (Vorschau / richtige Ausführung) erklären.

Viele Grüße
Torsten

Hallo Thorsten,

der Querverweis ist im Mapper vor dem ersten Filter und der negativeOutput zeigt, dass es einen Wert gibt.

Der Wert wird nur im Datastore gesetzt, nie gelöscht.

Falls es hilft, können wir in der Sprechstunde kurz zusammen drauf schauen?

Gruß David

Hallo @SWMH-david-conlabz,

wir haben dir mal per Mail geschrieben.

Viele Grüße
Lukas