2009-09-06 6 views

Répondre

6

pour flux de travail 4.0

Vous pouvez obtenir les signets de la WorkflowInstance

IEnumerable<BookmarkInfo> bookMarks = workflowInstance.GetAllBookmarks(); 

Seuls les signets actifs, c'est des signets qui attendent effectivement quelque chose sera répertorié. Dans un flux de travail séquentiel sans activités parallèles qui vous dira celui qui attend. Mais dans de nombreuses situations, il y aura plus d'un signet en attente de saisie. Vous ne pouvez pas dire lequel a causé un état d'idole.

Vous pourriez obtenir plus d'informations en accrochant quelque chose à l'événement WorkflowInstance.OnIdle. Ce n'est pas vraiment un vrai événement .NET, mais il accomplit la même chose. Cela ne vous dira pas exactement pourquoi vous avez atteint l'état de veille, mais j'espère que le moment venu vous en dira plus.

pour flux de travail 3.0

Je ne suis pas sûr que cela va aider, mais puisque vous avez un WorkflowInstance vous pouvez demander une collection d'objets WorkflowQueueInfo en appelant GetWorkflowQueueData(). La classe WorkflowQueueInfo vous indiquera quelles activités sont inscrites à la file d'attente et si la file contient des éléments. Une file d'attente vide avec des activités auxquelles vous êtes abonné peut vous montrer ce dont vous avez besoin. Ces activités attendent quelque chose mais il n'y a rien à faire. Cela devrait être le marque-page que vous recherchez.

+0

Désolé, j'ai oublié de préciser, c'est WF 4.0 dont je parle ... WorkflowInstance.GetWorkflowQueueData n'existe pas dans 4.0 – Adam

+0

Oh, désolé. J'aurais dû comprendre que tu voulais dire 4.0 quand tu as dit Bookmark. Je vais éditer la réponse. –

+0

Dans 4.0, où GetAllBookmarks() est-il défini? Je ne le vois pas sur System.Workflow.Runtime.WorkflowInstance. – lesscode

Questions connexes