flowable 调用活动
时间: 2024-01-20 16:15:54 浏览: 218
Flowable是一个开源的工作流引擎,它支持调用活动(Call Activity)的功能。调用活动可以将一个流程定义作为子流程引用到另一个流程中,实现流程的模块化和复用。
以下是使用Flowable调用活动的示例代码:
```java
// 创建流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 部署流程定义
RepositoryService repositoryService = processEngine.getRepositoryService();
Deployment deployment = repositoryService.createDeployment()
.addClasspathResource("processes/parentProcess.bpmn20.xml")
.addClasspathResource("processes/childProcess.bpmn20.xml")
.deploy();
// 启动流程实例
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("parentProcess");
// 查询子流程实例
List<ProcessInstance> childProcessInstances = runtimeService.createProcessInstanceQuery()
.superProcessInstanceId(processInstance.getId())
.list();
// 完成子流程任务
TaskService taskService = processEngine.getTaskService();
for (ProcessInstance childProcessInstance : childProcessInstances) {
Task task = taskService.createTaskQuery()
.processInstanceId(childProcessInstance.getId())
.singleResult();
taskService.complete(task.getId());
}
// 完成父流程任务
Task parentTask = taskService.createTaskQuery()
.processInstanceId(processInstance.getId())
.singleResult();
taskService.complete(parentTask.getId());
```
在上述示例中,我们首先创建了一个流程引擎,并部署了两个流程定义文件:parentProcess.bpmn20.xml和childProcess.bpmn20.xml。然后,我们启动了父流程实例,并查询了子流程实例。接下来,我们完成了子流程任务和父流程任务。
阅读全文