Spreadsheet: Wie kann ich den Dateinamen der eingelesenen Datei in einer Spalte ausgeben?

Beispiel:

Sie lesen eine Excel-Datei mit dem Step ExcelReader ein, damit Sie ein SPREADSHEET bekommen.

Sie möchten den Dateinamen der Excel-Datei in einer Spalte des Spreadsheets ausgeben. Grund könnte sein, dass dieser Dateiname dynamisch ist, und sich z.B. täglich ändert.

Gehen Sie dafür wie folgt vor:

  1. ExcelReader

  2. Mapper

Im Mapper Step der den ExcelReader Output konsumiert, sollte eine Variable Dateiname (Freemarker: ${_inputFilename!}) auswählbar sein. Darin ist der Dateiname der Excel-Datei enthalten.

image

Das funktioniert auch bei folgenden Steps:

Hinweis:

Die Auswahl [Dateiname] (für ${_inputFilename!} ) ist nur sichtbar, wenn der Mapper das Spreadsheet direkt aus dem Datei-lesenden Step bekommt (d.h. im Beispiel dem ExcelReader, aber auch CSVReader usw.). Ansonsten kann der Mapper nicht mehr feststellen, dass es sich um ein sog. „FileBased-Spreadsheet“ handelt, welches seine zugrundeliegenden Dateinamen kennt. Kommen noch anderen Steps dazwischen, geht diese Information verloren.