Singuläres Attribut

Regeltypen - Kurzfassung

Zweck: Gibt im Kontext eines Bezugsobjekts (Entitätstyp muss Attributbesitzer sein), ein bestimmtes "singuläres Attribut" zurück, auf das lesend und schreibend zugegriffen werden kann.

images/download/attachments/78258104/image2021-10-5_10-9-35-version-1-modificationdate-1633421376760-api-v2.png

Der Singuläres Attribut-Wertauflöser ermöglicht den Zugriff auf ein singuläres Attribut einer Entität. Er erwartet als Bezugsobjekt eine Entität, die dem Typ nach als "Attributsbesitzer" gilt (s. Attribut (Wertauflöser)) und dessen Datenmodell mindestens ein singuläres Attribut vorsieht. Auf dessen spezifische Datenstruktur kann über den Rückgabewert des Wertauflösers lesend und schreibend zugegriffen werden. Ein Schreibzugriff impliziert das Erzeugen des Attributs, falls es noch nicht existiert.

Der Parameter Singuläres Attribut legt den Typ des singulären Attributs fest, das zurückgeben werden soll.

HINWEIS◄ Prinzipiell könnte auch der Attribute (Regeltypen)-Wertauflöser verwendet werden, um auf ein singuläres Attribut eines bestimmten Typs zuzugreifen. Dieser gibt allerdings formal eine Liste mit genau einer oder keiner Instanz des Attributs zurück.

Im Kontext der in den verschiedenen Lobster Data Platform / Orchestration-Modulen vordefinierten Standard-Entitäten spielen singuläre Attribute keine Rolle, solange nicht durch Eigene Typdefinitionen spezifische Erweiterungen implementiert sind. Stattdessen kommen fast immer typisierte Attribute unterschiedlicher Typen zum Einsatz (s. Geschäftsobjekte und Attribute), um einer Entität "singuläre" Daten zuzuweisen.

In Zusammenhang mit spezifischen Zusatzmodulen (Allg., GLS, IDS, TOF) erscheinen für Firmen singuläre Attribute, die im Firmenkonto jeweils alle Felder für spezifische "Zusätze" in einem einzigen Attribut gebündelt anbieten.

Konfiguration

Der Singuläres Attribut-Wertauflöser erwartet ein Bezugsobjekt, dessen Datenmodell mindestens ein singuläres Attribut enthalten kann.

Der Parameter Singuläres Attribut sieht eine statische Einfachauswahl für den Attributtyp vor, auf den zugegriffen werden soll.

Solange der Kontext der Konfiguration nicht auf einen spezifischen Entitätstyp verweist, erscheinen alle Typen von singulären Attributen zur Auswahl, die das System (aufgrund der Installation und Lizenzierung von Modulen) unterstützt. Ob die Rolle der Session über Berechtigungen für die spezifischen Zusatzmodule für Firmen (s. o.) verfügt, spielt für die Optionen bei der Konfiguration des Wertauflösers keine Rolle.

Das Auswahlfeld/Combobox-Element bietet eine Suchfunktion an, die die internen Klassennamen der Attribute ebenso berücksichtigt wie zugehörige Lokalisierungen aus der Sprachverwaltung.

images/download/attachments/78258104/image2021-10-5_11-14-34-version-1-modificationdate-1633425275830-api-v2.png

Bezieht sich der Kontext der Konfiguration dagegen auf einen spezifischen Entitätstyp für das Bezugsobjekt, dann erscheinen nur die Typen von singulären Attributen zur Auswahl, die im betreffenden Datenmodell explizit implementiert sind.

Rechts wird innerhalb eines Firmenkontos irrtümlich versucht, auf die singulären Attribute für "Zusätze" innerhalb der "Adresse" (address) der Firma zuzugreifen. Das Dropdown zeigt daraufhin keine Einträge zur Auswahl an, da die singulären Attribute für "Zusätze" direkt im attributes-Konten des Firmenkontos vorliegen und nicht innerhalb der Adresse der Firma.

images/download/attachments/78258104/image2021-10-5_11-39-36-version-1-modificationdate-1633426778134-api-v2.png

Wird kein Singuläres Attribut ausgewählt, dann ist der Rückgabewert des Wertauflösers immer "kein Wert" (null).

Wird ein ausgewähltes Singuläres Attribut vom Typ des zur Laufzeit vorliegenden Bezugsobjekts nicht unterstützt, ist der Rückgabewert ebenfalls "kein Wert" (null).

Fall das zur Laufzeit vorliegende Bezugsobjekt das ausgewählte Singuläre Attribut unterstützt, im Bezugsobjekt aber keine betreffenden Daten enthalten sind, wird ebenfalls "kein Wert" (null) zurückgegeben.

Beispiel

Ein über Eigene Typdefinitionen definierter Entitätstyp soll die Stammdaten von diskreten "Ladebereichen" (z. B. innerhalb eines Gebäudes, Geländes oder einem Fahrzeug) abbilden. Zwecks Identifikation und ggf. als Basis für Berechnungen zur Beladung (Weight & Balance) soll die Position jedes "Ladebereichs" relativ zu einem Referenzpunkt durch drei Koordinaten (x, y, z) definiert werden können.

Die "Positionsangabe" (also das Koordinaten-Triplett) soll in einem benutzerdefinierten singulären Attribut (s. Eigene Typdefinitionen) zusammengefasst sein.

Beim Kopieren eines bestehenden "Ladebereichs", soll dieses Attribut automatisch gelöscht werden, so dass die Koordinaten in der Kopie immer ausgehend von leeren Eingabefeldern zugeordnet werden müssen.

Laufzeitbeispiel:

Darstellung im Formular

Entität im XML-Format

images/download/attachments/78258104/image2021-10-5_14-41-54-version-1-modificationdate-1633437716362-api-v2.png
ANMERKUNG◄ Auf die Angabe einer Einheit wurde hier verzichtet. Das Attribut verwendet grundsätzlich skalare Zahlenwerte, die sich z. B. im Kontext eines Fahrzeugs auf eine bestimmte Längeneinheit beziehen können, während dieselben Felder in einem anderen Kontext z. B. als Positionen in einem Regalsystem interpretiert werden.

<cst:StorageCapacity ...>
<name>LEFT/REAR BAGGAGE HOLD</name>
...
<attributes>
...
<cst:StoragePositionXyz id="2" ...>
<value x="-0.65" y="3.75" z="-1.2"/>
</cst:StoragePositionXyz>
...
</attributes>
</cst:StorageCapacity>

Konfiguration:

Eine Ereignisbehandlung, die auf das Ereignis "Kopieren" (s. Allgemein (Ereignisse) als Auslösendes Ereignis reagiert, wird wie rechts abgebildet konfiguriert:

  • Die Prüfende Regel stellt per Typprüfung sicher, dass es sich um eine Entität vom Typ "Ladebereich" handelt.

    ANMERKUNG◄ Es geht nicht um die Ladebereiche für den Kontext des Moduls Zeitfenstermanagement, sondern um die ähnlich benannte "Eigene Entität" cst:StorageCapacity
    (s. Eigene Typdefinitionen)!

  • Die Aktion bei bestandener Regel verwendet eine Setze Wert-Ereignisaktion, um dem per Singuläres Attribut-Wertauflöser definierte "PositionXyz"-Attribut den Wert "Kein Wert" zuzuweisen. Dadurch wird das Attribut insgesamt gelöscht. Eingabeelemente für die enthaltenen Felder (u. a. x, y, z) erscheinen daraufhin in der Kopie leer.

images/download/attachments/78258104/image2021-10-5_15-5-7-version-1-modificationdate-1633439109525-api-v2.png