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("撤销流程");

posted @ 2010-09-13 17:18  八爻老骥  阅读(655)  评论(0编辑  收藏  举报