Dem gesamten Workflow und jedem sequentiellen Block von Aktivitäten kann eine Aktivität System.FaultHandler zugeordnet werden. Diese ist keine normale Aktivität, es handelt sich eher um eine Workflow-Fehleransicht, d. h. Sie können Aktivitäten bei einem Fehler definieren, z. B. einen Hinweisdialog anzeigen.
Da jedem sequentiellen Block von Aktivitäten eine eigene Faulthandlers-Aktivität zugeordnet werden kann (und nicht nur dem gesamten Workflow) ist es möglich, eine hierarchische Fehlerbehandlung vorzunehmen. In gewissen Situationen ist sicher ein vollkommener Abbruch der aktuellen Workflow-Instanz beim Auftreten einer Ausnahme nicht notwendig und nicht gewollt. Nachdem die Faulthandlers-Aktivität die betreffende Ausnahme abgefangen hat, kann die Workflow-Ausführung anschließend mit der folgenden Aktivität fortgesetzt werden.
Für die Fehlerbehandlung gehen Sie folgendermaßen vor:
▪ Erstellen Sie mit der Aktivität SequenceActivity einen Aktivitätenblock.
▪ Öffnen Sie den Fehlerbehandlungsdialog über Rechtsklick auf einen Aktivitätenblock und Auswahl von "Fehlerhandler anzeigen".
Tipp: Um eine Fehlerbehandlung für den gesamten Workflow zu erstellen, öffnen Sie den Fehlerbehandlungsdialog über Rechtsklick auf das grüne Startsymbol.

▪ Ziehen Sie die Aktivität System.FaultHandler in die Aktivität faultHandlersActivity auf den Text "FaultHandlerActivity hier ablegen".


▪ Unter der Eigenschaft "FaultType" wählen Sie die Exception aus, auf die hier reagiert werden soll. Über die Schaltfläche "…" gelangen Sie in einen Dialog, in dem alle verfügbaren Standard-.NET-Ausnahmen zur Verfügung stehen. Für cRM-Aktivitäten wählen Sie immer die System.ArgumentNullException in der Assembly mscorlib aus.

▪ Nun fehlt noch die Aktivität, die im Fehlerfall ausgeführt werden soll. Ziehen Sie die gewünschte Aktivität (z. B. ZeigeHinweisFenster) in die Aktivität faultHandlerActivity auf den Text "Aktivitäten hier ablegen".

▪ Die Art des Fehlers ist durch die System.ArgumentNullException fest vorgegeben. Die Fehlermeldung kann aber durch Bindung an diese FaultActivity ausgelesen werden und somit z. B. in einem Hinweisfenster ausgegeben werden.

▪ Ziehen Sie bei Bedarf eine weitere Aktivität System.FaultHandler in die Aktivität faultHandlersActivity in das weiße Eingabefeld. Über die blauen Pfeil-Schaltflächen können Sie zwischen den verschiedenen FaultHandler-Aktivitäten wechseln.
Diese Fehleransicht dient als Container für eine beliebige Anzahl von FaultHandler-Aktivitäten. Jede dieser FaultHandler-Aktivitäten ist für das Behandeln genau einer Ausnahme zuständig und kann beliebig viele andere Aktivitäten aufnehmen. Diese Aktivitäten werden ausgeführt, wenn die entsprechende Ausnahme im Workflow auftritt. Zu beachten ist, dass diese Verarbeitung grundsätzlich asynchron stattfindet. Für fortgeschrittene Workflows gibt es u. a. die Möglichkeit mehrere Zweige parallel ausführen zu lassen, es wäre daher denkbar, dass gleichzeitig mehrere Ausnahmen auftreten, die dann auch gleichzeitig behandelt werden.
▪ Zurück zur Workflowansicht gelangen Sie über Rechtsklick auf den Aktivitätenblock und Auswahl von "Sequence anzeigen".

Beispiel: Zeige Hinweisfenster wenn Feldinhalt leer
▪ Wählen Sie im Workflow-Designer Datei > Neu.
▪ Ziehen Sie die Aktivität SequenceActivity auf den Arbeitsbereich um einen Aktivitätenblock zu erstellen.
▪ Ziehen Sie die Aktivität LiesFeldinhalt in die Aktivität SequenceActivity auf den Text "Aktivitäten hier ablegen".
▪ Im Toolfenster "Eigenschaften" geben Sie für die Eigenschaft "Feldname" den physikalischen Feldnamen der Telefonnummer an, z. B. "Phone". Der ausgelesene Wert wird automatisch in die Eigenschaft "Wert" geschrieben.
▪ Ziehen Sie die Aktivität RufeAn auf die Verknüpfung unterhalb der Aktivität LiesFeldinhalt.
▪ Im Toolfenster "Eigenschaften" geben Sie für die Eigenschaft "Telefonnummer" den Wert (das Resultat) der Vorgängeraktivität "LiesFeldinhalt" an. Dazu öffnen Sie über die Schaltfläche "..." den Bindungsdialog. Im oberen Bereich des Dialogs öffnen sie die Baumdarstellung und wählen die Eigenschaft "Value" der Aktivität "LiesFeldinhalt".
▪ Öffnen Sie die Fehlerbehandlungsansicht über Rechtsklick auf den Aktivitätenblock und Auswahl von "Fehlerhandler anzeigen".
▪ Ziehen Sie die Aktivität System.FaultHandler in die Aktivität faultHandlersActivity auf den Text "Aktivitäten hier ablegen". Unter der Eigenschaft "FaultType" wählen Sie die Ausnahme aus, auf die hier reagiert werden soll. Über die Schaltfläche "…" gelangen Sie in einen Dialog, in dem alle verfügbaren Standard-.NET-Ausnahmen zur Verfügung stehen. Wählen Sie die Ausnahme System.ArgumentNullException aus der Assembly mscorlib.
▪ Nun fehlt noch die Aktivität, die im Fehlerfall ausgeführt werden soll. Ziehen Sie die Aktivität ZeigeHinweisFenster in die Aktivität faultHandlerActivity auf den Text "Aktivitäten hier ablegen" und geben Sie in der Eigenschaft "Text" einen Hinweistext an, z. B. "Keine Telefonnummer vorhanden".
▪ Öffnen Sie die Workflowansicht über Rechtsklick auf den Aktivitätenblock und Auswahl von "Sequence anzeigen".