2011-05-27 33 views
0

我正在嘗試製作發票處理工作流程,並且涉足WF4的System.Activities.Rules部分,而且我很喜歡它。不過,我想從規則的出發點出發,而不是先踢一個活動。如何使用WF4規則來運行WF4活動

像這樣

發票進來的集合=發票

每張發票把它放在一個信封至極將包含工作流的元數據般的地位,nextActivity等

扔在一組的包絡規則,如果條件匹配設置下一個活動與一組這樣的參數,IF客戶ID = XYZ然後setNextActivity(SplitInvoiceActivity(Customer1,Customer2,Percentage))

然後活動將發票分成兩張發票並將其放回到循環中,當沒有規則適用時,我們將信封狀態設置爲「已處理完成」之類的狀態並退出。

我將如何使用WF4活動對此進行建模? 我應該從nativeActivity,CodeActivity等派生出什麼類型的活動。

Thx提前!

回答

0

System.Activities.Rules命名空間來自哪裏? WF4中沒有這樣的東西。 WF3中有一個System.Workflow.Activities.Rules命名空間,但它與WF4完全無關。有一些關於如何在兩種技術之間進行互操作的示例,並在WF4工作表中使用WF3規則引擎,但我不能真正推薦這種方法。

關於你的活動基類行動。通常從CodeActivity中派生出一些簡單的活動來完成一些工作。只有當您需要由多個子活動組成的更強大的活動或需要長時間運行並創建書籤時,才需要使用NativeActivity。也就是說,您可以隨時使用NativeActivity,因爲CodeActivity中不存在您無法在NativeActivity中執行的任何操作,並且也沒有真正的性能差異。

+0

嗨,thx回答!我現在不知道System.Workflow.Activities.Rules純粹是Wf3。那麼真正的問題將是。我將如何使用Wf3規則來踢一些Wf4活動?我應該在Wf4中使用他的新狀態機,然後創建som CodeActivities,然後檢查然後檢查規則,然後設置下一個狀態? – Stefan 2011-05-29 06:13:22

+0

如果使用狀態機或流程圖確實取決於工作流的其餘部分以及如何建模。根據規則的複雜性,您可以在CodeActivity或複合活動中對其進行編碼。 CodeActivity更容易處理複雜的規則,但複合活動更適合向業務分析師展示正在發生的事情。 – Maurice 2011-05-29 12:05:04

+0

Thx我將嘗試創建一個startActivity,然後從中讀取要處理的下一個Invoice的codeActivity,然後根據規則檢查它。我將使用WFSamples中包含的外部化規則集db示例來存儲規則。規則將直接在發票對象上執行一些簡單的操作,或踢一些將執行操作的活動。 – Stefan 2011-05-30 06:35:15