2

在我的項目中,我需要實現一個選項,用戶可以動態地更改工作流程,即運行時。更具體地說,如果一個工作流程通過一組活動,讓我們說活動A,B和C.然後用戶應該有一個改變流程的選項,例如,而不是從A-> B-> C,他們可以直接A-> C跳過B.並且流程中的這種改變應該在運行時發生。運行WF 4.0工作流程的動態更新

有超過3個活動(上面提到的A,B和C)活動可能會達到20-30,用戶應該有一個選擇去從事任何活動,或者你可以說用戶應該可以選擇在運行時編輯流。

請幫我解決這個問題,這個選項可以在Windows工作基礎(WF)中使用。

在此先感謝

回答

2

目前使用WF4,您無法更改正在運行的工作流實例的工作流定義。因此,必須在啓動它之前更改工作流程,或者在工作流程中使用條件邏輯爲工作流程建立可能的更改。

下一版本的工作流程將支持對運行工作流程的更改,但是何時可用將不明。只是不要期待它會很快。

1

捕捉的方式,工作流程可以訪問它,然後使用ifElse活動,如果你執行活動B或不決定用戶決定。

這只是正常的工作流程建模,除非我理解你的問題完全錯誤。

編輯:作爲對您的評論的迴應,可能會提出一個解決方案來滿足這一要求,但這樣做會非常難看,因爲它違背了工作流引擎的目的。

如果您將用戶的工作流視爲購物籃,只需選擇她喜歡的任何東西,那麼它就不再是一個工作流。至少應該有一些連貫的步驟,沒有意義的破壞。那麼將它們放入單獨的工作流程並讓用戶決定接下來要執行的工作流程也許是有道理的。

+1

是的,你錯了,有超過3個活動(上面提到的A,B,C)活動可能會達到20-30,用戶應該有一個選擇去從事任何活動,或者你可以說用戶應該有一個選項來在運行時編輯流。 – Everest 2010-12-17 10:29:01

0

我會考慮爲每個活動製作1個仿函數,並將活動存儲在列表中。該列表在運行時被修改。 「核心」只需解析列表並執行仿函數。

相關問題