zoukankan      html  css  js  c++  java
  • MS WF4.0简介

    如何运行工作流?

    使用WorkflowApplication 这个类,代码如下:

               

    //工作初始参数

    Dictionary<string,object> inputs=new Dictionary<string,object>();

           

    //创建工作流实例

    WorkflowApplication app = new WorkflowApplication(new Activity1(), inputs);

    //使用sqlserver来保存工作流的状态           

    app.InstanceStore = new SqlWorkflowInstanceStore();

    //运行工作流           

    app.Run();

    如何等待用户输入?

    使用工作流的书签功能,不过WF里没有提供现成的书签,需要你自定义一个活动,来创建书签等待用户输入。具体就是继承NativeActivity,代码如下:

        public sealed class ParametersReciever : NativeActivity<WFParameters>

        {

    //必须实现Execute这个方法,当工作流程走到这个活动的时候,创建一个书签,等待用户的输入。

            protected override void Execute(NativeActivityContext context)

            {

                context.CreateBookmark("params", new BookmarkCallback(OnReadComplete));

            }

            void OnReadComplete(NativeActivityContext context, Bookmark bookmark, object state)

            {

                WFParameters input = state as WFParameters;

                context.SetValue(this.Result, input);

            }

    }

     

    如何返回工作流状态?

    使用InvokeMethod活动,这个活动可以调用静态方法,或对象方法。具体设置如下图所示:

     

    TargetType和TargetObject是互斥的,前者表示包含静态方法的类,后者表示实例对象。

    设置参数

    如何终止流程

    使用WorkflowApplicationTerminate方法。撤销的流程将会被永久终止。代码如下:

                Dictionary<string,object> inputs=new Dictionary<string,object>();

                WorkflowApplication app = new WorkflowApplication(new Activity1(), inputs);

                app.InstanceStore = new SqlWorkflowInstanceStore();

                app.Run();

                Guid id = new Guid("11b4b3e4-32db-4698-9fe2-5d783e23c65f");

    //加载工作流实例

                app.Load(id);

    //终止流程

                app.Terminate("撤销流程");

  • 相关阅读:
    Struts2 拦截器(interceptor) 与 模型驱动3中传值方式
    Struts2 OGNL表达式
    ThreadLocal 是什么
    struts2的值栈(重点) 值栈是一个存储数据的内存结构 本质是一个接口 它的实现类OgnlValueStack
    Struts2 普通的java类 (Action)与Servlet通信 主要对象那个ServletActionContext 与 ActionContext对象来获取servlet中request对象和response对象
    struts2是多例的
    Django中一个项目里怎么使用两个数据库
    MYSQL中的锁
    详解Linux中文乱码问题终极解决方法
    Docker-compose up时报错:
  • 原文地址:https://www.cnblogs.com/icoolno1/p/1825153.html
Copyright © 2011-2022 走看看