Error SpreadsheetSplitter: Maximal number (1000) of spreadsheets reached

Hallo Team,
Ich habe einen Splitter, der aus dem Mepper mehr als 1000 rows bekommt.

Fehlermeldung:

Error SpreadsheetSplitter: Maximal number (1000) of spreadsheets reached. Please increase maxNumberRows per spreadsheet. (Root Causes: RuntimeException: Error SpreadsheetSplitter: Maximal number (1000) of spreadsheets reached. Please increase maxNumberRows per spreadsheet. RuntimeException: RuntimeException: Error SpreadsheetSplitter: Maximal number (1000) of spreadsheets reached. Please increase maxNumberRows per spreadsheet.)

Leider finde ich nirgendwo die „maxNumberRows“.

Ist das interne Einstellung, oder kann ich das irgendwo setzen?

Hallo @remi77,

versuch mal, den Splitter-Step neu anzulegen. Bei mir gibt es die Variable „numberRowsPerSpreadsheet“. Vermute mal, die wird es sein.

image

Gruß
Gustav

Hallo @ gustavfriedeheim,

das ist die Anzahl der Zeilen die in jedem neuen Spreadsheet gesetzt werden.
Bei mir steht aktuell 1, weil ich pro Zeile eine Spreadsheet und dann Datei exportiere/erzeuge.
Das ganze funktioniert super, sobald Splitter weniger/gleich 1000 Zeilen bekommt.
Ab 1001 kommt die Fehlermeldung

Hallo @remi77,

ok, jetzt habe ich auch die Fehlermeldung oben verstanden. Das Problem sind nicht die mehr als 1000 Datenzeilen an sich, sondern eher dass jede Datenzeile in einem seperaten Spreadsheet landen soll. Das ist dann wohl irgendeinen Form von internen Limit seitens Synesty, dass die SpreadsheetList auf 1000 Einträge beschränkt.

Jetzt frage ich mich aber, was du mit den mehr als 1000 Spreadsheets vor hast. Ich vermute mal, du hast irgendeine Form von Schleife, in der die Spreadsheets verarbeitet werden?
Kannst du in der Schleife nicht einfach über die Zeilen in den Eingangsdaten interieren, statt über die gesplitteten Spreadsheets?

@gustavfriedeheim

Ich hole via rest api 100 Produktdaten pro call. Da nutze ich die ‚nextUrl‘. Die Daten landen dann alle in einem Spreadsheet, und werden in vielen Mapper angereicht. Dann im Splitter wird ein Spreadsheet für jede Zeile erzeugt. Die maximale Anzahl von Spreadsheets (1000) wird erreicht und ein Fehler wird geworfen.
So was wie Schleife, ist meines Wissens, im Synesty nicht möglich (leider)

Hallo @remi77,

eine übliche Schleife à la „Führ Schritt 3,4 und 5 für jedes Spreadsheet in Liste X aus“ gibt es nicht, korrekt. Aber in manchen Steps gibt es ja schon die Möglichkeit, irgendeine Aktion pro Zeile zu wiederholen. Auf die Schnelle fällt mir da der SpreadsheetURLDownloader oder TextHTMLWriterMultiOutput ein. Damit kannst du ja pro Zeile im Spreadsheet einen URL aufrufen oder aber eine TextHTMLOutput erstellen.

Wie möchtest du denn die 1000 Spreadsheets weiterverarbeiten?

Hi @gustavfriedeheim

ich habe inzwischen das Split entfernt, und die Dateien in einer Schleife erzeugt.

TextHTMLWriterMultiOutput

<#list spreadsheet@SpreadsheetMapper_71.getRows() as row> 
  
<#assign filecontent>
${row.get("1")}
${row.get("2")}
...
</#assign>  
   <#assign filename = row.get("1") + ".txt" />
   ${output(filecontent, filename, "UTF-8")}	
</#list>

Getestet bei 65000 Rows/Files.

Danke für die Ideen.

Hallo @remi77,

genau so was hatte ich mir vorgestellt.

Gut, dass es klappt. Ich hatte gewisse Sorgen, dass du dort auch an irgendein Dateilimit stößt, aber da gibt es wohl keins.