Come posso gestire la cessazione di un flusso di lavoro?
-
20-09-2019 - |
Domanda
Ho implementato un meccanismo di accodamento compreso UI per l'esecuzione di determinati tipi di flussi di lavoro (WF 3,5), dove volevo includere una possibilità per un utente di annullare / terminare il flusso di lavoro. La terminazione non deve essere sincroni, sarebbe sufficiente a dimostrare che la cancellazione è in corso e fargli aggiornare lo stato in seguito.
Finora sono riuscito di utilizzare semplicemente la funzione del flusso di lavoro Terminate () per uccidere il flusso di lavoro, che funziona perfettamente e anche in modo sincrono, ma sembra che non sta dando il flusso di lavoro alcuna possibilità di reagire alla terminazione. Quello che ho provato è stato:
- Creare un gestore di annullamento a livello del flusso di lavoro, questo non è stato eseguito.
- Creare un gestore di guasto a livello del flusso di lavoro, con il tipo di errore di WorkflowTerminatedException . Questo non è stato eseguito sia.
In pratica sembra che la terminazione significa veramente uccidere immediatamente il flusso di lavoro non importa quello che sta facendo. C'è un modo per:
- Gestire la terminazione (con la funzione Terminate ()) in qualsiasi altro modo? (Forse alcune impostazioni che che ho perso)
- Annulla il flusso di lavoro esterno in modo tale che il suo gestore di annullamento o di gestione errori vengono eseguiti dandogli la possibilità di riordinare ecc?
Soluzione
Stranamente, stavo pensando a questo oggi in precedenza.
Forse a trovare questo link utile: Arresto di un accumulo> Annullamento di un flusso di lavoro come i suoi colloqui su una possibile approccio.