我有一个简单的业务工作流程,具有以下条件
- 用户需要使用设计器更改工作流程本身
- 工作流程是一个长时间的rinning工作流程,所以会被序列化
有没有办法自动执行不同工作流程序集的版本控制任务?
我有一个简单的业务工作流程,具有以下条件
有没有办法自动执行不同工作流程序集的版本控制任务?
不同工作流程序集的版本控制不是一项简单的任务,并且有很多复杂性。在这里,您可以找到一系列与此相关的帖子。
您可以在自己的应用程序中重新托管 WF 设计器,以让最终用户更改工作流程。当您托管设计师时,您几乎可以控制他们可以做什么。例如,您可以阻止他们删除或禁用活动,只允许他们在工作流的预定义区域中添加特定的新活动。最好的方法是将这些工作流保存为 XOML 文件并以此方式启动它们。这确实意味着您不能将代码添加到工作流本身,但您可以自由定义从 SequentialWorkflowActivity(或状态等效项)派生的工作流基类并将其用作工作流基类。这允许您添加代码和属性。例如,您仍然可以添加 CodeActivity,但需要链接到基类中的代码。
工作流程序列化或所谓的脱水与正在运行的工作流程一起使用,以将它们保存到磁盘。这使用标准的 .NET 二进制序列化,并且由于工作流的长期运行性质,可能会很棘手。但是,一旦您知道要寻找什么,就没什么大不了的。有关一系列博客文章的开头,请参阅http://msmvps.com/blogs/theproblemsolver/archive/2008/09/10/versioning-long-running-workfows.aspx 。
不确定您是否需要它,但也可以更改已经执行的工作流程。这使用 WorkflowChanges 对象。有关更多详细信息,请参见此处http://wiki.windowsworkflowfoundation.eu/default.aspx/WF/RuntimeModificationOfWorkflows.html。
这是另一篇关于工作流版本控制的文章:
http://www.adefwebserver.com/DotNetNukeHELP/Workflow/VacationRequest3.htm
基本上,您可以在以下情况下对使用程序集的工作流进行版本化: