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:

  1. Creare un gestore di annullamento a livello del flusso di lavoro, questo non è stato eseguito.
  2. 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?
È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top