Wiki-Quellcode von Fehler behandeln


Zeige letzte Bearbeiter
1 {{figure image="error_handling_de.png" clear="h1"}}
2 Ein Fehlerbehandlungsblock mit Aktionen, die Fehler werfen können auf der linken Seite (1) und Aktionen, die im Falle eines Fehlers ausgeführt werden sollen, auf der rechten Seite (2). In diesem Beispiel soll in einen Status //Fehler beim Versenden von E-Mail// gewechselt werden, wenn ein Fehler beim Versenden einer E-Mail auftritt.
3 {{/figure}}
4
5 {{content/}}
6
7 Bei dem im Workflow-Designer als //Fehler behandeln// verfügbaren Fehlerbehandlungsblock handelt es sich um ein Steuerelement, mit dem auftretende Fehler behandelt werden können.
8
9 == Grundlagen ==
10
11 Jede [[Standard-Aktion>>doc:Formcycle.Designer.Workflow.Actions.WebHome]] in {{formcycle/}} kann Fehler werfen. Endet eine Verarbeitungskette in einem unbehandelten Fehler, wird der Workflow an dieser Stelle abgebrochen, der Vorgang als fehlerhaft markiert und es werden keine weiteren Verabeitungsketten mehr ausgeführt. Siehe auch die Hilfeseite zur [[Fehlerbehandlung>>Formcycle.Designer.Workflow.ErrorHandling]].
12
13 Um dies zu verhindern, können Fehler über Fehlerbehandlungsblöcke abgefangen werden. Für den Fall, dass ein Fehler eingetreten ist, können weitere im Fehlerbehandlungsblock definierte Aktionen ausgeführt werden.
14
15 Eine Alternative zum Behandeln von Fehlern mittels Fehlerbehandlungsblöcken ist die Verwendung von Ereignissen vom Typ [[Workflow-Fehler>>doc:Formcycle.Designer.Workflow.Events.WorkflowError]].
16
17 == Fehlerbehandlungblock ==
18
19 {{figure image="error_handling_adavanced_de.png" clear="h1"}}
20 Beispiel eines Fehlerbehandlungsblocks mit mehreren Bedingungen, durch welche je nach Fehlertyp unterschiedliche Stellen per E-Mail informiert werden.
21 {{/figure}}
22
23 Mittels Fehlerbehandlungsblock kann ein Fehler abgefangen werden. Wird ein Fehler mittels Fehlerbehandlungsblock behandelt, wird die Verarbeitungskette ingesamt als ordndungsgemäß abgearbeitet betrachtet, endet also nicht in einem Fehler.
24
25 Der Fehlerbehandlungsblock ist wie folgt aufgebaut:
26
27 * Auf der linken Seite befinden sich die Aktionen, welche normalerweise ausgeführt werden sollen. Sobald bei einer der Aktionen ein Fehler auftitt, wird die weitere Verarbeitung auf der linken Seite beendet und es werden stattdessen die auf der rechten Seite konfigurierten Aktionen ausgeführt.
28 * Auf der rechten Seite befinden sich die Aktionen, welche beim Auftreten eines Fehlers ausgeführt werden sollen.
29
30 Nachdem alle Aktionen im Fehlerbehandlungsblock ausgeführt worden sind beziehungsweise im Falle eines Fehlers die auf der rechten Seite konfigurierte Fehlerbehandlung durchlaufen wurde, wird die Verarbeitung am unteren linken Knoten fortgesetzt.
31
32 Durch die Verwendung von [[Bedingungsblöcken>>doc:Formcycle.Designer.Workflow.FlowControl.Condition]] innerhalb der Fehlerbehandlung eines Fehlerbehandlungsblocks kann geprüft werden, welche Art von Fehler aufgetreten ist. Dadurch ist es möglich, verschiedene Fehler in einem einzigen Fehlerbehandlungsblocks unterschiedlich zu behandeln.
33
34 Sollte in einer Aktion auf der rechten Seite des Fehlerbehandlungsblock ein unbehandelter Fehler auftreten, endet der gesamte Fehlerbehandlungsblock in einem Fehler und der Workflow wird abgebrochen. Fehlerbehandlungsblöcke können zudem verschachtelt werden, wodurch bei der Behandlung eines Fehlers auftretende andere Fehler abgefangen und ihrerseits behandelt werden können.
35
36 == Platzhalter ==
37
38 Sowohl im Fehlerbehandlungsblock als auch im Workflow-Fehler-Ereignis kann auf den aufgetretenen Fehler mittels [[Platzhaltern>>doc:Formcycle.UserInterface.Variables]] zugegriffen werden:
39
40 * [%$LAST_ERROR%]
41 * [%$LAST_ERROR_CODE%]
42 * [%$LAST_ERROR_MESSAGE%]
43 * [%$LAST_ERROR_NODE_NAME%]
44 * [%$LAST_ERROR_NODE_TYPE%]
45
46 Die Inhalte dieser Platzhalter unterscheiden sich zum Teil je nach Aktion und können in der Dokumentation der jeweiligen Aktion gefunden werden. Durch Auswertung der Werte dieser Platzhaltern ist es zum Beispiel möglich, mittels Bedingungen abhängig vom Fehlertyp unterschiedlich zu reagieren.