2013-10-26 30 views
0

我已經成功地將狀態機和應用書籤保存到狀態機中,並加載了多次。WF4:在哪裏完成持久狀態機?

但是當它們達到最終狀態時會發生什麼?

爲什麼在完成geting後將它們從persistence data store中刪除([System.Activities.DurableInstancing]。[InstancesTable])?

這是正常的還是我在堅持完成狀態機時犯了一個錯誤?

+0

爲什麼你需要那個? – Will

+0

@Will:我想知道這是一種正常行爲,或者我錯過了一些東西。爲什麼沒有人提到書籍或互聯網文章中的「完成的工作流將從持久性數據庫中刪除」? –

+0

他們爲什麼不呢?他們正在執行。存儲完成的工作流程會帶來什麼價值?與範圍完成後收集的變量相同。 – Will

回答

1

工作流是代碼。您使用更大的塊來定義邏輯,但它會執行並返回結果。它本身不是結果,而是

想象一下,你有一個類,有你調用的方法決定批准/拒絕。您將啓動該類,傳遞參數值,並讓代碼執行確定批准/拒絕。這段代碼執行後你做了什麼?

您不會存儲該方法的代碼,這是肯定的。你會存儲誰批准,誰被拒絕,並最終的結果。

所以,你不應該存儲工作流代碼但結果

我將通過創建自定義活動擴展NativeActivity,使用一個或多個workflow extensions與外界溝通發送有關批准或拒絕等待行動的通知完成這個工作流程的目標。一路上,我會記錄當我的書籤恢復執行時誰做了什麼。當工作流程完成時,我也會記錄最終結果。

+1

是的你是對的,我想把工作流的所有負擔! –