1 votes

Comment puis-je gérer la fin d'un flux de travail ?

J'ai mis en place un mécanisme de file d'attente comprenant une interface utilisateur pour l'exécution de certains types de flux de travail (WF 3.5), dans lequel je souhaitais inclure la possibilité pour un utilisateur d'annuler / de terminer le flux de travail. L'arrêt n'a pas besoin d'être synchrone, il suffirait de montrer que l'annulation est en cours et de permettre à l'utilisateur de rafraîchir l'état plus tard.

Jusqu'à présent, j'ai réussi à utiliser simplement la fonction de l'instance de flux de travail Terminer() pour interrompre le flux de travail, ce qui fonctionne parfaitement et même de manière synchrone, mais il semble que le flux de travail n'ait aucune chance de réagir à l'interruption. Ce que j'ai essayé, c'est :

  1. Créer un gestionnaire d'annulation au niveau du flux de travail, ceci n'a pas été exécuté.
  2. Créer un gestionnaire d'erreurs au niveau du flux de travail, avec le type d'erreur suivant WorkflowTerminatedException . Cela n'a pas été exécuté non plus.

En fait, il semble que l'arrêt signifie réellement l'arrêt immédiat du flux de travail, quelle que soit l'activité qu'il est en train de réaliser. Existe-t-il un moyen de :

  • Gérer la fin (avec la fonction Terminate()) d'une autre manière ? (peut-être des paramètres qui m'ont échappé)
  • Annuler le flux de travail de manière externe de telle sorte que son gestionnaire d'annulation ou son gestionnaire d'erreur soit exécuté, ce qui lui donne la possibilité de mettre de l'ordre, etc. ?

2voto

Rubens Farias Points 33357

Curieusement, j'y ai pensé plus tôt dans la journée.

Ce lien vous sera peut-être utile : Arrêt d'une construction > Annulation d'un flux de travail qui parle d'une approche possible.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X