activiti常用API详解:流程实例、任务和变量管理
2023-12-18 16:11:21
activiti总结(二)常用API
在上一篇中,我们介绍了activiti的基础概念和流程定义管理相关的API。在本篇中,我们将继续探索activiti中更多常用的API,包括流程实例管理、任务管理、流程变量管理等。
流程实例管理
流程实例是流程定义在特定时间和空间中的执行个体。activiti提供了丰富的API来管理流程实例的生命周期。
- 创建流程实例
可以通过runtimeService.startProcessInstanceByKey
方法创建流程实例。该方法需要指定流程定义的key作为参数。
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");
- 查询流程实例
可以通过runtimeService.createProcessInstanceQuery
创建一个流程实例查询器,查询器可以设置多种查询条件。
List<ProcessInstance> processInstances = runtimeService.createProcessInstanceQuery()
.processDefinitionKey("myProcess")
.active()
.list();
- 暂停/激活流程实例
可以通过runtimeService.suspendProcessInstanceById
和runtimeService.activateProcessInstanceById
方法暂停和激活流程实例。
runtimeService.suspendProcessInstanceById(processInstanceId);
runtimeService.activateProcessInstanceById(processInstanceId);
- 终止流程实例
可以通过runtimeService.deleteProcessInstance
方法终止流程实例。
runtimeService.deleteProcessInstance(processInstanceId, "delete reason");
任务管理
任务是流程实例执行过程中需要人工干预的活动。activiti提供了API来管理任务的生命周期。
- 查询任务
可以通过taskService.createTaskQuery
创建一个任务查询器,查询器可以设置多种查询条件。
List<Task> tasks = taskService.createTaskQuery()
.processDefinitionKey("myProcess")
.taskAssignee("kermit")
.list();
- 认领任务
可以通过taskService.claim
方法认领任务。
taskService.claim(taskId, "kermit");
- 完成任务
可以通过taskService.complete
方法完成任务。
taskService.complete(taskId);
流程变量管理
流程变量用于在流程实例中存储数据。activiti提供了API来管理流程变量。
- 设置流程变量
可以通过runtimeService.setVariable
方法设置流程变量。
runtimeService.setVariable(processInstanceId, "myVariable", "myValue");
- 获取流程变量
可以通过runtimeService.getVariable
方法获取流程变量。
String myValue = runtimeService.getVariable(processInstanceId, "myVariable");
其他常用API
除了上面介绍的API之外,activiti还提供了其他一些常用的API,例如:
- 部署管理API :用于管理流程定义的部署。
- 用户/组管理API :用于管理流程实例中的用户和组。
- 表单管理API :用于管理流程实例中的表单。
- 历史管理API :用于查询流程实例和任务的历史记录。
总结
本文介绍了activiti中一些常用的API,包括流程实例管理、任务管理、流程变量管理等。通过熟练使用这些API,开发者可以构建出复杂的流程应用程序。