2010-01-20 50 views
1

我正在尋求一些關於在集成解決方案中使用Windows Workflow 4的明確信息 - 特別是關於重新託管設計器和執行工作流程由例如創建。一個商業用戶。重新託管WF4設計器 - 如何保存並執行通過重新主辦的設計器創建的工作流程

意圖是創建所需的自定義活動並將其編譯爲一個dll,然後將該應用程序與重新主辦的設計器一起部署,從而允許業務用戶創建/配置使用這些活動的工作流 - 然後,業務用戶將將工作流保存爲XAML,該XAML可以存儲在應用程序已知的位置(數據庫,文件系統等)中,然後當應用程序需要執行工作流時,可以使用XamlServices.Load從具體位置並將其作爲DynamicActivity執行?

如何保存工作流程以便稍後使用屬性和其他配置值對其進行反序列化?我試着反序列化保存在設計器外的Xaml文件,並使用XamlServices.save()。

使用書籤/持久性時是否存在任何潛在的問題?

作爲一個相關的問題,有沒有簡單的方法可以在工作流中「返回」,而無需在每個流程圖元素上定義返回分支?我正在考慮將用戶界面的工作流程與用戶界面進行整合,以便輸入wf將要處理的響應,並根據輸入做出決定。通過用戶界面,用戶應該能夠「回到」以前的輸入。

回答

2

您可以使用ActivityXamlServices.Load(路徑)加載XAML文件。它將返回一個Activity,實際上是一個DynamicActivity,並且您可以使用WorkflowApplication來運行它。

查看my blog post作爲例子。

+0

感謝Maurice,自從WF4 Beta 1以來,我已經非常密切地關注您的帖子,並且您提供了大量有用的見解和提示 - 特別是在此階段「官方」指導的數量有限。按照您的示例,我實際上已經開始正在運行一個正在運行的示例,並且可以在重新主辦的設計器中進行編輯,並使用單獨的主機運行。您是否認爲建議工作流相對獨立,並使用消息傳遞/ WCF與其他應用程序領域進行通信? (即不直接在另一個應用程序集上使用InvokeMethod)? AppFabric似乎暗示了這一點。 – hitch 2010-01-20 22:32:04

+1

不確定這是否總是最好的方法,實際上我懷疑它,但是MS似乎在以這種方式推動我們。使用WorkflowServiceHost爲我們提供了最大的便利,特別是當涉及到長時間運行的工作流程時。從我讀到的有關AppFabrik WCF的文章中可以找到答案。 現在我認爲那裏肯定有其他通信/託管東西的地方,所以不要忽略WorkflowApplication和書籤。 – Maurice 2010-01-21 09:24:06

+0

在我的情況下,我的workflow.xaml駐留在服務器中,只能通過WCF服務訪問。通過讀取數據庫或WCF將工作流重新放入工作流設計器的任何樣本? – 2014-07-28 18:40:57

相關問題