Fallunterscheidung


Beispielskonfiguration für eine Fallunterscheidung. Hier wird ein Auswahlfeld gegen mehrere mögliche Werte geprüft und jeweils andere Aktionen ausgeführt. Ist keiner der konfigurierten Werte ausgewählt, werden die Aktionen ganz link im Rückfallzweig ausgeführt.

7.1.0+ 

Mit Steuerelementen vom Typ Fallunterscheidung kann der Ablauf der Verarbeitung in Abhängigkeit von Formularwerten und andere Inhalten durch die Verwendung von Platzhaltern beeinflusst werden. Diese Elemente erlauben es, den Workflow in mehrere Pfade aufzuteilen, je nachdem, ob ein konfigurierter Wert bestimmten Vergleichswerten entspricht.

Die Fallunterscheidung und die Bedingung sind sehr ähnlich. Beide können genutzt werden, um den Workflow zu verweigen. Die Bedingung eignet sich, wenn eine einzelne Bedingung auf ihren Wahrheitswert geprüft werden soll. Die Fallutnerscheidung erhöht die Lesbarkeit des Workflows, wenn etwa ein bestimmter Wert gegen viele Möglichkeiten verglichen werden soll.

Beispielsweise kann die Fallunterscheidung genutzt werden, um den Wert eines Auswahlfelds selAktivitaet zu prüfen und damit auf die Fälle Buch lesen, Rad fahren, Mittagsschlaf etc. unterschiedlich zu reagieren.

Konfiguration

Durch Klick auf das Kästchen mit dem kleinen Fragezeichen öffnet sich die Konfiguration für den Prüfwert. Hier wird der Wert eingetragen, der gegen die einzelnen Fälle geprüft werden soll.

Durch Klick auf das Kästchen eines der konfigurierten Fällen öffnet sich die Konfiguration für den Testwert. Hier wird der Wert eingetragen, gegen den der Prüftwert der Falllunterscheidung verglichen wird. Zudem wird ausgewählt, auf welche Art und Wert beide Werte verglichen werden. Für fortgeschrittene Anwendungsfälle können auch mehrere Testwert konfiguriert werden.

Ein Klick auf das Kästchen mit dem kleiner Fragezeichen öffnet die Konfiguration für den zu prüfenden Wert. Hier wird der Prüfwert eingetragen, auf welche die Fallunterscheidung angewandt werden soll, der also gegen die verschiedenen Fälle geprüft wird.

Ein Klick auf eines der Kästchen der einzelnen Fälle öffnet die Konfiguration für diesen Fall. Hier wird der Testwert eingetragen. Zudem wird ausgewählt, wie der Testwert gegen den Prüfwert verglichen wird. Standardmäßig wird auf Gleichheit geprüft, es sind aber auch andere Vergleiche wie etwa größer gleich oder ungleich möglich. Weitere Fälle werden durch Klick auf das Plus-Symbol ( ) hinzugefügt, bestehende Fälle durch Klick auf das Papierkorb-Symbol ( ) gelöscht. Zudem ist es via Drag&Drop möglich, die Reihenfolge der einzelnen Fälle zu ändern.

Bei Bedarf kann der Prüfwert auch gegen mehrere Testwerte verglichen werden (Mehrfachbedingung). Die Konfiguration ist hierbei analog zur Bedingung, siehe die Hilfeseite zur Bedingung für nähere Informationen.

Für jeden der einzelnen Fälle können dann Workflow-Aktionen hinzugefügt werden, welche in diesem Fall ausgeführt werden soll. Schließlich gibt es ganz links noch den Rückfallzweig. Hier können die Aktionen eingefügt werden, welche ausgeführt werden sollen, falls keiner der Fälle zutrifft.

Ausführung

Manchmal ist es notwendig, genau zu wissen, was bei der Fallunterscheidung passiert. Konkret läuft die Ausführung der Fallunterscheidung wie folgt ab:

  • Vergleiche den Prüfwert mit den Testwerten der einzelnen Fälle. Hieraus ergibt sich eine Liste aller zutreffenden Fälle.
  • Falls die Liste der zutreffenden Fälle nicht leer ist
    • Gehe von links nach rechts (wie im Workflow konfiguriert) die einzelnen Fälle durch und führe die im jeweiligen Fall konfigurierten Aktionen aus.
    • Endet eine Aktion in einem unbehandelten Fehler, werden die verbleibenden Fälle nicht mehr ausgeführt und der Fehler nach oben weitergereicht.
  • Falls die Liste der zutreffenden Fälle leer ist:
    • Führe die Aktionen des Rückfallzweigs aus.

Inbesonders bedeutet dies also, dass wenn mehrere Fälle gleichzeitig zutrefen, dann alle Fälle ausgeführt werden -- und zwar geordnet von links nach rechts wie im Workflow konfiguriert.