Setze Werte
Siehe auch: Setze Wert, Erzeuge Instanz mit Werten
Ereignisaktion - Kurzfassung
Zweck: Die Setze Werte-Ereignisaktion fasst eine flexible Anzahl von Zuweisungen in einer einzigen Ereignisaktion zusammen, für deren Konfiguration je ein Quellobjekt und ein Zielobjekt als Eingabewert definiert werden kann.
Die Setze Werte-Ereignisaktion fasst eine flexible Anzahl von Zuweisungen (Quellwerte → Zielwerte) in einer einzigen Ereignisaktion zusammen.
Für den Kontext dieser Zuweisungen kann optional über je eine Wert-Konfiguration ein Quellobjekt und ein Zielobjekt definiert werden.
Sofern eine Wert-Konfiguration für das Quellobjekt vorliegt, gilt deren Rückgabewert als Eingabewert für alle Wert-Konfigurationen für Quellwerte in Zuweisungen.
Sofern eine Wert-Konfiguration für das Zielobjekt vorliegt, gilt deren Rückgabewert als Eingabewert für alle Wert-Konfigurationen für Zielwerte in Zuweisungen.
Ohne eine Wert-Konfiguration für das Quellobjekt oder das Zielobjekt stellt das Bezugsobjekt im Ausführungskontext (sofern vorhanden) den Eingabewert für Wert-Konfigurationen auf der betreffenden Seite in allen Zuweisungen.
Die einzelnen Wert-Konfigurationen in den Zuweisungen sind nicht zwingend an das Quellobjekt bzw. Zielobjekt gebunden. Sie können beliebige andere Datenobjekte oder statische Werte aller Art über Wertauflöser adressieren.
►WICHTIG◄ Die Variablen entity und entityClass beziehen sich im Kontext der Zuweisungen nicht auf das Quellobjekt bzw. das Zielobjekt, sondern auf beiden Seiten der Zuweisung unverändert auf das Bezugsobjekt.
Wertauflöser, die den Eingabewert ignorieren und nur das Bezugsobjekt verarbeiten können (z. B. Vorlage oder XML-Export), greifen auch innerhalb einer Zuweisung nicht auf das Quellobjekt bzw. das Zielobjekt zu.
Konfiguration
Parameter |
Beschreibung |
Beispiel |
Zielobjekt |
Die Wert-Konfiguration für das Zielobjekt ist optional. Im Beispiel (rechts) definiert ein Objekt-Feld-Wertauflöser ein Feld address mit dem Entitätstyp "Adresse" (Address) im Datenmodell des Bezugsobjekts im Ausführungskontext als Zielobjekt, sodass dessen Felder in Zuweisungen als Zielwerte genutzt werden können. |
|
Quellobjekt |
Die Wert-Konfiguration für das Quellobjekt ist optional. Im Beispiel (rechts) wird das Firmenkonto, das als "Besitzer" (ownerId) des Bezugsobjekts im Ausführungskontext gilt, als Quellobjekt herangezogen. Dessen Felder können daraufhin als Quellwerte in Zuweisungen genutzt werden. |
|
Zuweisungen |
Der Konfiguration können beliebig viele Zuweisungen über das Die erste Zuweisung kann nicht entfernt werden. Allerdings löscht das ►HINWEISE◄
►WICHTIG◄ Die Zuweisungen werden zur Laufzeit von oben nach unten abgearbeitet, sodass nicht auszuschließen ist, dass eine Änderung der Reihenfolge der Zuweisungen bei identischen Eingangsdaten unterschiedliche Ergebnisse produziert. |
|
►ANMERKUNG◄ Als Zielobjekt wurde hier gezielt das Firmenkonto gewählt und nicht nur dessen address-Feld, obwohl das den Zugriff auf die Quellwerte etwas vereinfacht hätte. Das komplette Firmenkonto als Quellobjekt ermöglicht es dafür, in Wert-Konfigurationen für Quellwerte in weiteren Zuweisungen auch Merkmale aus dem Firmenkonto auszuwerten, die nicht innerhalb der Adresse (address) enthalten bzw. als Attribut eingebunden sind (etwa die Aufzählungen "Firmentyp" und "Übergeordnete Firmen" oder das Feld "Meta-Firmentyp"). |
Beispiele
Typischer Anwendungsfall: Mapping von ausgewählten Feldwerten
Immer wenn ein neuer Benutzer (s. Benutzer) angelegt wird, sollen ausgewählte Adressmerkmale aus der Adresse der Firma der Session in dessen Adresse übernommen werden:
"Land" (countryCode)
"Postleitzahl" (zipcode)
"Stadt" (city)
Konfiguration:
Der Screenshot rechts zeigt die Konfiguration für eine Ereignisbehandlung, die auf das Auslösende Ereignis "Neu" (NEW) für alle Entitäten (s. Allgemein) reagiert. Als Prüfende Regel stellt deshalb eine Typprüfung, dass nur dann eine Ereignisbehandlung stattfindet, wenn ein "Benutzer" (User) neu angelegt wird. Wenn im Kontext einer Erfassungsmaske für Benutzer der Ribbon Button "Neu" betätigt wird, soll als einzige Aktion bei bestandener Regel eine Setze Werte-Ereignisaktion mit folgender Konfiguration ausgeführt werden:
►ANMERKUNG◄ Die übernommenen Daten erscheinen nach dem Klick auf "Neu" unmittelbar in der Erfassungsmaske, wo sie angezeigt und ggf. überarbeitet werden können. Ob das mit Daten "angereicherte" Benutzerkonto gespeichert wird oder nicht, bleibt dem Benutzer der Maske überlassen. |
|
Besonderer Anwendungsfall: Zugriff auf Quellobjekt, Zielobjekt und ein weiteres Bezugsobjekt
In Anlehnung an das vorherige Beispiel soll eine angemeldete Firma die Möglichkeit erhalten, mehrere Benutzer ausgehend von einer Liste im csv-Format per Batch-Import anzulegen.
Beim Erstellen des neuen Benutzerkontos sollen wiederum den Adressfeldern "Land", "Postleitzahl" und "Stadt" die entsprechenden Werte aus der Adresse der Firma der Session zugewiesen werden.
Zusätzlich soll dem Benutzerkonto im Adressfeld "Match code" ein Textwert zugewiesen werden, in dem der eindeutige "Benutzername" (username) mit dem Wert aus dem Adressfeld "Match code" (accMatchCode) der Firma der Session nach folgendem Schema verknüpft wird:
<username>@<company_address_accMatchCode>
Konfiguration:
Der folgende Screenshot zeigt, wie das Mapping aus dem vorherigen Beispiel erweitert werden kann, um es im Kontext einer Ereignisbehandlung wiederzuverwenden, die beim "Erstellen" (s. Allgemein) eines Benutzerkontos per Batch-Import ausgelöst wird.
►HINWEIS◄ Im Unterschied zum vorherigen Anwendungsfall, wo ein leeres Benutzerkonto vor der Anzeige der ungespeicherten Daten in einer Erfassungsmaske angereichert werden sollte, stellt der Batch-Import einige Daten (z. B. "Benutzername") für das zu erstellende Benutzerkonto aus der csv-Datei bereit. Im Kontext einer CREATE-Aktion wird beim Import automatisch das "Erstellen"-Ereignis ausgelöst. Eine Ereignisbehandlung, die auf dieses Ereignis reagiert, kann dann die zu speichernden Daten noch "überarbeiten". Die Prüfende Regel der Ereignisbehandlung kann per UND-Verknüpfung mit der unbedingt erforderlichen Typprüfung (s. oben) noch Nebenbedingungen vorgeben, die definieren, wann die Synchronisation der Adressdaten überhaupt greift.
Die Definitionen für Quellobjekt und Zielobjekt sowie die ersten drei Zuweisungen entsprechen exakt der Konfiguration aus dem vorherigen Beispiel.
Die vierte Zuweisung ist wie folgt aufgebaut:
Als Zielwert (links) verweist , analog zu den anderen Zuweisungen, ein Objekt-Feld-Wertauflöser das Feld "Match code" (accMatchCode) in der Adresse des Benutzerkontos, die als Zielobjekt definiert ist.
Den Quellwert (rechts) definiert ein Textverkettung-Wertauflöser mit drei Textkomponenten:
Die erste Textkomponente definiert eine Wertauflöserkette (s. Verketteter Wertauflöser):
Ein Variable-Wertauflöser auf das aktuelle Bezugsobjekt zu, das vom System über die entity-Variable bereitgestellt wird.
Der verkettete Objekt-Feld-Wertauflöser kann auf diesem Weg das Feld "Benutzername" (username) lesen, obwohl dieses nicht in der als Quellobjekt bereitgestellten Firmenadresse enthalten ist.
Die zweite Textkomponente ist das als statischer Text definierte Trennzeichen "@".
Die dritte Textkomponente greift auf das Feld "Match code" (accMatchCode) in der Adresse der Firma der Session zu, die als Quellobjekt definiert ist.
Besonderer Anwendungsfall: Liste mit Werten erzeugen
Für automatisierte Tests einer Schnittstelle sollen im Kontext einer Für jeden Eintrag wiederholen (Schleife) wiederholt zufällig bestimmte Geopositionen erzeugt und einer Variablen randomPosition zugewiesen werden.
Die einzelne Geoposition soll dabei als Liste von genau zwei Kommazahlen mit maximal drei Nachkommastellen definiert sein, von denen die erste den Breitengrad mit einem Wertebereich von ±90° und die zweite den Längengraf mit einem Wertebereich von ±180° angibt.
Konfiguration:
Der Screenshot rechts zeigt die Konfiguration für eine Setze Werte-Ereignisaktion, die eine zufällige Geoposition als "Tupel" (Liste von zwei Koordinaten) in der Variablen randomPosition bereitstellt:
►ANMERKUNG◄ Grundsätzlich wäre es zu empfehlen, anstelle einer Liste von anonymen Koordinaten eine Client-Objekt-Struktur mit zwei benannten Feldern (z. B. lat und lon) zu erzeugen, sodass keine ungeschriebene Konvention (erster Wert: Breitengrad, zweiter Wert: Längengrad) bekannt sein muss, um die Daten korrekt zu interpretieren. Allerdings soll hier demonstriert werden, wie flexibel und dynamisch die Setze Werte-Ereignisaktion zum "Erweitern" einer als Zielobjekt vorliegenden Liste genutzt werden kann. Ein Erzeuge Instanz mit Werten-Wertauflöser kann zwar auch gezielt Einträge einer erzeugten Liste über diskrete Indexwerte (0, 1, ...) als Zielwerte adressieren. Allerdings lässt sich ein dynamisches "Hinzufügen (am Ende)" dadurch nicht erreichen. |
|