工作流引擎技术介绍-Flowable例子(二)
介绍目前开源工作流现状 介绍flowable 介绍BPMN2.0 比较flowable和activiti flowable例子(一)-工时申报流程 flowable例子(二)-请假流程(当前) flowable例子(三)-保险索赔案例流程 flowable例子(四)-消息队列交互流程 flowable例子(五)-消费者评论分析流程 flowable不足及扩展 Flowable技术细讲
上一篇工时流程,从简单入手,熟悉基本的设计部署,这篇以请假流程为例,我们会引入更多复杂的元素。
二、请假流程
流程描述:
发起人发起请假并填写请假信息
提交后会流转到上级领导审核,如何请假天数大于三天,则同时还需要部门领导审核
领导审核后会流转到人事审核,这里需要人事办事人员半数审核才会往下流转
人事审核后,会同时流转给财务和项目部确认
最后流转给老板审核,老板一小时内未处理,自动审核通过。
ps:这个例子,我们可以学习包容网关、多实例、表达式设置人员、并行网关、中断定时事件。
设计过程:
绘制流程图
绘制请假表单
提交人节点分配给流程发起人,流程绑定表单如前篇一样,不再赘述。
包容网关分支,一条分支线设置默认流,一条分支线设置条件
设置流程发起人上级领导、所在部门领导如前篇一样用任务监听器设置。
人事审核时多实例任务。多实例任务中,需要选择多实例类型,设置集合、变量、完成条件及执行人。集合可以通过表达式,只要返回是个List,就能解析,执行人,我们取多实例集合遍历的元素变量。完成条件通过表达式取默认提供的变量进行判断。(nrOfInstances:实例总数。nrOfActiveInstances:当前活动的(即未完成的),实例数量。对于顺序多实例,这个值总为1。nrOfCompletedInstances:已完成的实例数量。)
并行网关,没啥好说的,网关之后,是两部门审核,两部门人员都可以处理对应节点任务,有一个人员领取完成,则节点审核通过。
定时任务,我们选择的是中断边界定时任务,中断与不中断代表的是当前任务节点会不会被结束。方便测试,我们配置的间隔两分钟触发。
运行过程:
1.发起请假流程,查看任务并完成表单。
2.这里我们填写请假天数为5天
完成对应任务
3.进入多实例任务
可以看到生成了两条任务实例
4.切换陈七账号完成任务
5.通过并行网关,流转到项目部审核和财务审核
6.完成后流转到老板节点
7.老板两分钟内未处理,自动结束
8.完成请假
后续我们会把流程难度,不断升级,以便熟悉更多的模型设计方法。