2009-07-06 44 views
0

我有一個Windows Workflow Foundation(3.0)狀態機,我需要某些狀態來根據狀態的年齡更改狀態。例如,當工作流程進入狀態X時,用戶需要在5天內採取行動。如果這還沒有完成,工作流程需要轉換到狀態Y.所以我想我想要的是一個具有EventDriven Activity來處理用戶操作的狀態,以及一個具有Delay活動的Sequence活動,它具有一個SetState活動如果用戶沒有及時處理它,則會導致狀態轉換。如何將序列導入到Windows工作流狀態機中?

國家不直接接受序列活動,所以我試圖把這個邏輯放在StateInitialization活動中,但它不允許延遲。我可以將延遲置於之前的狀態和另一個EventDriven活動,然後過渡到哪個狀態是合適的,但這並不符合業務流程。

有沒有一種方法可以在狀態機中完成,或者我應該使用順序工作流?

回答

1

您可以輕鬆地使用狀態機工作流程來實現此目的。

您需要將StateInitializationActivity和EventDrivenActivity放入您的狀態。 EventDrivenActivity接受一個延遲活動,在那裏超時後放置邏輯,例如設置另一個狀態。如果計時器比StateInitializationActivity中的活動早過,狀態將會改變。

+0

謝謝凱。我在這裏找到了相同的解決方案http://www.imason.com/blogs/jim_schwartz/archive/2008/12/15/repeating-a-state-machine-activity-indefinitely.aspx,它的工作原理(所以我使用它),但驅動EventDrivenActivity的事件是什麼?在我的應用程序的其餘部分中,我從網頁中觸發事件。這些事件然後由當前狀態下的相關活動處理。 – 2009-08-12 01:54:29