Sammle Werte
Wertauflöser - Kurzfassung
Zweck: Verarbeitet alle Einträge (außer $null-Werte) einer als Eingabewert übergebenen Liste mit den optional konfigurierbaren Wertauflösern und listet die so gewonnen Ergebniswerte (außer $null-Werte) im Rückgabewert auf.
Der Sammle Werte-Wertauflöser verarbeitet alle Einträge (außer $null-Werte) einer als Eingabewert übergebenen Liste mit den im Parameter Wert zum Sammeln konfigurierten Wertauflösern und listet die so gewonnen Ergebniswerte (außer $null-Werte) im Rückgabewert auf.
Die Option Listen vereinen bewirkt, dass anstelle eines Ergebniswerts für den Wert zum Sammeln, bei dem es sich um eine Liste handelt, die enthaltenen Einträge als Ergebniswerte verarbeitet werden.
Mit der Option Eindeutige Werte wird die "Liste" für die Ergebniswerte als Set angelegt, so jeder Ergebniswert nur einmal in der zurückgegebenen Liste enthalten sein kann.
Sonderfälle:
Falls als Eingabewert "Kein Wert" ($null) vorliegt, lautet auch der Rückgabewert "Kein Wert" ($null).
Falls als Eingabewert eine leere Liste ([]) vorliegt, ist auch der Rückgabewert eine leere Liste ([]).
Falls als Eingabewert ein Wert vorliegt, der nicht "Kein Wert" ($null) aber auch keine Liste ist, dann wird dieser Wert so verarbeitet, als wäre er der einzige Eintrag einer Liste.
Falls Wert zum Sammeln als Ergebniswert (für einen Eintrag aus dem Eingabewert) eine Liste liefert, die $null-Werte enthält, erscheinen ausnahmsweise Einträge mit dem Wert $null im Rückgabewert, wenn die Option Listen vereinen gesetzt ist.
►HINWEIS◄ Ohne die Option Listen vereinen erscheinen Ergebniswerte, die Listen sind, grundsätzlich (inkl. der ggf. enthaltenen $null-Werte) als Einträge mit dem Typ "Liste" im Rückgabewert.
Konfiguration
Parameter |
Auswirkung |
Listen vereinen |
Beispiel: Als Eingabewert liegt eine Liste von statischen Werten (hier: Geokoordinaten mit Dezimalzahlen für "Länge" und "Breite" im Winkelmaß) vor, die der folgenden JSON-Notation entspricht: [[55.05,8.41],[47.27,10.18]]
►HINWEIS◄ Die Option Listen vereinen betrifft immer nur Listen, die unmittelbar Ergebniswerte sind. Enthält eine als Ergebniswert zurückgegebene Liste wiederum Einträge, die Listen sind, bleibt deren "Gruppierung" als Liste erhalten. Einträge aus mehrstufig verschachtelten Listen können ggf. "vereinigt" werden, indem mehrere Instanzen des Sammle Werte-Wertauflösers kombiniert werden. |
Eindeutige Werte |
►WICHTIG◄ Die Reihenfolge der Ergebniswerte im Rückgabewert spiegelt nicht die Verarbeitungsreihenfolge der Einträge aus dem Eingabewert. Beispiel: Als Eingabewert liegt eine Liste von statischen Ganzzahlen vor, die der folgenden JSON-Notation entspricht: [32,16,8,-4,16,8]
|
Wert zum Sammeln |
Definiert optional einen Wertauflöser oder eine Verkettung von Wertauflösern, die für jeden Eintrag einer Liste im Eingabewert (oder den kompletten Eingabewert, falls es sich dabei nicht um eine Liste handelt) angewendet wird.
|
Beispiele
Einfacher Anwendungsfall: Eindeutige Werte für ein Objekt-Feld ermitteln
Es soll eine Liste der Ladehilfsmitteltypen (s. Ladehilfsmittel) "gesammelt" werden, die auf die sich mindestens eine direkte Standard-Position einer Sendung (s. Sendungen) bezieht.
Konfiguration:
Im Kontext einer Ereignisbehandlung, die zur Laufzeit als Eingabewert die zu untersuchende Sendung erhält, wird - z. B. innerhalb einer Für jeden Eintrag wiederholen (Schleife) oder Ausführen mit-Ereignisaktion - die folgende Wertauflöserkette konfiguriert:
|
|
►ANMERKUNG◄ Anhand Anzahl der Einträge im Rückgabewert (über das Feld length) kann mit diesen Einstellungen z. B. ausgewertet werden, wie viele unterschiedliche Ladehilfsmitteltypen in den direkten Standard-Positionen enthalten sind. Eine Regel, die prüft, ob diese Anzahl >1 ist , kann so auch einfach feststellen, ob innerhalb der Sendung unterschiedliche Ladehilfsmitteltypen verwendet werden oder nicht.
Komplexerer Anwendungsfall: Sammeln von Werten aus ausgewählten Instanzen für ein Mehrfachattribut auf Positionsebene
Das folgende Beispiel verwendet zwei Instanzen des Sammle Werte-Wertauflösers in einer verschachtelten Anordnung, für eine komplexere Auswertung im Kontexts einer Sendung (s. Sendungen).
Konkret soll eine Liste aller eindeutigen "Barcode"-Werte aus Barcode-Attributen ermittelt werden, die in direkten Positionen des Typs "Standard" in Verbindung mit einer Angabe für das Feld "Barcodereferenz" (barcodeReference) des Attributs gefunden werden.
Konfiguration:
Innerhalb einer Setze Wert-Ereignisaktion wird die Liste der "gesammelten" Barcodes einer Variablen (BARCODES_MIT_REFERENZ) zugewiesen.
Auf der rechten Seite der Zuweisung werden die gesuchten "Barcode"-Werte über die folgende Wertauflöserkette "gesammelt":
Wie im vorherigen Beispiel liefert der Direkte Positionen-Wertauflöser eine Liste der direkten Sendungspositionen mit dem Positionstyp "Standard" als Eingabewert für den äußeren verketteten Sammle Werte-Wertauflöser. Dieser wertet die im Parameter Wert zum sammeln definierte Wertauflöserkette je Position aus:
Der Plurale Attribute (Wertauflöser)-Wertauflöser liefert eine Liste aller Instanzen für das plurale "Barcode Attribut" der ausgewerteten Position.
Der verkettete Regel-Listen Resolver filtert diese Liste, auf alle Instanzen des Attributs (s. Option Alle Werte als Liste), deren Feld "Barcodereferenz" (barcodeReference) gefüllt ("nicht-leer") ist.
Der verkettete innere Sammle Werte-Wertauflöser sammelt aus der Liste der "referenzierten" Instanzen für das "Barcode Attribut" für die Werte aus dem Feld "Barcode" (barcode) ein.
Als Wert zum Sammeln im äußeren Sammle Werte-Wertauflöser wird also die Liste der relevanten Barcodes für die ausgewertete Position ermittelt.
Die je Position gesammelten Barcodes in dieser Liste werden vom äußeren Sammle Werte-Wertauflöser einzeln als Ergebniswerte verarbeitet, weil die Option Listen vereinen ausgewählt ist.
Da auch die Option Eindeutige Werte ausgewählt ist, werden dabei ggf. vorliegende Duplikate ignoriert. Der Rückgabewert enthält jeden "Barcode"-Wert genau einmal.