Spreadsheet Freemarker-Funktionen
Diese Seite beschreibt Funktionen eines Spreadsheet-Objektes (siehe Spreadsheets) mit den dazugehörigen Objekten für Zeilen Row und Spalten Col.
Diese Funktionen sind in der Regel im Mapper anwendbar oder in allen anderen Steps, die Freemarker-Skripte verarbeiten wie z.B. der TextHtmlWriter.
Voraussetzung
Zum Verständnis dieser Seite ist es hilfreich sich auch mit der Seite Scripting zu befassen.
Spreadsheet | Funktion | Attribute | Rückgabewert | Beispiel | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
getName() | Gibt den Namen des Spreadsheets aus. | - | string | ||||||||
getNumberHeaderCols() | Gibt die Anzahl der Spalten in der Kopfzeile aus. | - | int | Anzahl Spalten des Spreadsheet: ${myspreadsheet.getNumberHeaderCols()} | |||||||
getHeader() | Gibt das Zeilenobjekt (siehe Row) der Kopfzeile zurück. | - | Row | Listet alle Spaltentitel Semikolon-getrennt auf: ${myspreadsheet.getHeader()?join(";")} Listet alle Spaltentitel auf, die mit "price_" beginnen: ${myspreadsheet.getHeader().getCols()?filter(headercol -> headercol.title?starts_with("price_"))?join(";")} <#if myspreadsheet.getHeader().getCols()?seq_contains("description")>Ja Spalte "description" ist enthalten<#else>Nein, nicht gefunden</#if> Kurzschreibweise: Statt .getHeader().getCols() kann man auch .header.cols schreiben. | |||||||
hasRows() | Gibt true zurück, wenn das Spreadsheet mindestens eine (Daten-)Zeile enthält | - | boolean | <#if !spreadsheet@SearchMasterDatastore_1.hasRows()>Das Spreadsheet ist leer bzw. hat keine Datenzeilen. </#if> <#if !(spreadsheet@SearchMasterDatastore_1?? && spreadsheet@SearchMasterDatastore_1.hasRows())> Das Spreadsheet ist leer oder existiert nicht. </#if> | |||||||
getRows() | Gibt alle Zeilen (siehe Rows) des Spreadsheets zurück - ohne Kopfzeile. | - | List<Row> | <#list spreadsheet@SearchMasterDatastore_1.getRows() as row>${row['id']}</#list> Iteriert über alle Zeilen des Spreadsheets und gibt pro Zeile den Wert der Spalte id aus. | |||||||
firstRow(String columnName) | Gibt die angegebene Spalte (columnName) aus der ersten Zeile des Spreadsheet zurück | string | Col | Wert der Spalte "status" der ersten Zeile: ${output@SpreadsheetUrlDownload_2.firstRow("status")!} Gibt den Wert der Spalte "Status" in der ersten Zeile aus. | |||||||
firstRow(String columnName, String defaultValue); | Wie firstRow(String columnName), gibt aber den defaultValue aus, falls die Spalte nicht vorhanden ist | string, string | string | Wert der Spalte "status" der ersten Zeile: ${output@SpreadsheetUrlDownload_2.firstRow("status", "open")!} Gibt den Wert der Spalte "Status" in der ersten Zeile aus. Falls der Wert leer ist oder nicht existiert, wird der Default-Wert "open" zurück gegeben. | |||||||
meta.map@KeyValueSpreadsheet.get(String Key) | Gibt aus einem vorher erstellen KeyValueSpreadsheet, den Value des angegeben Keys zurück | string | string | Wert des Key1 aus KeyValueSpreadsheet1: ${meta.map@KeyValueSpreadsheet_1.get(Key1)} | |||||||
Row | |||||||||||
| |||||||||||
getCols() | Gibt alle Spalten der Zeile zurück. | - | ColumnList bzw. List<Col> | ${row.getCols()?join(",")} Fügt alle Spaltenwerte kommasepariert zusammen. ${row.getCols()?filter(col -> col.getTitle()!?starts_with('price'))?join(",")} Fügt alle Spaltenwerte kommasepariert zusammen, von Spalten, deren Titel mit dem Wort "price" beginnt. | |||||||
getRowNumber() | Gibt die aktuelle Zeilennumer aus. | - | int | Aktuelle Zeilennummer: ${row.getRowNumber()} | |||||||
[headerColName] | Gibt den Spaltenwert anhand des Spaltennamens in der Quellzeile aus. | string | string | Der Wert der Spalte 'status' ist: ${row["status"]!}. Alternativ würde auch die Langform ${row.get("status")!}funktionieren. | |||||||
isValid() | Prüft ob alle Spalten entsprechend der Schema-Definition valide sind | - | boolean | <#list spreadsheet@SearchMasterDatastore_1.getRows() as row> <#if row.isValid()> Alle Spalten entsprechend dem im Datastore-Schema definierten Regeln (z.B. Pflichtfeld, Reg-Ex, Erlaubte Werte...) </#if> </#list> | |||||||
parent(String columnName) | Gibt die angegebene Spalte aus der Parentzeile (falls vorhanden) zurück. | string | Col | Dies funktioniert nur bei Variant-Zeilen, die aus einem Datastore per SearchDatastore Step kommen. Siehe auch Auf Relationen zugreifen und Datastores - HierarchischeDaten. ${parent['columnname']!} - greift auf eine Spalte der Parent-Zeile zu <#if row.parent()??>ja, ist Variante, weil Parent vorhanden<#else>Nein, ist keine Variante, da kein Parent vorhanden</#if> | |||||||
master(String columnName) | Gibt die angegebene Spalte aus der Master-Zeile (falls vorhanden) zurück. | string | Col | Dies funktioniert nur bei Zeilen, die aus einem Child-Datastore per SearchDatastore Step kommen. Siehe auch Auf Relationen zugreifen und Datastores - HierarchischeDaten. ${master['columnname']!} - greift auf eine Spalte der Master-Zeile zu <#if row.master()??>ja, ist Child-Zeile, weil Master vorhanden<#else>Nein, ist keine Child-Zeile, da kein Master vorhanden</#if> | |||||||
variants() | Gibt alle Varianten-Zeilen (sofern vorhanden) der aktuellen Parent-Zeile zurück. | List<Row> | Dies funktioniert nur bei Zeilen, die aus einem Datastore per SearchDatastore Step kommen. Siehe auch Auf Relationen zugreifen und Datastores - HierarchischeDaten. <#if (row.variants()?? && row.variants()?size > 0)>Diese Parentzeile hat ${row.variants()?size} Variantenzeilen<#else>Keine Variantenzeile vorhanden</#if> <#if (row.variants()?? && row.variants()?size > 0)> <#list row.variants() as v> ${v.get('artikelnummer')!} - </#list> </#if> | ||||||||
children() | Gibt alle Child-Zeilen (sofern vorhanden) der aktuellen Master-Zeile zurück. | Dies funktioniert nur bei Zeilen, die aus einem Master-Datastore per SearchDatastore Step kommen und wenn es zu diesem Master-Datastore auch einen verknüpften Child-Datastore gibt. Siehe auch Auf Relationen zugreifen und Datastores - HierarchischeDaten. <#if (row.children()?? && row.children()?size > 0)>Diese Masterzeile hat ${row.children()?size} Children<#else>Keine Children vorhanden</#if> <#if (row.children()?? && row.children()?size > 0)> <#list row.children() as c> ${c.get('artikelnummer')!} - </#list> | |||||||||
getSpreadsheet() | Gibt das Spreadsheet-Objekt (siehe Spreadsheet) zurück, zu dem die aktuelle Zeile gehört. | Spreadsheet | |||||||||
Col | |||||||||||
get() | Gibt den Textwert einer Spalte | - | string | ${brandname.get()} ist das gleiche wie die Kurzform ${brandname!}. Das Ausrufezeichen am Ende sorgt dafür dass ein evtl. Null-Wert mit einem leeren String ("") ausgegeben wird. | |||||||
get(String defaultValue) | Wie get(), aber es wird der defaultValue ausgegeben, falls der Wert leer ist | string | string | ${brandname.get("foo")} ist das gleiche wie die Kurzform ${brandname!"foo"}. Das Ausrufezeichen am Ende sorgt dafür dass ein evtl. Null-Wert mit einem leeren String ("") ausgegeben wird. | |||||||
getTitle() | Gibt den Spaltentitel aus. | - | string | ${mycolumn.getTitle()} | |||||||
getHeaderCol() | Gibt die dazugehörigen Kopfspalte aus. | - | Col | ${mycolumn.getHeaderColumn().get()} ist das gleiche wie ${mycolumn.getTitle()!} | |||||||
getRow() | Gibt das Zeilenobjekt (siehe Row) zurück, zu der die Spalte gehört. | Row | Aktuelle Zeilennummer: ${mycolumn.getRow().getRowNumber()} |