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 (WENNDANNAKTIONEN) ü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.

images/download/attachments/201663456/image2018-7-31_11_18_10-version-1-modificationdate-1742405362577-api-v2.png

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 images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg -Symbol angelegt werden.

images/download/attachments/201663456/image2021-4-27_7-1-44-version-1-modificationdate-1742405362524-api-v2.png

Wenn der Fallunterscheidung ein erster Zweig hinzugefügt wurde, sind folgende Bedienelemente verfügbar:

  • Der Platzhalter für eine WENN-Regel (1), wo ein Klick auf images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg die Auswahl aus den verfügbaren Regeltypen ermöglicht.

  • Der Platzhalter für DANN-Aktionen (2), wo per Klick auf images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg Ereignisaktionen hinzugefügt werden können.

  • Der Platzhalter für den SONST-Zweig (3), wo per Klick auf images/s/-95e2zf/9012/8yg2g7/_/images/icons/emoticons/add.svg ein weiterer Zweig (mit Regel und Aktionsblock) hinzugefügt werden kann.

  • Das Menüsymbol (4), über Funktionen zum "Kopieren", "Ausschneiden" und "Einfügen" des kompletten Zweigs verfügbar sind (soweit anwendbar). Ein bestehender Zweig kann so z. B. kopiert und über das Kontextmenü des Platzhalters für den SONST-Zweig (3) eingefügt werden.

images/download/attachments/201663456/image2021-4-27_7-16-32-version-1-modificationdate-1742405362516-api-v2.png

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:

images/download/attachments/201663456/image-2025-3-19_18-55-47-version-1-modificationdate-1742406946814-api-v2.png

  • Der Knoten für die Firmenregel ist in der Baumansicht selektiert.

images/download/attachments/201663456/image-2025-3-19_18-56-27-version-1-modificationdate-1742406986919-api-v2.png

  • Wenn in Baumansicht der Knoten für den Zweig mit der Firmenregel per Maus gezogen und unterhalb dem Knoten mit der Rollenregel abgelegt wird, tauschen die korrespondierende Zweige im Flussdiagramm (rechts) die Plätze. Per Drag & Drop wurde also aus dem DANN-Zweig ein (SONST-)WENN-Zweig und umgekehrt.

images/download/attachments/201663456/image-2025-3-20_13-41-56-version-1-modificationdate-1742474515956-api-v2.png


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.

images/download/attachments/201663456/image-2025-3-19_19-0-51-version-1-modificationdate-1742407251323-api-v2.png

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.

images/download/attachments/201663456/image-2025-3-19_18-35-39-version-1-modificationdate-1742405738359-api-v2.png

  • 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.

images/download/attachments/201663456/image-2025-3-19_18-40-48-version-1-modificationdate-1742406048215-api-v2.png

  • 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.