1 什么是工作流
类似如请假、离职、出差、报销这种有审批流程的业务,我们都可以称之为工作流(也叫流程引擎),它可以帮助用户实现一个审批流程的可视化,借助于工作流引擎可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。其实现基本形如下图:
请假流程示例:
从下周一起我要请三天年假,回家探
为您创建请假流程,请确认:
接收人:李软,王别,冯立峰,李梦珂
批准于2018-05-2609:26:58
维森请假流程-陈杰-2018-05-30
准于2018-052609:26:58
2018-060218:0
6871%
请假类型:年值
维森销售部一部
2018-05-3009:00
2018-06-0118:00
2018-05-3009:00
泛微请假流程
请假结东时间
L中国联通
假开始时间
共3.0天
剩余假期
交于2018-05-260926:58
E871%0
)请签批
请假时间:
节点:经理审批
2)个请签批
中国联通
节点:申请人申请
下午2:50
接收人:鲁灵
接收人:杨文元
流程表单
小E助手
请假事由:
假类型
轻点以编辑
流程表单
回家探亲
流转意见
回家探亲
请假事庄
操作:审批
转意见
1中国联通
部门
返回
假天数
提交
标题
杨文元
操作:抄送
<返回
点:经理审批
确定
下午2:50
转发
同意
杨文元
取消
<返回
陈杰
作:提交
年假
下午2:50
3天
口M
姓名
2
071%
2
M贴
团
出差流程示例:
泛微出差流程-杨文元-2017-12-2
出差日期是否一致
泛微出差流程
结束日期2017-12-25
是否选择规定的仓位(经济仓)
陆丰中国国航CA1858经济舱
部门负责人审批同意
上海---北京
提交于2017-12-22160000
出差开始日期2017-12-
出差结束时间
陆丰中国国航CA1858经济舱
是否无费用项超标
是否在规定航程范围内容
价格是否在6折范围内
管领导审批同意
差开始时间09:00
2017-12-250900-11:1
流程表单
201712250300511:10
是否无超费用预算
12420171220
部门负责人审批
看订单信息
EEEOOVIRGIN
)2请签排
选彩12定仓位2(经济
营销管理部
BUSINESSPROCESS
2017-12-20
申请编号
2请签拍
机票信息
申请日期
:价格在6新范围钠
机票信息
观:费用项8标
C2OK
是咨天云用
660.00
程表单
出芒日期一致
流程表单
申请部门
4:21PM
18:00
流转意见
返回
$22%二
S
全部退票
返回
全部退票
总经理审批
4:21PM
提交
申请人
EEEOOVRG
杨文元
标题
转发
O
杨文远
4:21PM
合规校验...
提交
<返回
O
同意
订票
8
出差结束日期20
8
22%1
为了满足这种复杂的单节点审批、多节点审批[一个人审批通过即可、多人必须同时审批通过]业务场景,我们不能借助于传统关系型数据库实现,更无法简单的借助于状态机就实现,此时工作流引擎应运而生。
工作流引擎从笔者最早的BPMN发展到Activity,再到国内自主研发的FlowAble、NatureFlow等,随着技术的更新换代,也衍生出:泛微、金蝶、用友等一大批优秀企业。
2 主流技术选型
bpmn:(Business Process Model And Notation),最为传统的工作流典范
activiti:以java为中心的开源BPMN引擎,支持现实世界的流程自动化需求
flowable: 使用 Java 编写的轻量级业务流程引擎,是activiti核心开发人员离职后二次开发出的框架。
3 Activiti流程概述
工作流引擎行为
保存流程资源
析业务流程
生成流程实例
关联数据
启动工作流
创建模板
读取流程定义
用户行为
业务模板
编辑模型图
找到流程定义
是爱有
关联数据
部署流程
用户任务
用户审批
部署单元
判断是否
启动流程
流程定义
创建工作流
找到模型
模型
结束
(表单)
任务
执行
是
若有收获,就点个赞吧