Aggiunta di un gestore delle eccezioni globali in un'orchestrazione

Durante il runtime, se qualsiasi attività dell'orchestrazione genera un'eccezione ed è abilitato un gestore delle eccezioni globale, viene attivato il ramo CatchAll globale.

Informazioni su questa attività

La figura seguente mostra un'orchestrazione di esempio:

Un'orchestrazione di esempio

In questo esempio, se l'attività Database - Acquisisci elementi inseriti o Database - Inserisci righe non riesce e viene generata un'eccezione, viene eseguita l'attività If..Then nel ramo CatchAll.

Procedura

  1. Fare clic con il tasto destro del mouse sull'icona di avvio Icona di avvio dell'orchestrazione e, dal menu, selezionare l'opzione Aggiungi ramo CatchAll. Il ramo CatchAll viene aggiunto all'orchestrazione e vengono create automaticamente le seguenti variabili:
    • faultName - Durante il runtime, la variabile faultName contiene il nome dell'eccezione generata da un'attività nell'orchestrazione.
    • faultData - Durante il runtime, la variabile faultData contiene il messaggio di errore associato all'eccezione. Questa informazione aggiuntiva viene attualmente restituita soltanto per le attività Servizi Web. Per le attività Servizi Web, la variabile faultData contiene l'errore.
    • faultInfo - Durante il runtime, la variabile faultInfo restituisce i seguenti nodi:
      • name - Durante il runtime, il nodo faultInfo/name contiene il nome dell'eccezione generata da un'attività nell'orchestrazione. Il nodo faultInfo/name è di tipo xsd:QName.
      • message - Durante il runtime, il nodo faultInfo/message contiene il messaggio di errore associato all'eccezione. Il nodo faultInfo/message è di tipo xsd:string.
      • activityId - Durante il runtime, il nodo faultInfo/activityId contiene l'ID attività che identifica univocamente l'attività in cui si è verificata l'eccezione. Il nodo faultInfo/activityId è di tipo xsd:int.
      • activityName - Durante il runtime, il nodo faultInfo/activityName contiene il nome dell'attività in cui si è verificata l'eccezione. Il nodo faultInfo/activityName è di tipo xsd:string.
      • faultTime - Durante il runtime, il nodo faultInfo/faultTime contiene l'ora in cui si è verificato l'errore. Il nodo faultInfo/faultTime è di tipo xsd:dateTime.
      Nota: è possibile che il nome dell'eccezione restituita da un'attività nella variabile faultName e il nodo faultInfo/name verranno modificati in un release futuro.
  2. Configurare il ramo CatchAll trascinando le attività dalla scheda Attività nel ramo CatchAll, come mostrato nella precedente figura.

Risultati

Nota: l'ambito delle variabili faultName, faultData e faultInfo è limitato al ramo CatchAll. Tale limitazione di ambito significa che il valore di queste variabili viene garantito come valido soltanto all'interno del ramo CatchAll. Ad esempio, se si aggiunge un'attività If...Then che verifica il valore della variabile faultName, l'attività If...Then deve essere posizionata all'interno del ramo CatchAll come mostrato nella precedente figura.