Mapper: Ausgabe einer Liste mit Trennzeichen

Hallo Synesty Team, wir nutzen einen Mapper mit verschiedenen Spalten, die in er letzten Spalte im Mapper zu einer Liste mit Trennzeichen zusammengefügt werden soll. Die Spalten weisen nicht immer einen Wert auf. Es gibt Spalten, die leer sein können. Wir haben des bis jetzt so gelöst:

<#list [result[„DuftfamilieDE_temp“]!,result[„DuftfamilieDE2_temp“]!,result[„DuftfamilieDE3_temp“]!,result[„Duft_temp“]!,result[„Farbe_temp“]!,result[„Form_temp“]!,result[„Material_temp“]!,result[„KopfnoteDE_temp“]!,result[„HerznoteDE_temp“]!,result[„BasisnoteDE_temp“]!]as i>
${i}<#sep>|
</#list>

Das Problem ist nun, dass die Trennzeichen auch bei den leeren Spalten erscheinen. Das Ergebis sieht dann so aus:

Spalte1||Spalte3|Spalte4 usw. (falsch = 2 Trennzeichen zwischen Spalte 1 und Spalte 3)

Richtig wäre jedoch, dass zwischen Spalte 1 und Spalte 3 nur 1 Trennzeichen erscheint, falls Spalte 2 leer ist)
Spalte1|Spalte3|Spalte4

Könnt ihr uns hier einen Tipp geben, wie wir das hinkriegen könnten?

Vielen Dank für eure Tipps

Hallo @infoshopsystemsch,

du kannst die leeren Elemente vor der Verarbeitung mit der filter-Funktion rauswerfen. Eine Einführung zu Listenfunktionen und weitere Code-Beispiele findest du auch in meinem Vortrag.

<#list ["A","","B","","","","","","C"]?filter(ele -> ele?trim != "") as i>
${i}<#sep>|
</#list>

Ergebnis:
A|
B|
C

Gruß
Gustav

1 „Gefällt mir“