引擎API是与Flowable交互的最常用手段。总入口点是ProcessEngine。使 ProcessEngine,可以获得各种提供工作流/BPM方法的服务。ProcessEngine与服务对象都是线程安全的,因此可以在服务器中保存并共用同一个引用。
:-: ![](https://img.kancloud.cn/c6/3f/c63f9667b6b1b56acfd3c16a44fc8f12_539x220.png)
```java
//当配置文件位于 resources/flowable.cfg.xml,则可以这样获取引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();
TaskService taskService = processEngine.getTaskService();
ManagementService managementService = processEngine.getManagementService();
IdentityService identityService = processEngine.getIdentityService();
HistoryService historyService = processEngine.getHistoryService();
FormService formService = processEngine.getFormService();
DynamicBpmnService dynamicBpmnService = processEngine.getDynamicBpmnService();
```
**1. `flowable.cfg.xml`**
flowable的引擎配置文件,包括:ProcessEngineConfiguration的定义、数据源定义、事务管理器等,此文件其实就是一个spring配置文件。
<br/>
**2. ProcessEngineConfiguration**
流程引擎配置类,通过ProcessEngineConfiguration可以创建工作流引擎ProcessEngine,常用的子类为StandaloneProcessEngineConfiguration。
<br/>
**3. ProcessEngine**
工作流引擎(ProcessEngine),相当于一个门面接口,通过ProcessEngineConfiguration创建 ProcessEngine,通过 ProcessEngine 创建各个Service接口。
<br/>
Service服务接口是工作流引擎提供用于进行工作流部署、执行、管理的服务接口,我们使用这些接口就可以操作服务对应的数据表。
**4. RepositoryService**
资源管理类,提供了管理和控制流程发布包和流程定义的操作。
<br/>
设计好的业务流程图需要使用接口 RepositoryService 将流程定义文件的内容部署到计算机。除了部署流程定义以外还可以:
* 查询引擎中的发布包和流程定义。
* 暂停或激活部署中的某些流程,或整个部署。暂停意味着不能再对它进行操作,激活刚好相反,重新使它可以操作。
* 获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。
* 获取POJO版本的流程定义。它可以用Java而不是XML的方式查看流程。
**5. TaskService**
任务管理类。可以从这个类中获取任务的信息。
<br/>
**6. IdentityService**
很简单。它用于管理(创建,更新,删除,查询……)组与用户。请注意,Flowable实际上在运行时并不做任何用户检查。例如任务可以分派给任何用户,而引擎并不会验证系统中是否存在该用户。这是因为Flowable有时要与LDAP、Active Directory等服务结合使用。
<br/>
**7. RuntimeService**
流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息。
<br/>
**8. ManagementService**
引擎管理类,提供了对 Flowable 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Flowable 系统的日常维护。
<br/>
**9. HistoryService**
历史管理类,可以查询历史信息。执行流程时,引擎会保存很多数据,比如流程实例启动时间,任务参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个服务主要通过查询功能来获得这些数据。
<br/>
**10. FormService**
是可选服务。也就是说Flowable没有它也能很好地运行,而不必牺牲任何功能。
<br/>
这个服务引入了开始表单(start form)与任务表单(task form)的概念。 开始表单是在流程实例启动前显示的表单,而任务表单是用户完成任务时显示的表单。
<br/>
Flowable可以在BPMN 2.0流程定义中定义这些表单。表单服务通过简单的方式暴露这些数据。再次重申,表单不一定要嵌入流程定义,因此这个服务是可选的。
****
参考文档:https://tkjohn.github.io/flowable-userguide/#apiEngine
- Activiti流程引擎
- 工作流介绍
- Activiti是什么
- Activiti流程处理步骤
- Activiti环境搭建
- 搭建步骤
- 表结构介绍
- ActivitiAPI结构
- 认识流程符号
- 流程设计器的使用
- 流程处理步骤
- 乱码问题
- 流程实例
- 流程实例是什么
- 业务标识
- 查询流程实例
- 挂起/激活流程实例
- 个人任务
- 分配任务负责人
- 查询待办任务
- 办理权限
- 流程变量
- 流程变量类型
- 流程变量作用域
- 使用流程变量控制流程
- 组任务
- 设置任务候选人
- 组任务办理流程
- 网关
- 4种网关类型
- 排他网关
- 并行网关
- 包含网关
- 事件网关
- Spring整合Activiti
- SpringBoot整合Activiti
- Flowable流程引擎
- Flowable是什么
- Flowable与Activiti
- Flowable环境搭建
- FlowableAPI
- 流程引擎API与服务
- 流程处理步骤
- 流程部署
- 流程部署方式
- 流程定义版本
- 删除已部署的流程
- 下载资源
- 流程实例
- 什么是流程实例
- 业务标识
- 查询流程实例
- 挂起/激活流程实例
- 分配任务负责人
- 固定分配
- UEL表达式分配
- 监听器分配
- 办理权限
- 流程变量
- 流程变量类型
- 流程变量作用域
- 流程变量控制流程
- 组任务
- 设置任务候选人
- 组任务办理流程
- 网关
- 排他网关
- 并行网关
- 包含网关
- 事件网关
- 历史查询
- 查询历史
- Spring整合Flowable
- 配置文件整合
- 配置类整合
- SpringBoot整合Flowable