Globale Ausnahmebehandlungsroutine zu einer Orchestrierung hinzufügen

Falls eine Ausnahmebedingung während der Laufzeit von einer der Aktivitäten in der Orchestrierung ausgelöst wird und eine globale Ausnahmebehandlungsroutine für eine Orchestrierung aktiviert wurde, dann wird die globale Verzweigung 'CatchAll' ausgeführt.

Informationen zu diesem Vorgang

Die Abbildung unten zeigt ein Beispiel für eine Orchestrierung:

Beispiel für eine Orchestrierung

Für dieses Beispiel gilt: Falls entweder die Aktivität Database Get Inserted oder die Aktivität Database Insert Rows fehlschlägt und eine Ausnahmebedingung auslöst, wird die Aktivität If..Then in der Verzweigung CatchAll ausgeführt.

Vorgehensweise

  1. Klicken Sie mit der rechten Maustaste auf das Startsymbol Startsymbol der Orchestrierung und wählen Sie im Menü die Option 'CatchAll'-Verzweigung hinzufügen aus. Die Verzweigung 'CatchAll' wird zur Orchestrierung hinzugefügt und folgende Variablen werden automatisch erstellt:
    • faultName - Während der Laufzeit enthält die Variable faultName den Namen der Ausnahmebedingung, die von der Aktivität in der Orchestrierung ausgelöst wurde.
    • faultData - Während der Laufzeit enthält die Variable faultData die Fehlernachricht, die zur Ausnahmebedingung gehört. Diese zusätzliche Informationen wird momentan nur für die Aktivitäten 'Web Services' zurückgegeben. Bei den Aktivitäten 'Web Services' enthält die Variable faultData den Fehler.
    • faultInfo - Während der Laufzeit gibt die Variable faultInfo folgende Knoten zurück:
      • name - Während der Laufzeit enthält der Knoten faultInfo/name den Namen der Ausnahmebedingung, die von der Aktivität in der Orchestrierung ausgelöst wurde. Der Knoten faultInfo/name weist den Typ 'xsd:QName' auf.
      • message - Während der Laufzeit enthält der Knoten faultInfo/message die Fehlernachricht, die zur Ausnahmebedingung gehört. Der Knoten faultInfo/message weist den Typ 'xsd:string' auf.
      • activityId - Während der Laufzeit enthält der Knoten faultInfo/activityId die Aktivitäten-ID, die die Aktivität, bei der die Ausnahmebedingung auftrat, eindeutig identifiziert. Der Knoten faultInfo/activityId weist den Typ 'xsd:int' auf.
      • activityName - Während der Laufzeit enthält der Knoten faultInfo/activityName den Namen der Aktivität, bei der die Ausnahmebedingung auftrat. Der Knoten faultInfo/activityName weist den Typ 'xsd:string' auf.
      • faultTime - Während der Laufzeit enthält der Knoten faultInfo/faultTime die Uhrzeit, zu der der Fehler auftrat. Der Knoten faultInfo/faultTime weist den Typ 'xsd:dateTime' auf.
      Anmerkung: Der Name der Ausnahmebedingung, die von einer Aktivität in der Variablen faultName und dem Knoten faultInfo/name zurückgegeben wurde, kann sich in einem künftigen Release ändern.
  2. Konfigurieren Sie die Verzweigung CatchAll, indem Sie die Aktivitäten von der Registerkarte Aktivitäten an die Verzweigung CatchAll übergeben, wie dies in der vorigen Abbildung dargestellt ist.

Ergebnisse

Anmerkung: Der Bereich der Variablen faultName, faultData und faultInfo ist auf die Verzweigung CatchAll beschränkt. Die Begrenzung des Bereichs bedeutet, dass die Gültigkeit dieses Werts nur innerhalb der Verzweigung CatchAll garantiert wird. Wenn Sie zum Beispiel eine Aktivität If...Then hinzufügen, die den Wert der Variablen faultName testet, dann muss die Aktivität If...Then innerhalb der Verzweigung CatchAll platziert werden, so wie dies in der vorigen Abbildung dargestellt ist.