Activiti7
activiti7文档:https://activiti.gitbook.io/activiti-7-developers-guide/
第一步: 引入相应jar包并初始化数据库
既然activiti是一个框架,那么我们肯定是需要引入对应的jar包坐标的,具体参考代码中的。
第二步: 通过工具绘画流程图
使用 activiti 流程建模工具(activity-designer)定义业务流程(.bpmn 文件) 。.bpmn 文件就是业务流程定义文件,通过 xml 定义业务流程。
第三步:流程定义部署
向 activiti 部署业务流程定义(.bpmn 文件),使用 activiti 提供的 api 向 activiti 中部署.bpmn 文件
第四步: 启动一个流程实例(ProcessInstance)
启动一个流程实例表示开始一次业务流程的运行,比如员工请假流程部署完成,如果张三要请假就可以启动一个流程实例,如果李四要请假也启动一个流程实例,两个流程的执行互相不影响,就好比定义一个 java 类,实例化两个对象一样,部署的流程就好比 java 类,启动一个流程实例就好比 new 一个 java 对象
第五步: 用户查询待办任务(Task)
因为现在系统的业务流程已经交给 activiti 管理,通过 activiti 就可以查询当前流程执行到哪了,当前用户需要办理什么任务了,这些 activiti帮我们管理了。实际上我们学习activiti也只是学习它的API怎么使用,因为很多功能activiti都已经封装好了,我们会调用就行了~
第六步: 用户办理任务
用户查询待办任务后,就可以办理某个任务,如果这个任务办理完成还需要其它用户办理,比如采购单创建后由部门经理审核,这个过程也是由 activiti 帮我们完成了,不需要我们在代码中硬编码指定下一个任务办理人了
第七步: 流程结束
当任务办理完成没有下一个任务/结点了,这个流程实例就完成(结束)了。
在上图中7个接口我们无需关注 FormService
和 IdentityService
,因为在activiti7中已经被删除了。
ProcessEngine
工作流引擎 相当于一个门面接口,创建各个 service ,比如RuntimeService
,RepositoryService
,TaskService
,HistoryService
等
activiti.cfg.xml
activiti 的引擎配置文件,包括:ProcessEngineConfiguration
的定义、数据源定义、事务管理器等。
ProcessEngineConfiguration
流程引擎的配置类,通过 ProcessEngineConfiguration
可以创建工作流引擎 ProceccEngine
。
常用接口如下
RepositoryService
:是 activiti 的资源管理类,提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工具设计的业务流程图需要使用此 service 将流程定义文件的内容部署到计算机。除了部署流程定义以外还可以:查询引擎中的发布包和流程定义。暂停或激活发布包,对应全部和特定流程定义。
RuntimeService
:它是 activiti 的流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息
TaskService
:是 activiti 的任务管理类。可以从这个类中获取任务的信息。
HistoryService
:是 activiti 的历史管理类,可以查询历史信息,执行流程时,引擎会保存很多数据(根据配置),比如流程实例启动时间,任务的参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个服务主要通过查询功能来获得这些数据
ManagementService
:是 activiti 的引擎管理类,提供了对 Activiti 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Activiti 系统的日常维护。(主要是了解下,一般用不到)