Wiki-Quellcode von Fallunterscheidung


Zeige letzte Bearbeiter
1 {{figure image="workflow_node_switch_sample_config_de.png" width="600" clear="h1"}}
2 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.
3 {{/figure}}
4
5 {{figure image="workflow_node_switch_config_switch_value_de.png" width="400" clear="h1"}}
6 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.
7 {{/figure}}
8
9 {{figure image="workflow_node_switch_config_case_value_de.png" width="400" clear="h1"}}
10 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.
11 {{/figure}}
12
13
14 {{content start="1"/}}
15
16 Seit Version {{version major="7" minor="1"/}} verfügbar.
17
18 Mit Steuerelementen vom Typ //Fallunterscheidung// kann der Ablauf der Verarbeitung in Abhängigkeit von Formularwerten und andere Inhalten durch die Verwendung von [[Platzhaltern>>doc:Formcycle.UserInterface.Variables]] beeinflusst werden. Diese Elemente erlauben es, den Workflow in mehrere Pfade aufzuteilen, je nachdem, ob ein konfigurierter Wert bestimmten Vergleichswerten entspricht.
19
20 Die Fallunterscheidung und die [[Ja-Nein-Bedingung>>doc::Formcycle.Designer.Workflow.FlowControl.Condition]] sind sehr ähnlich. Beide können genutzt werden, um den Workflow zu verzweigen. Die //Ja-Nein-Bedingung// eignet sich, wenn die Vergleichswerte in unterschiedlichen Konstellationen zutreffen oder nur eine Bedingung abgefragt wird. Die //Fallunterscheidung// erhöht die Lesbarkeit des Workflows, wenn etwa Werte gegen viele Möglichkeiten verglichen werden sollen und damit auch unterschiedliche Aktionen für die zutreffenden Fälle ausführen. Die genaue [[Ausführungsreihenfolge >>doc:||anchor="HAusfFChrung"]]wird weiter unten nochmal genauer beschrieben.
21
22 Beispielsweise kann die Fallunterscheidung genutzt werden, um den Wert eines Auswahlfelds //selAktivitaet// zu prüfen und damit auf die Fälle //Sport//, //Lesen//, etc. unterschiedlich zu reagieren.
23
24 == Konfiguration ==
25
26 Ein Klick auf das Kasten mit dem kleinen Fragezeichen öffnet die Konfiguration für den zu prüfenden Wert. Hier wird der **Prüfwert** eingetragen, auf welche die Fallunterscheidung angewandt werden soll, also das Feld welches gegen die verschiedenen Fälle geprüft wird.
27
28 (% id="cke_bm_297S" style="display:none" %) (%%)Weitere Fälle werden durch Klick auf das Plus-Symbol ({{icon name="plus"/}}) hinzugefügt, bestehende Fälle durch Klick auf das Papierkorb-Symbol ({{icon name="trash"/}}) gelöscht. Ein Klick auf eines der Kästchen der einzelnen Fälle öffnet die Konfiguration für diesen Fall. Hier wird der **Vergleichswert **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. Zudem ist es via Drag&Drop möglich, die Reihenfolge der einzelnen Fälle zu ändern.
29
30 Bei Bedarf kann der Prüfwert auch gegen mehrere Testwerte verglichen werden (Mehrfachbedingung). Die Konfiguration ist hierbei analog zur Ja-Nein-Bedingung, siehe die [[Hilfeseite zur Ja-Nein-Bedingung>>doc::Formcycle.Designer.Workflow.FlowControl.Condition]] für nähere Informationen.
31
32 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.
33
34 == Ausführung ==
35
36 Manchmal ist es notwendig, genau zu wissen, was bei der Fallunterscheidung passiert. Konkret läuft die Ausführung der Fallunterscheidung wie folgt ab:
37
38 * Vergleiche den Prüfwert mit den Testwerten der einzelnen Fälle. Hieraus ergibt sich eine Liste aller zutreffenden Fälle.
39 * Falls die Liste der zutreffenden Fälle nicht leer ist
40 ** Gehe von links nach rechts (wie im Workflow konfiguriert) die einzelnen Fälle durch und führe die im jeweiligen Fall konfigurierten Aktionen aus.
41 ** Endet eine Aktion in einem unbehandelten Fehler, werden die verbleibenden Fälle nicht mehr ausgeführt und der Fehler nach oben weitergereicht.
42 * Falls die Liste der zutreffenden Fälle leer ist:
43 ** Führe die Aktionen des Rückfallzweigs aus.
44
45 Dies bedeutet also, wenn mehrere Fälle gleichzeitig zutreffen, dann werden //alle// Fälle ausgeführt. Und zwar geordnet von links nach rechts wie im Workflow konfiguriert.