一、什么是工作流
工作流:官方解释的是指业务过程的部分或整体在计算机应用环境下的自动化。是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。
其实,工作流在我们身边也常用到,比如找公司报销费用、请假等。就拿请假来说,提交一个请假的申请,需要公司不同级别的人做审批,只有当领导审批通过后,请假申请才会生效,中间有任何一个领导审批不通过,请假申请就会无效。
二、什么是Activiti
Activiti是一个开源的工作流引擎,它实现了BPMN 2.0规范,可以发布自定义的流程定义,并通过提供的api进行流程调度。
三、Activiti的Api
图片来自Activiti的官方文档:https://www.activiti.org/5.x/userguide/#chapterApi
1、ProcessEngine 流程引擎
Activiti的所有Service服务都是来自流程引擎ProcessEngine,ProcessEngine是Activiti的核心,流程引擎ProcessEngine通过流程配置文件可获得。
2、RepositoryService 流程存储服务
RepositoryService服务用于部署流程定义并发布,使流程生效, 流程定义中包含了流程中每个步骤的结构和行为。本质上是解析配置的工作流程文件,将对应的数据存入数据库中,主要负责静态字资源。
3、RuntimeService 流程运行服务
RepositoryService服务用于启动一个流程定义的实例,也可以用来获取和保存流程变量。
4、TaskService 流程任务服务
RepositoryService服务用于认领并完成一个任务。可手动设置流程的认领者。
5、HistoryServie 流程历史服务
HistoryServie提供了Activiti流程引擎的所有历史数据。包括历史流程实例信息、历史流程节点信息、历史流程定义信息等等。
IdentityService 流程身份服务
IdentityService 可以管理群组和用户,可用来创建,更新,删除,查询用户和群组。
启动表单和任务表单两个概念。 启动表单会在流程实例启动之前展示给用户, 任务表单会在用户完成任务时展示。
ManagementService 流程管理服务
ManagementService 可以查询数据库的表和表的元数据。
在实际的开发过程中,常用到RepositoryService、RuntimeService、TaskService、HistoryService这四个服务,IdentityService、FormService、ManagementService不常用,至少我在开发过程中并未用到这三个服务。
后面的学习中会对这些服务做详细介绍,包括Api的使用及涉及的表数据。个人感觉,Activiti的学习主要有两点,一是画流程;二是对Activiti提供的原生Api的封装与调用。
最重要的是学会参照官网文档学习,下面贴出官网地址,有时间可以多逛逛学习学习:
中文:http://www.mossle.com/docs/activiti/index.html
英文:https://www.activiti.org/5.x/userguide