Gestione degli errori mediante eventi di errore

Quando si progetta un processo o un servizio, fornire la logica per recuperare da possibili errori che potrebbero essere generati nell'applicazione di runtime.

Quando si sviluppa un'applicazione, creare la gestione degli errori in processi e servizi per effettuare le seguenti operazioni:
  • Rileva errori.
  • Specificare il modo in cui gli errori vengono generati e rilevati nell'ambiente di runtime.
  • Recuperare in modo prevedibile.
Ad esempio, se un processo implica il riempimento di ordini, un articolo potrebbe essere esaurito durante un'istanza del processo, causando un errore. La gestione degli errori integrata nel processo potrebbe creare notifiche per rifornire gli articoli esauriti.
Esistono tre tipi di eventi di errore:
  • Eventi di fine errore in processi e servizi che generano errori. È possibile assegnare codici di errore e dati di errore agli errori generati dagli eventi di fine errore.
  • Eventi intermedi di errore in processi e servizi che rilevano errori
  • Gli eventi di avvio degli errori nei sottoprocessi degli eventi dei processi che rilevano gli errori

Per rilevare errori specifici utilizzando gli eventi intermedi di errore, selezionare un codice di errore da un elenco di errori precedentemente definiti e associare i dati di errore a una variabile. Gli eventi intermedi di errore sono eventi di limite, il che significa che sono collegati al limite di un'attività. Ogni evento limite può essere attivato solo mentre l'attività è in esecuzione, interrompendo l'attività. Dal diagramma del processo o del servizio, è possibile utilizzare un evento intermedio di errore allegato al limite di un'attività per rilevare errori specifici e dati di errore da un processo collegato, un processo secondario o un servizio.

Un altro modo per rilevare gli errori è utilizzando gli eventi intermedi di errore nei servizi che rilevano tutti gli errori. Quando si crea il proprio servizio, è possibile collegare un evento intermedio di errore al limite di un passo per rilevare tutti gli errori per tale passo ed è possibile utilizzare un evento intermedio di errore come parte del servizio per rilevare tutti gli errori generati dai passi del servizio non gestiti dall'evento intermedio di errore al limite del passo.

Nei processi, è anche possibile rilevare gli errori utilizzando i sottoprocessi degli eventi di errore. Nel processo secondario, si utilizza un evento di avvio errore che rileva gli errori se l'evento di avvio viene attivato.

Tuttavia, si decide di rilevare gli errori, indicare il comportamento dell'errore per gli eventi nella scheda delle proprietà Generale nel diagramma in Proprietà evento:
  • Rileva tutti gli errori o gli errori specifici. Per rilevare errori specifici, è possibile selezionare il codice di errore, associare i dati di errore o entrambi, come descritto nei seguenti punti elenco.
  • Filtrare gli errori specifici rilevati selezionando un codice di errore da un elenco di tutti gli errori generati per il processo collegato, il sottoprocesso o il servizio.
  • Associare i dati di errore in una variabile selezionando una variabile di associazione errori precedentemente definita sulla scheda Variabili . Se il codice di errore è stato modificato, assicurarsi di selezionare nuovamente la variabile in modo che sia associata correttamente.
    Nota: i dati di errore non possono essere associati a una variabile di tipo elenco. Se si desidera passare informazioni che hanno la struttura di una sequenza come dati di errore, creare un oggetto di business che contiene un parametro di un tipo di elenco e quindi utilizzare questo oggetto di business come tipo di variabile.

Se sono presenti più eventi di errore definiti per rilevare gli errori per un errore generato in un processo, sottoprocesso o servizio collegato, l'evento di rilevamento è determinato dalle regole di precedenza nell'ordine in cui sono elencate nella tabella Componenti evento di errore .

Gli errori vengono rilevati nel seguente ordine nell'ambiente di runtime:
  1. Gli eventi limite rilevano gli errori generati dall'attività collegata, come descritto nella seguente tabella.
  2. Se non vi è alcun evento di limite di errore che gestisce l'errore e un processo secondario si trova in un processo o in un evento di errore intermedio non collegato in un servizio, gli errori vengono rilevati nei processi secondari dell'evento di errore, come descritto nella seguente tabella.
  3. Se non esiste alcun processo secondario dell'evento di errore che gestisce l'errore in un processo secondario dell'evento, in un processo collegato o in un servizio, gli errori vengono propagati al livello successivo.
Tabella 1. Componenti dell'evento di errore
Specificare Errori rilevati

codice di errore e dati di errore

Solo errori con lo stesso codice e tipo di dati

codice di errore

Errori con lo stesso codice, a meno che non siano già stati rilevati da un evento, come specificato dalla regola precedente

Dati dell'errore

Errori con lo stesso tipo di dati, a meno che non siano già rilevati da un evento, come specificato dalle regole precedenti

né codice né dati di errore

oppure

l'opzione Cattura tutti gli errori sulle proprietà di errore

Tutti gli errori non ancora rilevati da un evento, come specificato dalle precedenti regole

Nota: più eventi definiti nello stesso contesto e con gli stessi vincoli causano un comportamento di runtime non deterministico.

La specifica del nome della variabile nell'associazione controlla il filtro per tipo di dati di errore. Se il tipo di variabile e il tipo di dati di errore visualizzati nella scheda Proprietà non corrispondono, il tipo di variabile determina il comportamento.