本文中简单介绍如何开启Activiti工作流引擎,百度上已经有了N多环境搭建的栗子,这边就不再介绍。
在开始之前先看看下图,对整个对象结构有个了解,再结合下面的详细介绍理解。
核心 API | 介绍 | 作用 |
---|---|---|
ProcessEngineConfiguration | 流程引擎配置对象 | 添加数据库连接配置和数据库建表策略 |
ProcessEngine | 核心对象, 流程引擎对象 | 大管家, 管理各种服务 |
ProcessDefinition | 流程定义对象 | 规定了流程包含了哪些活动, 以及各种活动的执行顺序 |
ProcessInsctance | 流程实例对象 | 按照规则实际的一次执行 |
对以上有了解之后会更快的理解下面的内容
RuntimeService | 执行管理, 启动, 推进, 删除流程实例 |
- 首先是 RuntimeService 服务
-
org.activiti.engine.impl
类 RuntimeServiceImpljava.lang.Object
org.activiti.engine.impl.ServiceImpl
org.activiti.engine.impl.RuntimeServiceImpl
-
所有已实现的接口:
- RuntimeService
API为我们提供了20种开启流程的方法,总有一种是你的菜。
startProcessInstanceById(String processDefinitionId) | |
startProcessInstanceById(String processDefinitionId, Map<String,Object> variables) | |
startProcessInstanceById(String processDefinitionId, String businessKey) | |
| |
startProcessInstanceByKey(String processDefinitionKey) | |
startProcessInstanceByKey(String processDefinitionKey, Map<String,Object> variables) | |
startProcessInstanceByKey(String processDefinitionKey, String businessKey) | |
| |
| |
startProcessInstanceByKeyAndTenantId(String processDefinitionKey, String tenantId) | |
| |
| |
startProcessInstanceByMessage(String messageName) | |
startProcessInstanceByMessage(String messageName, Map<String,Object> processVariables) | |
startProcessInstanceByMessage(String messageName, String businessKey) | |
| |
| |
startProcessInstanceByMessageAndTenantId(String messageName, String tenantId) | |
| |
startProcessInstanceByMessageAndTenantId(String messageName, String businessKey, String tenantId) |
//设置流程开启人,这个是必要方法
Authentication.setAuthenticatedUserId(startUser);
//这边使用的是多租户 tenantId
//variables 是流程需要的集合变量
//id 是uuid 唯一
//key 是流程部署的key
ProcessInstance processInstance = runtimeService.startProcessInstanceByKeyAndTenantId(key, id, variables,tenantId);
//取得流程当前任务信息
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskTenantId(tenantId).singleResult();
-
- 本次介绍完。如有不足和疑问请留言,共同讨论