Wir haben aktuell das Problem, dass wir eine ID in VariationpropertyIds mehr als 255 Zeichen groß ist. Somit kann synesty alle Werte darin garnicht verarbeiten. Über Parsemap script erhalten wir einen Error. Ausschließen können wir den bestimmten Wert auch nicht. Hast du eine Idee wie wir dieses Problem beheben?
alternativ zu parseMap könnt ihr auch das VariationPropertyIDsJSON als JSON verarbeiten. Da gibt es m.W.n. kein solches Limit. Die Syntax ist aber geringfügig anders.
Edit: Dabei kam auch noch eine technische Frage für Synesty bei mir auf. Wie unterscheidet sich der JSON-Hash aus eurer parseMap-Funktion von dem ?eval_json-builtin?
props['221']?? fragt ab, ob der Schlüssel 221 in dem JSON-Hash existiert. props['221'] != '' prüft, dass der Wert zu dem Schlüssel nicht leer ist.
Dein Code funktioniert und kannst du so lassen. Aber die Iteration über die Liste ist suboptimal, da sie einfach nicht nötig ist. Statt dutzende Elemente zu fragen, ob sie das gesuchte Element sind, fragt mein Code einfach, ob das gesuchte Element existiert und prüft im Anschluss den Wert.
@synesty-Torsten: Hast du eine Antwort auf meine Frage parat oder ist der Unterschied nicht der Rede wert?
Die parseMap template Funktion gibt ein eigenes, von uns erstelltes Map-Objekt zurück. Das hat den Vorteil, dass wir dafür zusätzliche Funktionen bereitstellen können, also z.B. .at("key") oder .containsKeyIgnoreCase("KeY"). Diese Funktionen findest du in den Beispielen der parseMap Template Funktion.
Mit dem ?eval_json-builtin bekommst du einen internes Freemarker hash - Objekt (oder auch andere Typen wie sequences, anhängig vom JSON - String) zurück.