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));
  • 相关阅读:
    hdu 思维风暴
    HDU 4183Pahom on Water(网络流之最大流)
    现在仍在工作的12名最“屌”的程序猿
    安卓ContentObserver模式获取短信用正则自己主动填充验证码
    Android插件实例——360 DroidPlugin具体解释
    mysql---union的使用方法
    SICP 习题 (2.11)解题总结:区间乘法的优化
    jQuery中的ajax
    Ajax的简单总结
    jQuery插件开发
  • 原文地址:https://www.cnblogs.com/x0216u/p/4867229.html
Copyright © 2011-2022 走看看