王阅

 

WF4___外部数据传递给工作流

引言:
本文的重点不是如何使用in,out参数,而是WF如何接收自身之外的数据

在工作流执行过程中,往往需要外部环境传递数据给工作流。
这可以从两个角度理解(杜撰):
数据类型:审核数据、业务数据。
数据传递的阶段:流程发起阶段、流程执行过程中。

开始
流程发起阶段,可以通过Dictionary传递参数。
在流程执行过程,采用书签传递参数。
一般而言,dictionary可以承载比较复杂的数据(一次可能需要传递多个业务数据),通过key-value与流程的变量一一映射。
利用书签传递dictinary可能很难一一映射(期待有人拍砖),所以在传递多个参数的时候,可以考虑使用自定义数据类型来解决。
如下图

demo梳理

1 自定义类:

 public class BookResult
    {
        public int days { get; set; }
        public string result { get; set; }
    }

2 Rev(流程变量)为BookResult类型,判断节点的条件:Rev.days > 3

3 流程总共两步,第2通过书签传递Rev

      public  void Excute(Guid id, string bookmark,BookResult rev)
        {
            WorkflowApplication WFApp = LoadInstance(id);

            System.Console.WriteLine("恢复书签");

            WFApp.ResumeBookmark(bookmark, rev);

            instanceUnloaded.WaitOne();
        }

原始代码:https://files.cnblogs.com/wreading//WF.rar(如有问题,请指正,本人对WF4研究不深)

 

posted on 2011-10-20 10:51  王阅  阅读(599)  评论(0编辑  收藏  举报

导航