Eine Liste innerhalb des Mappers filtern

Hi Team,

folgender Plentymarkets-Usecase:

Artikel 123 hat mehrere TAGs mit sich verknüpft. Das entsprechende Feld im Datastore heißt VariationTagIDs, hat den Datentyp Text & MultipleValue (Trennzeichen: ; ).

Das Feld ist mit folgenden Werten gefüllt:

  1. Artikel: 1;2;3;5;10
  2. Artikel: 1;2;3;10

Ich möchte im Mapper nun auf dieses Feld zugreifen, aber nur bestimmte Werte im Result ausgeben und somit die Liste filtern. Ich möchte NICHT mit verschachtelten if-statements arbeiten.

Die Idee sieht in etwa so aus:

<#assign xs = [VariationTagIDs]>
<#list xs?filter(x -> x == 3 || x == 5) as x>${x?trim}<#sep>;</#list>

Die gewünschte Ausgabe sollte

  1. Artikel: 3;5
  2. Artikel: 3

sein.

Hoffe auf hilfreiche Tipps oder sogar Lösungsvorschläge!

VG,
Marc

Hallo @Marc,

die Funktion intersection könnte die weiterhelfen.

Als erste Liste nimmst du deine VariationTagIDs und als zweite Liste die IDs nach den du filtern möchtest. Ungefähr so:

${intersection(VariationTagIDs, "3;5",(";"))}

Viele Grüße
Lukas

1 Like

Ja mega, perfekt!
Danke @synesty-Lukas