2009-09-06 6 views

Antwort

6

für Workflow 4.0

Sie die Lesezeichen aus dem WorkflowInstance

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

Nur aktive Lesezeichen bekommen, das ist Lesezeichen, die tatsächlich auf etwas zu warten sind, werden aufgelistet. In einem sequenziellen Workflow ohne parallele Aktivitäten, der Ihnen den zu erwartenden Vorgang mitteilt. Aber in vielen Situationen wird mehr als ein Lesezeichen auf Eingabe warten. Sie können nicht erkennen, welcher einen Idol-Status verursacht hat.

Sie könnten in der Lage sein, mehr Informationen zu erhalten, indem etwas bis zum WorkflowInstance.OnIdle Ereignisse Einhaken. Es ist kein echtes .NET-Ereignis, aber es erfüllt dasselbe. Das wird Ihnen nicht genau sagen, warum Sie den Leerlaufzustand erreicht haben, aber hoffentlich wissen Sie, dass das Timing Ihnen mehr sagt.

für Workflow 3.0

Ich bin mir nicht sicher, dass dies helfen wird, aber da Sie eine WorkflowInstance haben, können Sie es für eine Sammlung von WorkflowQueueInfo Objekte stellen durch GetWorkflowQueueData() aufrufen. Die WorkflowQueueInfo-Klasse teilt Ihnen mit, welche Aktivitäten für die Warteschlange abonniert sind und ob die Warteschlange Elemente enthält. Eine leere Warteschlange mit abonnierten Aktivitäten könnte Ihnen zeigen, was Sie brauchen. Diese Aktivitäten warten auf etwas, aber es gibt nichts zu tun. Das sollte das Lesezeichen sein, nach dem Sie suchen.

+0

Sorry, ich vergaß zu klären, ist dies WF 4.0, die ich im Gespräch bin ... WorkflowInstance.GetWorkflowQueueData leider nicht in der 4.0 – Adam

+0

Oh existieren, sorry. Ich hätte herausfinden sollen, dass du 4.0 gemeint hast, als du Bookmark gesagt hast. Ich werde die Antwort bearbeiten. –

+0

In 4.0, wo ist GetAllBookmarks() definiert? Ich sehe es nicht auf System.Workflow.Runtime.WorkflowInstance. – lesscode

Verwandte Themen