Auf n Inhalte von Filelist aus FTPDownload per TextHTMLWriter zugreifen

Hallo Team,


folgende Ausgangssituation: Auf einem FTP wird die Menge n an .csv Dateien abgelegt. Der Spaltenaufbau ist identisch. Da ich nur weiß, wie die Dateien benannt sind, jedoch nicht wie viele Dateien abgelegt werden, kann ich nicht mit dem FileFromFilelist-Step arbeiten.


Ich versuche mich daher nun am TextHTMLWriter und habe der Einfachheit halber erstmal mit nur einem Spreadsheet als Quelle angefangen. Mit dem u.g. Code konnte ich einen String erzeugen und per StringToFile diesen weiter verarbeiten.

Position,Bestelldatum,Bestellnummer,Artikelnummer_Haendler,Artikelanzahl,Artikel,Rechnungsbetrag,Vermittlungsgebuehr,Verkaufsgebuehr,Auszahlungsbetrag
<#list spreadsheet@SpreadsheetMapper_10.getRows() as row>
${row.get("Position")},${row.get("Bestelldatum")},${row.get("Bestellnummer")},${row.get("Artikelnummer_Haendler")},${row.get("Artikelanzahl")},${row.get("Artikel")},${row.get("Rechnungsbetrag")},${row.get("Vermittlungsgebuehr")},${row.get("Verkaufsgebuehr")},${row.get("Auszahlungsbetrag")}
</#list>

Ich weiß jedoch nicht, wie ich auf den Inhalt der Dateien aus dem Filelist-Output vom FTPDownload zugreifen kann. Und wie greife ich auf n Dateien zu und beende die Schleife sobald keine weitere Datei gefunden wird?


Ein Ansatz wäre vielleicht die Anzahl der Dateien zu zählen

${LOCAL_DOWLOADED_FILELISTOBJECT@FTPDownload_16.size()}

und dann einen Zähler einzubauen der von 0 bis zur Anzahl der Dateien hochzählt. Die Benennung der Dateien müsste dann vielleicht so lauten?

Testfile_+("counter"), ".csv"

Dann könnte ich jedenfalls schon mal dynamisch die Anzahl der Dateien abgreifen. Wie jedoch greife ich nun auf den Inhalt der einzelnen Dateien zu? Und wie kann ich dann nacheinander die einzelnen Inhalte in einem String zusammenführen? Per <#list> Direktive iterieren lassen?


Ich glaube der Ansatz könnte klappen, bin da aber noch zu wenig in Freemarker drin :(


Gruß,

Marc

Update: Ich habe soeben entdeckt, dass der SpreadsheetCSVReader genau das bereits bewerkstelligen kann!

image

Jedoch wäre es sicherlich trotzdem interessant wie man dies direkt im TextHTMLWriter abbilden könnte.

Gib die FILELIST aus dem FTPDownload Step einfach in den SpreadsheetCSVReader rein. Der kann mit FILELIST umgehen. Du erhälts dann ein Spreadsheet mit allen Zeilen aus allen CSV Dateien - sofern die Spalten gleich sind.


Danach kannst du dann weiter verarbeiten... z.B. mit SpreadsheetMapper etc.

Schön, dass du es gefunden hast. Im TextHTMLWriter kann man nicht auf die Inhalte der Dateien zugreifen.
Was genau möchtest du mit denn mit den Inhalten machen?


Du kannst ja nach dem SpreadsheetCSVReader mit dem TextHTMLWriter weiter arbeiten. Dann kannst du auch mit <#list ...> arbeiten wie in der Schulung gezeigt.

Ich führe die Inhalte aus der nun einzelnen .csv mit einem vorher definierten Spreadsheet (DATEV-konform) per SpreadsheetAppend zusammen und baue mir dann im Mapper das benötigte Exportsheet. Ziel ist es in einem Flow die Zahlungsavise aller von uns bespielten Marktplätze (Avise werden als .csv auf unserem FTP abgelegt) in ein einheitliches Format zu bringen, per Querverweis auf die OrderID aus Plenty zu verweisen und dann an die Fibu zu übergeben.