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.
Dieses Steuerelement entspricht einer sogenannten try-catch-Anweisung aus der strukturierten Programmierung.
INHALTSVERZEICHNIS |
Grundlagen
Jede Standard-Aktion 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.
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.
Eine Alternative zum Behandeln von Fehlern mittels Fehlerbehandlungsblöcken ist die Verwendung von Ereignissen vom Typ Workflow-Fehler.
Fehlerbehandlungsblock
Mittels Fehlerbehandlungsblock kann ein Fehler abgefangen werden. Wird ein Fehler mittels Fehlerbehandlungsblock behandelt, wird die Verarbeitungskette insgesamt als ordnungsgemäß abgearbeitet betrachtet, endet also nicht in einem Fehler.
Der Fehlerbehandlungsblock ist wie folgt aufgebaut:
- Auf der linken Seite befinden sich die Aktionen, welche normalerweise ausgeführt werden sollen. Sobald bei einer der Aktionen ein Fehler aufritt, wird die weitere Verarbeitung auf der linken Seite beendet und es werden stattdessen die auf der rechten Seite konfigurierten Aktionen ausgeführt.
- Auf der rechten Seite befinden sich die Aktionen, welche beim Auftreten eines Fehlers ausgeführt werden sollen.
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.
Durch die Verwendung von Bedingungsblöcken 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.
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.
Abschlussblock
8.4.0
Über das kleine Stern-Icon (*) oben am roten Fehler-icon kann ein Abschlussblock zum Fehlerbehandlungs-Steuerelement hinzugefügt werden. Der Abschlussblock wird immer nach den anderen Aktionen ausgeführt, egal, ob diese erfolgreich waren oder nicht. Im Gegensatz zum Fehlerblock werden mögicherweise aufgetretene Fehler aber nicht abgefangen, sondern nach Ausführung der Aktionen erneut geworfen.
Der Abschlussblock entspricht dem sogenannten "finally"-Block einer try-catch-finally-Anweisung in der strukturierten Programmierung und verhält sich auf gleiche Weise.
Im obigen Beispiel wird eine Datenbank-Abfrage (Aktion DB) ausgeführt, im Fehlerfall eine E-Mail (Aktion Mail) an intern verschickt und abschließend immer ein Protokolleintrag (Aktion PE) angelegt. Es gibt dann folgende Fälle, die bei der Ausführung auftreten können:
- DB ist erfolgreich. Mail wird nicht ausgeführt. Abschließend wird PE erfolgreich ausgeführt.
- Der Workflow ist erfolgreich.
- DB ist erfolgreich. Mail wird nicht ausgeführt. Abschließend wird PE fehlerhaft ausgeführt.
- Der Workflow schlägt fehl mit dem Fehler von PE.
- DB schlägt fehl. Mail wird erfolgreich ausgeführt. Abschließend wird PE erfolgreich ausgeführt.
- Der Workflow ist erfolgreich.
- DB schlägt fehl. Mail wird erfolgreich ausgeführt. Abschließend wird PE fehlerhaft ausgeführt.
- Der Workflow schlägt fehl mit dem Fehler von PE.
- DB schlägt fehl. Mail schlägt fehl. Abschließend wird PE erfolgreich ausgeführt.
- Der Workflow schlägt fehl mit dem Fehler von Mail.
- DB schlägt fehl. Mail schlägt fehl. Abschließend wird PE fehlerhaft ausgeführt.
- Der Workflow schlägt fehl mit dem Fehler von PE.
Platzhalter
Sowohl im Fehlerbehandlungsblock als auch im Workflow-Fehler-Ereignis kann auf den aufgetretenen Fehler mittels Platzhaltern zugegriffen werden:
- [%$LAST_ERROR%]
- [%$LAST_ERROR_CODE%]
- [%$LAST_ERROR_MESSAGE%]
- [%$LAST_ERROR_NODE_NAME%]
- [%$LAST_ERROR_NODE_TYPE%]
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.
War dieser Artikel hilfreich?
Das ist großartig!
Vielen Dank für das Feedback
Leider konnten wir nicht helfen
Vielen Dank für das Feedback
Feedback gesendet
Wir wissen Ihre Bemühungen zu schätzen und werden versuchen, den Artikel zu korrigieren