幾年前(WF存在之前)我開發了一個自定義工作流引擎。它的工作方式如下:設計一個工作流程(稱爲定義),將特定類型的工作項目與該定義相關聯(例如:工作流程定義X流程小部件),並通過創建一個實例來處理該工作項目的各種狀態和轉換每個工作項目的定義。在Windows Workflow(WF)中,「工作項」的概念是如何表達的?
該工作項目實現了一個IWorkItem接口,該接口允許它作爲一種狀態機進行處理(例如,它具有當前狀態和一組方法,如Run,Stop,Pause等來控制它)。
在Windows工作流程中,您如何定義工作項目?它可以是一個在我的SQL Server數據庫中建模的自定義實體嗎?我必須給它任何特定的領域嗎?在我的代碼中代表它的對象是否必須實現特定的接口?它如何對基礎行數據的持久性/持久性做出反應?我如何輕鬆查詢數據庫以獲取我的實體狀態?
我們假設在工作流程中正在處理的項目是一加侖牛奶。我有一個牛奶桌,有carton_type,milk_id,exp_date等屬性。我想跟蹤一段時間以後某個加侖的進度。它可能有可能的狀態,如過期,消耗等。你能給我一些關於如何使用工作流程跟蹤這個對象/行的信息嗎? – udog 2012-07-18 01:15:44
您需要閱讀關於工作流持久性,更具體地說,您可以如何推廣屬性。使用你的例子,假設你已經安裝了提供的持久化數據庫,你可以提升你的牛奶的屬性,你可以在SQL的System.Activities.DurableInstancing.InstancePromotedProperties視圖中查詢。您可以編寫一個查詢來返回僅在2天內過期的牛奶,假設您已提升加侖的到期日期。 [這](http://msdn.microsoft.com/en-us/library/ee364726(VS.100).aspx)網站應該對你有所幫助 – Thelonias 2012-07-18 03:38:43
這是一個很好的開始,謝謝瑞安。 – udog 2012-07-18 22:00:43