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.

images/download/attachments/78256106/image2022-9-26_14-26-53-version-1-modificationdate-1664195213795-api-v2.png

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

  • Option abgewählt (Standard): Ergebniswerte vom Typ "Liste" werden direkt, also als Eintrag vom Typ "Liste", im Rückgabewert berücksichtigt.

  • Option ausgewählt: Für Ergebniswerte vom Typ "Liste" werden die enthaltenen Einträge "aufgelöst", also als "selbstständige" Einträge im Rückgabewert berücksichtigt.

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]]
Auf eine Konfiguration für den Parameter Wert zum Sammeln wird verzichtet, sodass die Einträge direkt "gesammelt" werden (s. unten).

  • Im Regelfall sollen die Koordinaten-Paare auch im Ergebnis paarweise zusammengehalten werden. Der Sammle Werte-Wertauflöser leistet das, wenn die Option Listen vereinen abgewählt ist (Standard).

  • Wird die Option Listen vereinen ausgewählt, dann gibt der Rückgabewert im konkreten Fall die Längen- und Breitengrade abwechselnd in einer gemeinsamen Listenebene wieder: [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

  • Option abgewählt (Standard): Der Rückgabewert listet sämtliche Ergebniswerte (außer $null-Werte) in der Reihenfolge der verarbeiteten Einträge aus dem Eingabewert auf.

  • Option ausgewählt: Die Ergebniswerte für den Rückgabewert werden intern als Set "gesammelt", das per Definition nur "eindeutige Werte" enthält. Falls derselbe Ergebniswert wiederholt auftritt, werden die Duplikate effektiv "unterdrückt".

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]
Auf eine Konfiguration für den Parameter Wert zum Sammeln wird verzichtet, sodass die Einträge direkt "gesammelt" werden (s. unten).

  • Wird die Option Eindeutige Werte ausgewählt und kein Wert zum Sammeln konfiguriert, lautet dann der Rückgabewert in JSON-Notation: [32,16,-4,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.

  • Liegt als Eingabewert insgesamt "kein Wert" $null (s. "Sonderfälle" oben) oder eine "leere Liste" (ohne Einträge) vor, dann werden Wertauflöser im Parameter Wert zum Sammeln nicht verarbeitet.

  • Enthält die Liste im Eingabewert "kein Wert" $null als Eintrag, dann wird der Liste im Rückgabewert kein Eintrag hinzugefügt und Wertauflöser im Parameter Wert zum Sammeln werden nicht verarbeitet.

  • Ist für den Parameter Wert zum Sammeln kein Wertauflöser konfiguriert, werden Einträge aus dem Eingabewert (außer $null-Werte) direkt als Ergebniswerte verarbeitet.

  • Liefern im Parameter Wert zum Sammeln konfigurierte Wertauflöser für einen Eintrag aus dem Eingabewert "kein Wert" $null als Ergebniswert, dann wird der Liste im Rückgabewert kein Eintrag hinzugefügt.

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:

  • Der Direkte Positionen-Wertauflöser liefert eine Liste aller direkten Positionen der Sendung mit dem Positionstyp "Standard" als Eingabwert für den verketteten Sammle Werte-Wertauflöser.

  • In dessen Parameter Wert zum Sammeln wird je Position per Objekt-Feld-Wertrauflöser der "Ladehilfsmittel.Typ" (loadingAid.type) ermittelt.

  • Die Option Eindeutige Werte wurde ausgewählt, damit im Rückgabewert jeder verwendete Ladehilfsmittel-Typ nur einfach enthalten ist.

images/download/attachments/78256106/image2018-12-11_15-0-56-version-1-modificationdate-1628600090099-api-v2.png

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.

images/download/attachments/78256106/image2018-12-11_14-55-24-version-1-modificationdate-1628600090101-api-v2.png

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.