workflow 4.0

Workflow 4.0

1、  新建项目,选择.net framework4.5,然后选中C#分支里的workflow,最后选择活动库创建一个workflow项目。

2、  在xaml设计界面拖入一个Sequence控件,Sequence代表一个顺序流,会按照顺序执行。

3、 

属性中的displayname可以设置备注名,以使得工作流更清晰的展现流程过程。

4、  为了更灵活的配置工作流和之后的修改,可以把工作流分支化,把一些具体的实现流程写到代码活动中,只在工作流中引用,避免主工作流复杂化。具体操作:项目中右键,选择添加新建项,选中左侧的workflow,然后选择代码活动创建,这里我们假设创建一个审批的代码活动approve.cs。

5、  这里我们定义两个输入参数和一个输出参数

public InArgument<Mapprove> in_appro { get; set; }

public InArgument<rule> in_rule { get; set; }

public OutArgument<Mapprove> out_param { get; set; }

然后在Execute方法中获取输入参数,获取方法为:

第一种方法:Mapprove  in_appro = context.GetValue(this.in_appro);

第二种方法:in_param.Get(context);

然后对输入参数做判断和处理,如果有输出参数,就给输出参数赋值,赋值方法为:

context.SetValue(out_param, in_appro);

6、  然后回到xaml设计界面,在最外层Sequence定义一个同类型变量接收输出变量,就能使用工作流中定义的那个变量得到这个输出变量。再定义两个同名的参数,注意大小写敏感,一定要名称和类型都一样。自定义类型在浏览类型里选择,如下图:

7、  这样,创建好一个代码活动后,编译程序,再回到xaml设计界面的工具箱里就会多出你刚刚添加的代码活动工具,拖拽到工作流的合适位置,设置好输入输出参数以及给这些参数赋值。如下图所示:

8、  我们再到工具箱拖拽几个常用的的控件:if(判断)、Sequence(顺序流)、Assign(赋值)。这样就能组成一个基本的审批流程了。最终完成效果如下图所示:

9、  现在我们已经创建好了工作流,接下来我们就来调用它,在项目中添加工作流项目的引用并引入命名空间using System.Activities;

10、 Activity  approve1 = new  mainflow();一个工作流对象mainflow就是我们上面创建的工作流。

WorkflowInvoker.Invoke(approve1);执行工作流。这样就完成了一个最简单的工作流调用,但是我们上边有定义输入输出参数,所以我们还需要传入参数和得到工作流执行完成后的返回值。

工作流只接受IDictionary<string, object>的参数格式,我们先定义两个传入参数和一个接收返回值的变量。

IDictionary<string, object> result = new Dictionary<string, object>();//定义一个接收工作流的变量

Dictionary<String, Object> wfPara = new Dictionary<string, object>();//定义一个传入工作流的变量

wfPara.Add("appro", fee); //把需传入工作流中的appro参数加入到定义的IDictionary<string, object>变量中,大小写敏感。Appro为参数名,fee为传入的同类型变量。

wfPara.Add("rule", fee_rule);//同上

Activity  approve1 = new  mainflow();

result = WorkflowInvoker.Invoke(approve1, wfPara);// 运行工作流,同时传入参数和接收返回值。

最后通过result["appro"] 就能使用返回的变量了。注:appro为工作流中定义的输出参数

11、 这样,一个基本的有输入输出参数,以及自定义代码活动的工作流的demo就完成了。

12、 最后补充,workflow有三种执行方式:

①:使用WorkflowInvoker类中的InVoke静态方法WorkflowInvoker.Invoke(myWF);   //myWF为自定义的workflow实例

  【这种方式可以像一个函数一样顺序执行我们的工作流程,非常简单,但是在工作流执行过程中,不能与工作流实现数据的交换】

②:调用WorkflowApplication实例的Run方法-->WorkflowApplication wfApp = new WorkflowApplication(myWF); wfApp.Run();   //myWF为自定义的workflow实例

  【可以控制工作流实例长时间运行,可以在运行过程中和实例进行数据交换。但是只能执行一个的工作流实例。】

③:使用WorkflowServiceHost类host起来一个服务,然后在客户端声明一个ServiceClient类的实例,用这个实例通过WCF与之前host起来的服务进行通信完成workflow的触发调用。

  【WorkflowServiceHost是一个最主要的工作流主机类。可以同时管理多个工作流实例,同时控制实例的激活等操作。】

时间: 2024-10-31 20:59:28

workflow 4.0的相关文章

SharePoint Workflow Trouble Shooting(二)分析log文件

[译者按]Andy Li这篇文章,是我看过的最好的,最透彻的关于SharePoint Workflow架构的文章.通过阅读他的文章,我才清楚的了解了SharePoint Workflow的运作机制,并且在遇到问题的时候,知道如何下手查找问题.因此翻译过来,希望对Workflow的开发人员有帮助.本部分主要讲trouble shooting. 这篇博客是由Andy Li贡献的,他是SharePoint开发人员支持组的处理疑难问题的工程师.原文地址.这个关于Workflow的系列,是他贡献给社区的,

好几年才收集到的软件,分享给大家。。。

QQ:365543212Email:[email protected]请按Clrt+F查找,输入软件关键字查询(不要输入版本号),如果找不到,您可以咨询客服.................FD......................12D MODEL 7.0 规划设计232Analyzer v4.1 高级串口分析监测3D Home Architect Design Suite Deluxe 8.0 室内装潢3D Profiler Tools 11.2 For Archicad 113D R

工作流,WEB框架,UI组件网络收集整理

工作流,WEB框架,UI组件网络收集整理 在博客园上逛了好多年,随手收录了一些工作流,WEB开发框架,UI组件,现在整理一下与大家分享. 由于个人能力与精力有限,望各位园友在评论中补充,我将全部整理到正文: ? 工作流篇 RoadFlow工作流(收费):                  http://www.cqroad.cn/WorkFlow 驰骋工作流引擎 ccflow                       https://www.oschina.net/p/ccflow YbSof

SharePoint2016配置工作流开发环境

1,下载Web PlatForm5.0  地址:https://www.microsoft.com/web/downloads/platform.aspx 2,保证开发环境能连网,安装Web PlatForm,会提示你更新成Web PlatForm5.1. 3,安装完成打开Web PlatForm 4,搜索Workflow manager,这里我们选择CU2,有很多文章选择的是Workflow Manager1.0,但是我发现最后关联SPSite时会有问题,具体不明白原因,走了几次弯路发现选CU

WCF 通讯标准绑定

WCF 通讯标准绑定 一.预定义标准绑定 标准绑定 说明 BasicHttpBinding BasicHttpBinding 绑定用于最广泛的互交操作,针对第一代Web服务,所使用的传输协议是HTTP或者HTTPS,其安全性由传输协议保证. WSHttpBinding WSHttpBinding绑定用于下一代Web服务,它们用SOAP拓展确保安全性,可靠性和事物处理;所使用的传输协议是HTTP或者HTTPS;为了确保安全,实现了WS-Security规范;使用WS-Coordination.WS

【Activiti学习之一】Activiti入门

环境 JDK1.7 MySQL5.6 Tomcat7 Eclipse-Luna activiti 6.0 一.概念1.工作流(Workflow):是一系列相互衔接.自动进行的业务活动或任务.采用工作流软件,使用者只需在电脑上填写有关表单,会按照定义好的流程自动往下跑,下一级审批者将会收到相关资料,并可以根据需要修改.跟踪.管理.查询.统计.打印等,大大提高了效率.2.BPMN即业务流程建模与标注(Business Process Model and Notation,BPMN) ,描述流程的基本

Performance Profiling Zeebe

转自:https://zeebe.io/blog/2019/12/zeebe-performance-profiling/ by Josh Wulf and Klaus Nji on Dec 22 2019 in BenchmarksPerformance. We frequently get questions about Zeebe’s performance. The answer to any performance question is easy: “It depends”. In

鬃嘴释怀说太多就成真不了。

子阻撞砖奏尊仔籽着 释怀说太多就成真不了. http://passport.baidu.com/?business&un=vip&un=%E5%A4%A9%E6%B0%B4%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=vip&un=%E7%99%BD%E9%93%B6%E4%B8%8A%E9%97%A8%E8%BF%99%E5%B0%8F%E5%A

澜星粘鼐贩逊耐盼系甭妊倏纪傲傲sdfghjk

http://passport.baidu.com/?business&un=R&un=%E5%A4%A7%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.baidu.com/?business&un=R&un=%E4%B9%A1%E5%AE%81%E6%A1%91%E6%8B%BF%E9%80%9A%E5%B0%8F%E5%A7%90#0 http://passport.bai