Iteration über Spreadsheets und Erzeugen einer Filelist per TextHTMLWriterMultiOutput

Hi Team,

wir arbeiten gerade daran, einen Quell-BMEcat abzurufen, aufzubereiten und das Ergebnis als .csv in die Cloud hochzuladen.

Wir nutzen 6 verschiedene Output-Types des BMECatReaders. Diese Outputs werden anschließend per CSVWriter in .csv Files umgewandelt. Die Idee ist nun, anstatt hinter jedem CSVWriter einen FileUpload-Step zu packen, per TextHTMLWriterMultiOutput-Step über die Spreadsheets der BMECatReader-Steps zu iterieren, .csv Files und schlussendlich einen Output vom Typ Filelist zu erzeugen um somit alle Files mit ner einem Uploader hochzuladen.

Ich bin absolut nicht fit im Erzeugen von Freemarker-Skript, welches über Outputs iterieren soll. Könnt Ihr helfen?

Danke und Gruß
Marc

Hallo Marc,

vielleicht brauchst du den TextHTMLWriterMultiOutput Step gar nicht und kannst den
ToList Step verwenden, um die einzelnen Outputs der CSVWriter Steps in eine filelist zu packen und dann mit einem FTPUpload Step hochzuladen.

Falls du doch den TextHTMLWriterMultiOutput verwenden willst/musst:

Das template sollte ungefähr so aussehen. Die outputkeys (spreadsheet@SearchMasterDatastore_60, ..._61) müsstest du noch auf die outputs der BMECat Steps anpassen.

<#assign file1Content>
${spreadsheet@SearchMasterDatastore_60.header.cols?join(";")}${"\n"}
<#list spreadsheet@SearchMasterDatastore_60.getRows() as row>
${row.cols?join(";")}${"\n"}
</#list>
</#assign>

<#assign file2Content>
  ${spreadsheet@SearchMasterDatastore_61.header.cols?join(";")}${"\n"}
  <#list spreadsheet@SearchMasterDatastore_61.getRows() as row>
    ${row.cols?join(";")}${"\n"}
  </#list>
</#assign>

<#-- weitere CSVs erzeugen -->

${output(file1Content, "myfile1.csv", "UTF-8")}
${output(file2Content, "myfile2.csv", "UTF-8")}

VG Torsten

1 „Gefällt mir“

Das war bereits des Rätsels Lösung, danke dir!