返回

activiti常用API详解:流程实例、任务和变量管理

见解分享

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.suspendProcessInstanceByIdruntimeService.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,开发者可以构建出复杂的流程应用程序。