Procedure migliori per i processi del flusso di lavoro in background
Questo argomento contiene procedure consigliate per creare e gestire i processi di flusso di lavoro in background.
Evitare cicli infiniti
È possibile creare logica in un flusso di lavoro in background che avvia un ciclo infinito, con spreco delle risorse server e influenza negativa sulle prestazioni. Un ciclo infinito si verifica in genere quando un flusso di lavoro in background è configurato per essere avviato quando una colonna viene aggiornata e l'aggiornamento della colonna viene eseguito nella logica del flusso di lavoro. L'azione di aggiornamento attiva lo stesso flusso di lavoro in backgroun che aggiorna la riga e attiva ripetutamente il flusso di lavoro in backgroun.
I flussi di lavoro creati includono la logica per il rilevamento e l'interruzione di cicli infiniti. Se un processo del flusso di lavoro in background viene eseguito più di un determinato numero di volte in una riga specifica in un breve periodo di tempo, il processo non viene eseguito e genera l'errore seguente: Il processo del flusso di lavoro è stato annullato perché il flusso di lavoro che lo ha avviato include un ciclo infinito. Correggere la logica del flusso di lavoro e riprovare. Il limite di tentativi è 16.
Utilizzare modelli di flusso di lavoro in background
Se sono presenti flussi di lavoro simili e si prevede la creazione di più flussi di lavoro che seguono lo stesso modello, salvare il flusso di lavoro in background come modello. In questo modo, la volta successiva in cui è necessario creare un flusso di lavoro simile, utilizza il modello per creare il flusso di lavoro in background ed evitare di immettere tutte le condizioni e le azioni partendo da zero.
Nella finestra di dialogo Crea processo scegli Nuovo processo da modello esistente (selezionare una voce dall'elenco).
Utilizzare flussi di lavoro figlio
Se si applica la stessa logica in flussi di lavoro o in diramazioni condizionali, definire tale logica come flusso di lavoro figlio in modo che non sia necessario replicare tale logica in ogni flusso di lavoro in background o diramazione condizionale. In questo modo la gestione dei flussi di lavoro è più semplice. Anziché esaminare più flussi di lavoro che possono applicare la stessa logica, è sufficiente aggiornare un unico flusso di lavoro.
Eliminare automaticamente i processi del flusso di lavoro in background completati
Per i flussi di lavoro in background (asincroni), è consigliabile selezionare l'opzione Elimina automaticamente processi del flusso di lavoro completati per risparmiare spazio su disco nella definizione del flusso di lavoro in background. La selezione di questa casella di controllo consente al sistema di eliminare i registri dei flussi di lavoro in background relativi alle esecuzioni completate per risparmiare spazio su disco. Si noti che i registri delle esecuzioni del flusso di lavoro in background non riuscite verranno sempre salvati per consentire l'individuazione e la risoluzione dei problemi.
Limitare il numero di flussi di lavoro che aggiornano la stessa tabella
L'esecuzione di più di un flusso di lavoro in background che aggiorna la stessa tabella può causare problemi di blocco della risorsa. Si immaginino numerosi flussi di lavoro in esecuzione dove ogni aggiornamento di opportunità attiva un aggiornamento dell'account associato. L'esecuzione di più istanze di questi flussi di lavoro che tentano di aggiornare la stessa riga di account contemporaneamente può determinare problemi di blocco della risorsa. Possono verificarsi errori nel flusso di lavoro in background e può venire registrato un messaggio di errore, ad esempio Timeout SQL: impossibile ottenere blocco su risorsa nome della risorsa.
Utilizzare le note per tenere traccia delle modifiche
Quando si modificano i flussi di lavoro, è opportuno utilizzare la scheda Note per tenere traccia delle operazioni eseguite e dei motivi relativi. per consentire ad altri di comprendere le modifiche apportate.
Passaggi successivi
Configurare i processi del flusso di lavoro in background
Monitorare e gestire i processi del flusso di lavoro in background