首页 > 数据库技术 > 详细

工作流启用对sql的持久化

时间:2015-10-10 17:09:53      阅读:254      评论:0      收藏:0      [点我收藏+]

1.找到%WINDIR%\Microsoft.NET\Framework\v4.xxx\SQL\EN 中的脚本。

2.在数据库中先执行1中找到的SqlWorkflowInstanceStoreSchema.sql 文件,然后运行 SqlWorkflowInstanceStoreLogic.sql 文件。创建持久性数据库。

3.程序集添加  System.Activites.DurableInstancing.dll 及System.Runtime.DurableInstancing.dll的引用

4.构造一个 SqlWorkflowInstanceStore,并将其分配给 WorkflowApplication 的InstanceStore

(第8行--29行的是工作流常用设置 可以不用写)

 1       WorkflowApplication wfApp = new WorkflowApplication(new WFDemoActivity());
 2 
 3             // 处于空闲状态时 保留之前状态并卸载工作流
 4             wfApp.PersistableIdle = delegate(WorkflowApplicationIdleEventArgs e2)
 5             {
 6                 return PersistableIdleAction.Unload;
 7             };
 8             ////发生异常时 结束工作流
 9             //wfApp.OnUnhandledException += a =>
10             //{
11             //    Console.WriteLine("工作流异常");
12             //    //结束工作流
13             //    return UnhandledExceptionAction.Terminate;
14             //};
15             ////工作流被卸载时调用的动作
16             //wfApp.Unloaded += a =>
17             //{
18             //    Console.WriteLine("工作流已被卸载");
19             //};
20             ////空闲状态调用的动作
21             //wfApp.Idle += a =>
22             //{
23             //    Console.WriteLine("工作流停下来了...");
24             //};
25             ////终止工作流时调用的动作
26             //wfApp.Aborted += a =>
27             //{ 
28             //    Console.WriteLine("工作流已被终止");
29             //};
30             //可以保存状态信息的抽象类
31             System.Activities.DurableInstancing.SqlWorkflowInstanceStore store =
32     new SqlWorkflowInstanceStore("Server=.;uid=sa;pwd=*****;database=DATABASEName");
33             //提供当前实例访问状态 (设置为可以保存状态)
34             wfApp.InstanceStore = store;
35             //WorkflowInvoker.Invoke(new WFDemoActivity());
36             wfApp.Run();
37             //将wf自动分配的id记录下来
38             this.txtWFID.Text = wfApp.Id.ToString();
39             //复制到粘贴板
40             Clipboard.SetText(this.txtWFID.Text);

5.调用继续工作流的方法

1             //从数据库中加载当前工作流实例的状态。text为上文的wfapp的自动分配的id
2             wfApp.Load(Guid.Parse(this.txtWFID.Text));

 

工作流启用对sql的持久化

原文:http://www.cnblogs.com/x0216u/p/4867229.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!