zoukankan      html  css  js  c++  java
  • 工作流启用对sql的持久化

    1.找到%WINDIR%Microsoft.NETFrameworkv4.xxxSQLEN 中的脚本。

    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));
  • 相关阅读:
    JDBC
    Ajax:一种不用刷新整个页面便可与服务器通讯的办法
    Maven——自动化构建工具
    SSM整合
    MyBatis框架
    SpringMVC框架、Spring boot框架、SSM區別
    Spring开源框架
    切入点表达式
    面向切面编程之cglib代理方式
    动态JDK代理方式-实现类增强
  • 原文地址:https://www.cnblogs.com/x0216u/p/4867229.html
Copyright © 2011-2022 走看看