Fehlerbehandlung innerhalb von Arbeitsabläufen
Allgemeine Fehlerbehandlung
Bei der Verwendung von Arbeitsabläufen ist die Fehlerbehandlung abhängig davon, wann ein Fehler auftritt:
Beim Starten: Tritt ein Fehler bzw. eine Exception beim Starten des Arbeitsablaufs auf, beispielsweise weil der Benutzer kein Recht zum Schalten der Transitionen eines Arbeitsablaufs besitzt, wird der Arbeitsablauf auf dem Objekt nicht gestartet.
Beim Schalten: Anders sieht es aus, wenn der Arbeitsablauf bereits gestartet wurde, und während des Schaltens einer Transition ein Fehler bzw. eine Exception auftritt. In diesem Fall, wird der Status vor dem Schalten der Transition, also der letzte fehlerfreie Status beibehalten. Ist innerhalb des Arbeitsablauf-Modells ein Fehler-Status definiert, befindet sich das Element nach dem Auftreten der Exception im Fehler-Status.
Fehler-Status
Es gibt viele Gründe für das Auftreten von Exceptions beim Ausführen eines Arbeitsablaufs, beispielsweise eine Fehlkonfiguration im Modell des Arbeitsablaufs oder ein Skriptfehler in einem angehängten Skript. Um diese Fehler zuverlässig abzufangen und zu verhindern, dass sich eine Instanz des Arbeitsablaufs nach dem Schalten einer Transition in einem inkonsistenten Zustand befindet, steht ein optionaler Fehler-Status innerhalb der Modellierung von Arbeitsabläufen zur Verfügung.
Hierzu muss lediglich im Arbeitsablauf-Modell ein Status-Element vom Typ „Fehler“ hinzugefügt werden (siehe Status Eigenschaften). Der Status wird anschließend im Modell mit einem roten Rand angezeigt.
Ein Beispiel zu einem Arbeitsablauf mit Fehlerbehandlung befindet sich im Kapitel Tutorials.
Eine Übersicht, über alle Instanzen des Arbeitsablaufs, die fehlerhaft ausgeführt wurden, bietet die Aufgabenliste:
Mit einem Klick auf die Tabellenbeschriftung „Status“ können die Aufträge nach ihrem aktuellen Status sortiert werden.
Jeder Arbeitsablauf kann nur einen Fehler-Status besitzen. Wird ein Status als Fehler-Status definiert, obwohl im Arbeitsablauf-Modell bereits ein Fehler-Status existiert, wird der erste Status automatisch auf den Typ „normal“ zurückgesetzt.