2009-09-06 66 views
7

我已經創建了一個工作流,並通過WorkflowInstance.Run()運行它。 此工作流程有許多書籤,我希望能夠查詢哪個書籤負責當前的空閒狀態。如何查詢工作流實例的執行狀態

我該怎麼做?

感謝

回答

6

工作流4.0

您可以從WorkflowInstance獲得書籤

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

只有活動書籤,這是實際上是在等待着什麼將上市的書籤。在沒有並行活動的順序工作流程中,會告訴您正在等待的人員。但在很多情況下,會有多個書籤等待輸入。你不能說出哪一個造成偶像狀態。

您可能通過掛鉤WorkflowInstance.OnIdle事件來獲取更多信息。這不是一個真正的.NET事件,但它完成了同樣的事情。這並不能準確地告訴你爲什麼你進入空閒狀態,但希望知道時機會告訴你更多。

工作流3.0

我不知道這會幫助,但因爲你有一個WorkflowInstance可以通過調用GetWorkflowQueueData請它替WorkflowQueueInfo對象的集合()。 WorkflowQueueInfo類將告訴您哪些活動已訂閱到隊列以及隊列中是否有項目。訂閱了活動的空隊列可以顯示您需要的內容。這些活動正在等待某件事,但沒有任何事情要做。這應該是你正在尋找的書籤。

+0

對不起,我忘了澄清,這是我正在談論的WF 4.0 ... WorkflowInstance.GetWorkflowQueueData不存在於4.0 – Adam 2009-09-06 10:04:24

+0

哦,對不起。當你說書籤時,我應該知道你的意思是4.0。我會編輯答案。 – 2009-09-06 13:41:06

+0

在4.0中,GetAllBookmarks()的定義在哪裏?我沒有在System.Workflow.Runtime.WorkflowInstance上看到它。 – lesscode 2013-09-25 21:12:08

相關問題