Alle Attribute eines Typs
Wertauflöser - Kurzfassung
Zweck: Gibt im Kontext eines Bezugsobjekts (Entitätstyp muss Attributbesitzer sein), die Einzelwerte aller Attribute eines bestimmten Typs als Liste zurück.
Der Alle Attribute eines Typs-Wertauflöser ermöglicht den Zugriff auf alle Attribute einer Entität, die einem bestimmten Attributtyp angehören. Er erwartet als Bezugsobjekt eine Entität, die dem Typ nach als "Attributbesitzer" gilt (s. Attribut (Wertauflöser)). Der Rückgabewert ist eine Liste von Einzelwerten des jeweils angegebenen Attributtyps, die auch leer sein kann. Für gezielte Schreib- und Lesezugriffe (s. "Beispiele") können die für Listen spezifischen Wertauflöser (z. B. Listenwert, Regel-Listen Resolver) und Ereignisaktionen (z. B. Für jeden Eintrag wiederholen (Schleife), Liste modifizieren) eingesetzt werden.
Als Attribut muss genau ein Attributtyp aus einer folgenden Kategorien ausgewählt werden:
Kategorie |
Beispiel für "Attribut" (Attributtyp) |
Rückgabewert des Wertauflösers |
Singuläre Attribute |
Eine Liste, die genau ein singuläres Attribut des ausgewählten Typs enthält oder leer ist. |
|
Plurale Attribute |
"Kommunikationsinformation" in Adressen |
Eine Liste, die alle "Kommunikationsinformationen" (Attribute) der Adresse enthält oder leer ist. |
Typisierte Attribute |
"Textattribut" (z. B. in Adressen) |
Eine Liste, die alle "Textattribute" (sämtlicher Subtypen, s. Texttyp) des Geschäftstransaktionsobjekts enthält oder leer ist. |
Sonstige Attribute |
"Produkt ID" / "Preisattribut" für Produkte |
Eine Liste, die alle "Preisattribute" bzw. "Produkt ID"-Attribute für das Produkt enthält oder leer ist. |
Konfiguration
Der Alle Attribute eines Typs-Wertauflöser erwartet ein Bezugsobjekt, dessen Datenmodell als "Attributbesitzer" gilt (s. Attribut (Wertauflöser)).
Der Parameter Attribut sieht eine statische Einfachauswahl für den Attributtyp vor, auf dessen Wertliste zugegriffen werden soll. Solange der Kontext der Konfiguration nicht auf einen spezifischen Entitätstyp verweist, erscheinen alle Attributtypen zur Auswahl, die das System unterstützt. Das Auswahlfeld/Combobox-Element bietet eine Suchfunktion an, die die internen Klassennamen der Attribute ebenso berücksichtigt wie zugehörige Lokalisierungen aus der Sprachverwaltung. |
|
Bezieht sich der Kontext der Konfiguration dagegen auf einen spezifischen Entitätstyp für das Bezugsobjekt, dann erscheinen nur die Mehrfachattribut-Typen zur Auswahl, die im betreffenden Datenmodell explizit implementiert sind. Rechts verweist eine Typprüfung (nicht im Bild) auf einen Routingtabelleneintrag, so dass nur die für diese Entität vorgesehenen (typisierten) Attribute auswählbar sind. |
|
Wird kein Attribut-Typ ausgewählt, dann ist der Rückgabewert des Wertauflösers immer "kein Wert" (null).
Wird ein ausgewählter Attribut-Typ vom Typ des zur Laufzeit vorliegenden Bezugsobjekts nicht unterstützt, ist der Rückgabewert ebenfalls "kein Wert" (null).
Fall das zur Laufzeit vorliegende Bezugsobjekt den ausgewählten Attribut-Typ unterstützt, im Bezugsobjekt aber keine betreffenden Daten enthalten sind, wird eine leere Liste zurückgegeben.
Beispiele
Beispiel für "Schreibzugriff"
Beim Speichern eines Produktkatalogeintrags in einem bestimmten Katalog, sollen die Daten der im Produkt enthaltenen Preisattribute automatisch "überarbeitet" werden:
Sofern für ein Preisattribut das Feld "Steuersatz" (taxRate)noch nicht befüllt wurde, soll in der Dynamischen Aufzählung Steuersatz nachgeschlagen werden, ob für das "Land" (country), auf das sich das Preisattribut bezieht, ein "Standard-Steuersatz" festgelegt wurde.
Ein "Standard-Steuersatz" soll per willkürlicher Konvention daran erkennbar sein, dass der interne Name für den betreffenden Wert (in der Dynamischen Aufzählung Steuersatz) die Textverkettung eines Länderkennzeichens (s. Land) mit dem Suffix "_default" ist.
Existiert ein "Standard-Steuersatz" für das "Land" (country), dann soll dieser dem Feld "Steuersatz" (taxRate) zugewiesen werden.
Laufzeitbeispiel:
Eingegebene Werte in Preisattributen (vor dem Speichern) |
automatische Überarbeitung (nach dem Speichern) |
|
|
Die Erfassungsmaske sieht je Preisattribut die Eingabe für den Nettowert und eine Auswahl für den Steuersatz (s. Steuersatz) vor.
Das Element für den Bruttowert ist hier als Berechnungsfeld (s. Berechnungsfelder) mit einem Ausdruck nach dem Schema $product($el(<netValue>),$taxRate($el(<taxRate>))) konfiguriert (s. product (Multiplikation), taxRate (Steuersatz)).
►ANMERKUNG◄ Das Element Bruttowert ist außerdem deaktiviert, damit es nicht geändert werden kann, und sein Datenfeld auf "Überspringen" gesetzt, damit der berechnete Wert nicht im Attribut-Feld (grossValue) gespeichert wird.Nach dem Speichern (rechts) wurde das Feld Steuersatz (taxRate) nur für de Länder "Deutschland" und "Schweiz" befüllt. Offenbar ist für das Land "Österreich" (noch) kein Standard-Steuersatz (mit dem internen Namen AT_default) hinterlegt.
Konfiguration:
Eine Ereignisbehandlung, die auf die Ereignisse "Ändern" und "Erstellen", also das "Speichern" einer Entität (s. Allgemein (Ereignisse)) reagiert, wird wie rechts abgebildet konfiguriert:
|
|
Der Wertauflöser für Einträge, der die Basis für die Iteration innerhalb der Schleife definiert wird wie rechts abgebildet als Verkettung von Wertauflösern konfiguriert:
Der Regel-Listen Resolver gibt eine Liste aller Preisattribute des Produkts zurück, für die ein Standard-Steuersatz zugewiesen werden soll und kann. Nur für diese erfolgt die Zuweisung innerhalb der Schleife (s. o.). ►ANMERKUNG◄ Produkte sind Referenzierte Objekte, so dass Veränderungen an Attributen eines in einem Produktkatalogeintrag referenzierten Produkts nicht die Eigenschaften dieses Produkts verändern, sofern dieses bereits gespeichert wurde. Vielmehr wird beim Speichern geprüft, ob die geänderte Merkmalskombination einem bestehenden Produkt entspricht. Anderenfalls wird dieses Produkt automatisch neu erstellt. Anschließend wird die Referenz im Produktkatalogeintrag auf das vorhandene oder neu erstellte Produkt geändert. Bestehende Referenzen z. B. in Positionen von Geschäftsobjekten oder anderen Produktkatalogen verweisen weiter auf das ursprüngliche Produkt. |
|
Beispiel für "Lesezugriff"
In einer Übersicht für Benutzer soll ein Klick auf einen benutzerdefinierten Ribbon Button "Flags" (s. Ribbon-Makros) eine Benachrichtigung mit einer Liste aller "Kennzeichen" (engl. "flags") öffnen, die für einen ausgewählten Benutzer gesetzt sind.
Konkret sollen dazu alle Kennzeichenattribute ausgewertet werden, die der Adresse des Benutzers zugeordnet sind und für die der Kennzeichenwert den Wert $true lautet.
In der Liste soll dann jeweils der lokalisierte Name für den Kennzeichentyp aus dem jeweiligen Attribut erscheinen.
Laufzeitbeispiel:
Konfiguration:
Ein Eigenes Aktionsevent "Flags anzeigen (Benutzer)" muss angelegt und das zugehörige Ribbon-Makro im Kontext der "Benutzerübersicht" hinzugefügt und zugeordnet werden. Auf Details hierzu sei an dieser Stelle verzichtet.
Eine Ereignisbehandlung, die das Ereignis "Flags anzeigen (Benutzer)" als Auslösendes Ereignis verwendet, wird wie rechts abgebildet konfiguriert:
|
|
An die unterhalb verketteten Wertauflöser wird also die Teilmenge aller Kennzeichenattribute weitergegeben, die für den Benutzer "gesetzt" sind. Diese Liste ist leer, falls keine Flags gesetzt sind.
|
|