1 什么是工作流
类似如请假、离职、出差、报销这种有审批流程的业务,我们都可以称之为工作流(也叫流程引擎),它可以帮助用户实现一个审批流程的可视化,借助于工作流引擎可以搭建客户关系管理系统(CRM)、运输管理系统(TMS)、仓储管理系统(WMS)、财务费用系统等多种复杂业务系统。其实现基本形如下图:
请假流程示例:
出差流程示例:
为了满足这种复杂的单节点审批、多节点审批[一个人审批通过即可、多人必须同时审批通过]业务场景,我们不能借助于传统关系型数据库实现,更无法简单的借助于状态机就实现,此时工作流引擎应运而生。
工作流引擎从笔者最早的BPMN发展到Activity,再到国内自主研发的FlowAble、NatureFlow等,随着技术的更新换代,也衍生出:泛微、金蝶、用友等一大批优秀企业。
2 主流技术选型
bpmn:(Business Process Model And Notation),最为传统的工作流典范
activiti:以java为中心的开源BPMN引擎,支持现实世界的流程自动化需求
flowable: 使用 Java 编写的轻量级业务流程引擎,是activiti核心开发人员离职后二次开发出的框架。
3 Activiti流程概述