Ereignisaktion - Kurzfassung
Zweck: Legt ein neues Gastbenutzer-Konto an und führt danach optional konfigurierbare Ereignisaktionen aus.
Tooltip
Verwendung: Die "Konfiguration" definiert Werte für die (Pflicht-)Felder des neuen Gastbenutzerkontos, auf das in den "Dann-Aktionen" (oder später) über die Variable
createdGuestUserzugegriffen werden kann. Falls als Bezugsobjekt eine Entität vorliegt, wird im Gastbenutzerkonto automatisch eine "Whitelist-Restriktion" eingerichtet, die dafür sorgt, dass der Gastbenutzer keinen Zugriff auf andere Entitäten desselben Typs erhält.Parameter:
Die Parameter-Werte innerhalb der "Konfiguration" werden überwiegend direkt Feldern des neuen Gastbenutzer-Kontos zugewiesen.
Nur das Feld "Gültig bis" (absolutes Datum mit Zeit) wird relativ zum Ausführungszeitpunkt über den Parameter "Gültigkeit in Tagen" berechnet.
Ereignisaktionen im "Dann-Aktionen"-Block werden direkt nach der Neuanlage des Gastbenutzers ausgeführt. Erstellt bzw. gespeichert wird dieser aber erst am Ende der Transaktion.
Output: Neu angelegtes Gastebenutzer-Konto (in der Variable
createdGuestUser) mit einem automatisch erzeugten "Login-Token" im FeldloginToken.HINWEIS Der Ribbon-Makrobefehl "Gastbenutzer hinzufügen" stellt die per Popup eingegebene E-Mail-Adresse für den Gastbenutzer in der Variable
guestUserEmailAddressbereit.WARNUNG Das Erstellen des Gastbenutzers am Ende der Transaktion scheitert mit Fehler und Rollback, falls die Länge der im Feld
emailAddresszugewiesenen E-Mail-Adresse nach beidseitigem Trimmen nicht mindestens 5 Zeichen beträgt.

Die Ereignisaktion Gastbenutzer anlegen dient zum automatischen Anlegen eines neuen Gastbenutzer-Kontos (s. Gastbenutzer).
Das neue Gastbenutzer-Objekt wird unter Berücksichtigung der Konfiguration mit Zuweisungen für Merkmale des Kontos (s. folgender Abschnitt) parametriert.
Für das Feld "Login-Token" (
loginToken) wird automatisch ein eindeutiger Textschlüssel generiert (s. Gastbenutzer).Falls als Bezugsobjekt eine Entität vorliegt, wird im Gastbenutzerkonto automatisch eine "Gastbenutzer-Restriktion" eingerichtet, die den Zugriff auf Entitäten desselben Typs betreffen (s. "Besonderer Anwendungsfall: Gastbenutzer-Restriktion").
WICHTIG Das neue Gastbenutzer-Konto wird erst und nur dann wirklich erstellt, wenn die laufende Transaktion erfolgreich abgeschlossen, also nicht durch einen Fehler oder eine Abbrechen beendet wird. Da das neue Gastbenutzer-Konto sinngemäß zum Speichern am Ende der Transaktion vorgemerkt wird (s. a. Änderungen später speichern), wird der automatisch generierte Primärschlüssel im Feld "ID" (id) sofort zugewiesen. Erst mit dem Abschluss der Transaktion wird dann auch noch das Ereignis "Erstellen" für den neuen Gastbenutzer ausgelöst, für das weitere Ereignisbehandlungen greifen können.
Auf den volatilen Datenstand des neuen Gastbenutzer-Kontos können die unterhalb konfigurierbaren Dann-Aktionen bei Bedarf über die Variable createdGuestUser zugreifen. Deren Wert bleibt auch für nachfolgende Ereignisaktionen gültig.
Das Bezugsobjekt, in dessen Kontext die Ereignisaktion Gastbenutzer anlegen aufgerufen wurde, gilt dabei unverändert weiter.
Besonderer Anwendungsfall: Gastbenutzer-Restriktion
Wenn die Ereignisaktion Gastbenutzer anlegen mit einer Entität als Bezugsobjekt ausgeführt wird, wird dem angelegten Gastbenutzer automatisch eine Gastbenutzer-Restriktion (im Feld restrictions) hinzugefügt, die sich auf den Entitätstyp des Bezugsobjekts bezieht.
Die automatisch erstellte Gastbenutzer-Restriktion schränkt ausschließlich den Zugriff auf Entitäten ein, deren Entitätstyp (entityClass) mit dem Bezugsobjekt übereinstimmt. Dabei gilt:
Grundsätzlich besteht nur Zugriff auf eine bestimmte Entität, wenn dieser anhand der Rolle der Session und für die Firma der Session gewährleistet ist.
Sofern die ID (
id) einer Entität nicht in der "Whitelist-Einschränkung" der Gastbenutzer-Restriktion aufgeführt ist, gilt sie als nicht verfügbar. Per Standard verweist die "Whitelist" nur auf die ID des Bezugsobjekts.Falls ein Gastbenutzer aufgrund der verwendeten Rolle über die Berechtigung verfügt, Entitäten des betreffenden Typs zu erstellen, erhält er auch auf diese "selbst erstellten" Entitäten Zugriff.
Das Beispiel rechts zeigt das Konto eines Gastbenutzers im XML-Format, der über die Ereignisaktion Gastbenutzer anlegen im Kontext eines Bezugsobjekts vom Typ Bestellungen angelegt wurde:
| Beispiel für ein Gastbenutzerkonto mit Restriktion: |
HINWEIS Falls ein Gastbenutzer im Kontext einer Entität als Bezugsobjekt angelegt werden soll, für den die Gastbenutzer-Restriktion entfällt, kann diese z. B. über die Dann-Aktionen entfernt werden. Dazu muss nur dem restrictions-Feld per Setze Wert-Ereignisaktion der Wert "Kein Wert" zugewiesen werden.
Besonderer Anwendungsfall: Ribbonmakro-Befehl "Gastbenutzer hinzufügen"
Der Ribbonmakro-Befehl "Gastbenutzer hinzufügen" (s. Verfügbare Befehle) kann im Ribbon für einen beliebigen Kontext (z. B. in einer Übersicht oder Detailsicht für einen bestimmten Entitätstyp) eingebunden werden.
Zur Laufzeit kann dieser Befehl nur in Verbindung mit einer Einfachauswahl ausgeführt werden, um einen teilweise vordefinierten Workflow zu starten:
In einer Übersicht muss genau eine Zeile ausgewählt sein.
In einer Detailmaske müssen die Daten einer Entität angezeigt werden, die bereits erstellt also mindestens einmal gespeichert wurde.
In beiden Fällen wird mit der Auswahl als Bezugsobjekt der folgende Ablauf ausgelöst:
Der Ribbonmakro-Befehl "Gastbenutzer hinzufügen" kann per Klick auf einen Ribbon-Button ausgelöst werden. Das Beispiel rechts zeigt einen benutzerdefinierten Button für diesen Zweck. Dann erscheint zunächst der unterhalb abgebildete Dialog, der dem vom Benutzer die Eingabe einer E-Mail-Adresse für den neu anzulegenden Gastbenutzer verlangt. Ein Klick auf das "X"-Symbol rechts oben im Dialogtitel gilt als Abbruch des Ribbonmakros ohne weitere Auswirkungen. Ggf. nachfolgende Befehle in demselben Makro werden nicht ausgeführt. Ein Klick auf den Button "Erzeugen" löst das Ereignis "Gastbenutzer erzeugen" (s. Gastbenutzer (Ereignisse)) aus, dem das aktuelle Bezugsobjekt als Eingabewert und die im Dialog eingegebene E-Mail-Adresse als Wert einer Variablen HINWEIS Die Eingabe für die E-Mail-Adresse wird in keiner Weise validiert. Der Button "Erzeugen" kann auch betätigt werden, wenn keine Eingabe erfolgt ist. Dann enthält die Variable |
E-Mail-Adresse in Variable |
Sofern für das Ereignis "Gastbenutzer erzeugen" (s. Gastbenutzer (Ereignisse)) Ereignisbehandlungen konfiguriert sind, werden diese abgearbeitet. Typischerweise wird dabei die Ereignisaktion Gastbenutzer anlegen verwendet, um die Daten für einen neuen Gastbenutzer zu konfigurieren, dessen E-Mail-Adresse aus der Variablen Eine entsprechende Ereignisbehandlung könnte vor der Ereignisaktion Gastbenutzer anlegen noch Prüfungen für den Wert der Variablen
HINWEIS Sofern keine Ereignisbehandlung auf das ausgelöste Ereignis "Gastbenutzer erzeugen" reagiert, wird der Dialog kommentarlos und ohne weitere Auswirkungen geschlossen. Das ist auch dann der Fall, falls Ereignisbehandlungen ausgelöst werden, die fehlerfrei abgearbeitet werden, ohne dass die Ereignisaktion Gastbenutzer anlegen ausgeführt wird. |
▼ |
Sofern die Ereignisaktion Gastbenutzer anlegen als Reaktion auf das Ereignis "Gastbenutzer erzeugen" (s. Gastbenutzer (Ereignisse)) erfolgreich ausgelöst wird, erscheint beim Abschluss der Transaktion eine Meldung wie die rechts gezeigte. Diese gibt den automatisch erstellten Login-Token wieder, mit dem der angelegte Gastbenutzer sich am System anmelden kann. In der Regel sollte diesem dieser Token auch per E-Mail zugestellt werden. Dazu wird typischerweise die Ereignisaktion E-Mail-Versand im Kontext der Ereignisaktion Gastbenutzer anlegen ausgeführt. |
|
HINWEIS Das Bundle de.lobster.scm.base.security.guest.GuestUser beinhaltet u. a. die Sprachverwaltungseinträge für die hier gezeigten Dialoge, die bei Bedarf angepasst oder durch Firmenspezifische Sprachanpassungen übersteuert werden können.
Konfiguration
Die Konfiguration (rechts expandiert abgebildet) sieht folgende Parameter für Zuweisungen an das anzulegende Gastbenutzer-Konto vor:
|
|
Im Abschnitt Dann-Aktionen können per Klick auf das ANMERKUNG Ereignisaktionen, die als Dann-Aktionen konfiguriert werden, könnten in der Regel ebenso gut als Nachfolger unterhalb der Ereignisaktion Gastbenutzer anlegen angeordnet werden. Zugriff auf das Bezugsobjekt und die Variable | |
Beispiel
Im Kontext von Geschäftstransaktionsobjekten unterschiedlicher Typen soll im Ribbon ein Button angeboten werden, über den der Ribbonmakro-Befehl "Gastbenutzer hinzufügen" für die ausgewählte Entität ausgelöst werden kann.
Nach Angabe einer E-Mail-Adresse soll ein Gastbenutzerkonto angelegt und eine Nachricht mit einem Login-Link für dieses Gastbenutzerkonto an diese E-Mail-Adresse versendet werden. Der Betreff soll dabei Informationen aus dem Kontext des Geschäftsobjekts wiedergeben.
Das Gastbenutzerkonto soll ab sofort für 7 Tage gültig sein und in diesem Zeitraum eine unbegrenzte Anzahl von Anmeldungen mit einer zu diesem Zweck angelegten Rolle ("XF_GUEST") und im Kontext der Firma erlauben, die im ausgewählten Geschäftsobjekt als Auftraggeber angegeben ist.
ANMERKUNG Die folgende Konfiguration deckt gleichzeitig die beiden oben beschriebenen "besonderen Anwendungsfälle" ab. Die automatisch erstellte "Gastbenutzer-Restriktion" tritt dabei nicht in Erscheinung. Allerdings wird im angelegten Gastbenutzerkonto zur Laufzeit automatisch eine Restriktion erzeugt, die sich auf das als Bezugsobjekt vorliegende "Geschäftstransaktionsobjekt" bezieht. Die Einschränkung betrifft dabei die konkrete entityClass des Bezugsobjekts und nicht etwa alle Typen, die als "Geschäftstransaktionsobjekt" gelten. Erlaubt die dem Gastbenutzer zugeordnete Rolle z. B. den Zugriff auf Sendungen und Bestellungen, dann besteht für einen Gastbenutzer, der mit einer Sendung als Bezugsobjekt erzeugt wurde, nur Zugriff auf diese eine Sendung, während er auf alle Bestellungen Zugriff erhält, die ein regulärer Benutzer mit derselben Firma und Rolle sehen würde.
Konfiguration:
Für das Auslösende Ereignis "Gastbenutzer erzeugen" wird eine Ereignisbehandlung angelegt und wie recht abgebildet konfiguriert:
Die Aktionen bei bestandener Regel werden hier zunächst im Überblick vorgestellt. Für ausgewählte Konfigurationen folgen unterhalb die Details:
|
|
Die Konfiguration innerhalb der Ereignisaktion Gastbenutzer anlegen ist rechts aufgeklappt zu sehen:
|
|
Die Konfiguration für die Ereignisaktion E-Mail-Versand innerhalb der Dann-Aktionen ist rechts aufgeklappt dargestellt:
ANMERKUNG Die Nachricht wurde im Beispiel sehr kompakt gehalten und ohne Bezug zur Sprachverwaltung umgesetzt. Der Betreff und/oder der Mail-Body werden in der Praxis sicher auch Informationen zum Geschäftstransaktionsobjekt enthalten, das im Kontext der Dann-Aktionen als Bezugsobjekt anliegt. Außerdem sollte die in der Konfiguration (s. o.) für die Anmeldung des Gastbenutzers zugewiesene Sprache sicher auch mit Blick auf die Benachrichtigung berücksichtigt werden. In diesem Fall wäre ein Wertauflöser vom Typ Wert aus Sprachverwaltung zu empfehlen, über den auf einen Sprachverwaltungseintrag mit Parametern verwiesen wird, denen zur Laufzeit die entsprechenden Details aus dem Gastbenutzer oder dem Geschäftstransaktionsobjekt zugewiesen werden können. |
|
Laufzeitbeispiel: Das Beispiel rechts zeigt die Benachrichtigung die bei Eingabe der E-Mail-Adresse an "ben.utzer@doma.in" versendet wird. HINWEIS Typischerweise wird der Link im Mail-Body der Nachricht im Mail-Client anklickbar erscheinen, obwohl der Body content type |
|
▼






