Neues Thema starten
Beantwortet

Der Step "SpreadsheetColumnCombiner" ergibt nicht das kartesische Produkt beider Spreadsheet.

Guten Tag Support,


ich versuche Momentan OHNE die Verwendung von Datastores, Auftragskopfdaten in die entsprechenden Positionen zu laden. Dafür soll die Inputdatei, welche sowohl Aufträge als auch Positionen enthält, durch einen Filter aufgeteilt werden.

In meiner Testdatei sind 2 Aufträge mit insgesamt 8 Positionen enthalten. 

Nimmt man nun das kartesische Produkt der beiden, müsste eigentlich eine Tabelle mit 16 Einträgen entstehen. Ein weiterer Filter entfernt danach alle nicht korrekten Einträge. 

Jedoch entsteht unter Anwendung des Step "SpreadsheetColumnCombiner" eine Tabelle mit nur 3 Einträgen. Laut Beschreibung, des Step sollte dieser hier aber das kartesische Produkt bilden.

Können Sie mir da bitte aushelfen? 


Viele Grüße

Stefan Helme


Beste Antwort

Hallo Herr Helme, 


vielen Dank für die ausführlichen Screenshots. Wir konnten den Fehler jetzt reproduzieren und suchen nach der genauen Ursache für das Verhalten. 


Könnten sie es solange bitte nochmal mit CacheMode  auf "yes" im SpreadsheetMapper (Step 2)  und  CacheMode auf "Yes - both, positive & negative" im SpreadsheetFilter (Step 4) den versuchen. 


Viele Grüße

Torsten Felsch 



Hallo Herr Helme, 


wir melden uns nochmal, sobald wir näheres zu dem Bug gefunden haben. 


Zu ihrer Frage: 

Alternativ war hier, die Überlegung über den SpreadSheetSplitter jeden Auftrag in ein eigenes Spreadsheet zu laden und dann per "firstRow()" an die Informationen aus der ersten Zeile, dem Auftragskopf, zu kommen. Jedoch kann ich keinen Step finden mit dem ich die entstehenden Spreadsheets bearbeiten kann. Diese haben ja immerhin alle das selbe Template, eine "Massenbearbeitung" sollte also möglich sein. 


Das ist aktuell noch nicht möglich. Wir halten das aber für eine sinnvolle Erweiterung und prüfen inwieweit das für uns umsetzbar ist. 


Viele Grüße

Torsten Felsch


1 Person gefällt dies

Hallo Support,


vielen Dank für die Antwort.

Unter Verwendung der Cashes wird das kartesische Produkt korrekt gebildet.

Die Frage ist nun ob sich durch die Verwendung des Cashes nicht weitere Probleme/Fehler bilden können, da die Option "Experimental" ist. Ich werde so zunächst weiter arbeiten können. 

Bitte melden Sie sich nochmal sobald die Fehlerquelle identifiziert/behoben ist, so dass entsprechende Flows wieder umgestellt werden können. 


Außerdem fände ich es sehr nett wenn Sie mir noch den 2. Post in diesem Thread beantworten können. Ich vermute mal, dass das Bilden von kartesischen Produkten weit aus Rechen aufwändiger ist, als das aufsplitten von Spreadsheets.


Viele Grüße 

Stefan Helme

Antwort

Hallo Herr Helme, 


vielen Dank für die ausführlichen Screenshots. Wir konnten den Fehler jetzt reproduzieren und suchen nach der genauen Ursache für das Verhalten. 


Könnten sie es solange bitte nochmal mit CacheMode  auf "yes" im SpreadsheetMapper (Step 2)  und  CacheMode auf "Yes - both, positive & negative" im SpreadsheetFilter (Step 4) den versuchen. 


Viele Grüße

Torsten Felsch 



1 Person gefällt dies

Vielen Dank für die Antwort,


Hier sind die ersten 4 Spalten der Daten die ich bekomme.

image


Hier ist das Ergebnis des Filters, das ich benutze im die Datei aufzuteilen:

image

 

Hier die jeweilig gesetzten Inputs des SpreadsheetColumnCombiners: 

image


Und hier das resultierende Ergebnis: 

image


Zu guter letzt nochmal den Relevanten Teil des Flows: 

image



Viele Grüße,


Stefan Helme

Hallo Herr Helme, 


sie haben Recht. Für ein input -Spreadsheet mit 2 Zeilen und eins mit 8 Zeilen sollten sie als Ergebnis ein Spreadsheet mit 16 Zeilen erhalten. Wir haben das mit Testdaten nachgestellt und haben auch ein korrektes Ergebnis erhalten.


Können sie bitte nochmal die Inputs des SpreadsheetColumnCombiner überprüfen bzw. uns sagen was sie als Inputs (welcher Step) im SpreadsheetColumnCombiner Step verwenden ? 


Spreadsheet 1:



Spreadsheet 2:


Ergebnis des SpreadsheetColumnCombiner:




Vielen Dank! 

Torsten Felsch






  

Alternativ war hier, die Überlegung über den SpreadSheetSplitter jeden Auftrag in ein eigenes Spreadsheet zu laden und dann per "firstRow()" an die Informationen aus der ersten Zeile, dem Auftragskopf, zu kommen. Jedoch kann ich keinen Step finden mit dem ich die entstehenden Spreadsheets bearbeiten kann. Diese haben ja immerhin alle das selbe Template, eine "Massenbearbeitung" sollte also möglich sein. 


Grüße 

Stefan Helme


Anmelden um einen Kommentar zu veröffentlichen