Error im Mapper: cannot be cast to java

Hallo Zusammen,

ich habe einen Flow bei dem ich eine große Menge Aufträge aus Plenty in mehreren PlentySearchOrders abziehe und in eine Datei vereinen möchte. Die Aufträge werden alle gezogen, die einzelnen Mapper packe ich per ToList und CSVReader in einen gemeinsamen Mapper, dabei bekomme ich aber folgenden Fehler:

com.synesty.utils.csvconverter.impl.TransformySpreadsheetConverterImpl$1 cannot be cast to java.io.File (Root Causes: ClassCastException: com.synesty.utils.csvconverter.impl.TransformySpreadsheetConverterImpl$1 cannot be cast to java.io.File)

Könnt ihr mir da weiterhelfen woran es liegen könnte? Der Flow läuft insgesamt knapp ne Stunde, da will ich nicht unnötig blind rumprobieren :smiley:

Was ich noch gesehen/getestet habe: Wenn ich die Limits für die PlentySearchOrders überall auf 25 setze tritt der Fehler trotzdem auf. Außerdem habe ich einmal das ToList into CSVReader durch eine Reihe SpreadsheetAppend ersetzt. In dem Fall tritt der Fehler nicht auf.

Ist das eine Frage der Konfiguration, oder gibt es allgemein ein Problem mit der Stepfolge Mapper → ToList → CSVReader? Wäre deutlich eleganter als einfach die Appends aneinanderzureihen.

Vielen Dank schonmal.

VG,
Florian

Das klingt falsch. Evtl. ein Denkfehler.

Der CSVReader liest CSV-Dateien. Du gibts dem CSVReader aber scheinbar das Ergebnis von ToList und damit eine Liste von Spreadsheets (also keine Dateien).

Es klingt als willst du aus mehreren Spreadsheets (Mapper) ein einziges großes Spreadsheet machen.
Das geht z.B. mit SpreadsheetAppend

Edit: Um wieder eine CSV aus dem / den Spreadsheet(s) zu machen, kannst du den CSVWriter nehmen. Dieser kann auch mit einer Spreadsheet-Liste umgehen (das wäre, was du mit ToList gemacht hast). D.h. in deinem jetzigen Ansatz kannst du auch deinen ToList in einen CSVWriter geben und (statt CSVReader)

1 Like

Ah, das dürfte mein Denkfehler gewesen sein. CSVWriter macht mehr Sinn, das stimmt.

Dankeschön :slight_smile:

1 Like