Wenn Dann Sonst
Ereignisaktion - Kurzfassung
Zweck: Wertet eine oder ggf. mehrere Regeln aus, um innerhalb einer Ereignisbehandlung eine Fallunterscheidung zwischen alternativen Blöcken von Ereignisaktionen zu ermöglichen.
Über die Ereignisaktion Wenn Dann Sonst kann abhängig von Regeln eine Fallunterscheidung bzw. die bedingte Ausführung von Aktionen in einer Ereignisbehandlung festgelegt werden.
Wie im folgenden Schema skizziert, kann die Fallunterscheidung ausgehend von einer einfachen Bedingung (WENN►DANN►AKTIONEN) über weitere Regeln im SONST-Teil modular erweitert werden, wobei mit jeder neuen (SONST-)WENN-Regel ein neuer Zweig mit eigenen Aktionen eröffnet wird.
Die Angabe einer Regel ist in jedem Zweig technisch optional. Allerdings gilt für einen Zweig ohne Regel als Standard "Statisch: Wahr" (s. Statische Regel), was weitere SONST-Zweige irrelevant macht. Insofern sollte nur im "finalen" SONST-Zweig auf eine Regel verzichtet werden.
Selbstverständlich kann die Wenn Dann Sonst bei Bedarf auch "verschachtelt", also innerhalb der Aktionen eines Zweigs einer anderen Wenn Dann Sonst-Ereignisaktion, eingesetzt werden.
Konfiguration
Im zugeklappten Zustand erscheint eine Wenn Dann Sonst-Ereignisaktion per Standard wie rechts oben zu sehen. Der Wert in der Beschriftung (hier: 0) weist per Standard die Anzahl der konfigurierten Zweige der Fallunterscheidung aus. Unterhalb ist eine gerade eingefügte Wenn Dann Sonst-Ereignisaktion aufgeklappt zu sehen, die anfangs ebenfalls noch keinen Zweig enthält. Der erste Zweig kann per Klick auf das |
|
Wenn der Fallunterscheidung ein erster Zweig hinzugefügt wurde, sind folgende Bedienelemente verfügbar:
|
|
►HINWEIS◄ In der Praxis kann es erforderlich sein, die Reihenfolge der Zweige in einer Wenn Dann Sonst-Ereignisaktion nachträglich zu verändern. Dies ist mit den Kontextmenüfunktionen zum "Ausschneiden" und "Einfügen" von Zweigen möglich.
Änderungen der Reihenfolge können aber auch per Drag & Drop in der Baumansicht der Ereignisbehandlung ausgeführt werden:
Der Screenshot rechts zeigt eine Wenn Dann Sonst-Ereignisaktion mit zwei Zweigen (WENN Firmenregel SONST-WENN Rollenregel). Der Screenshot unten zeigt einen Ausschnitt der Baumansicht für diese Konfiguration:
|
|
►HINWEIS◄ Die Reihenfolge der Zweige kann erhebliche Auswirkungen auf die Logik der Fallunterscheidung und sogar die Performanz der Ereignisbehandlung haben. Sofern es die Logik zulässt, sollten potenziell rechenintensive Prüfungen (z. B. eine Prüfung vorhanden) so weit rechts wie möglich in der Kette angeordnet werden. Sie werden dadurch ggf. "seltener" ausgeführt. |
|
Beispiele
Einfaches Anwendungsfall: Bedingtes Ausführen einer Aktion
Innerhalb einer Ereignisbehandlung soll eine bestimmte View (z. B. ein modaler Dialog) genau dann geöffnet werden, wenn sich der Anmeldekontext auf eine bestimmte Rolle ("Admin Kundenportal") bezieht.
Als WENN-Regel wird hier eine Rollenregel eingesetzt, die prüft, ob im anwendbaren Anmeldekontext (s. Rolle der Session) die ausgewählte Rolle "Admin Kundenportal" verwendet wird.
Im zugehörigen DANN-Zweig ist unterhalb die Aktion Öffne View (Aktion) eingehängt.
Komplexerer Anwendungsfall: Fallunterscheidung mit mehreren Zweigen
Das vorige Beispiel soll so erweitert werden, dass für die Rollen "Einfacher Benutzer" und "Anonymer Benutzer" eine spezifische View und für anderweitige Rollen nur ein einfacher Popup-Hinweis erscheint.
Der bereits bestehende Zweig (Regel und Aktion) kann über das Menüsymbol kopiert und als neuer SONST-Zweig eingefügt werden.
Danach können die Einstellungen für die Rollenregel und die DANN-Aktion für den kopierten Zweig (s. Screenshot) angepasst werden.
Es wird ein weiterer SONST-Zweig hinzugefügt, der keine WENN-Regel sondern nur die DANN-Aktion Hinweis anzeigen (Popup) beinhaltet.
►HINWEIS◄ Im Beispiel kann der angemeldete Benutzer zur selben Zeit immer nur eine bestimmte Rolle verwenden, so dass die Reihenfolge der Zweige mit den Regeln keine Rolle spielt. Wenn dagegen unterschiedliche voneinander unabhängige Kriterien geprüft werden, spielt die Reihenfolge der Zweige eine wichtige Rolle, da die Fallunterscheidung nur von links nach rechts abgearbeitet wird, solange keine der Regeln erfüllt ist.