使用camuda在java代码中编写一段审批流程并且可执行的java代码(包含设置审批人)
时间: 2024-01-22 18:18:59 浏览: 152
以下是一个基本的Camunda审批流程的Java代码示例,包括设置审批人:
```java
import org.camunda.bpm.engine.RuntimeService;
import org.camunda.bpm.engine.TaskService;
import org.camunda.bpm.engine.identity.User;
import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.camunda.bpm.engine.task.Task;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class CamundaApprovalProcess {
public static void main(String[] args) {
// 创建Camunda运行时服务
RuntimeService runtimeService = ProcessEngineService.getProcessEngine().getRuntimeService();
// 创建Camunda任务服务
TaskService taskService = ProcessEngineService.getProcessEngine().getTaskService();
// 定义流程变量
Map<String, Object> variables = new HashMap<>();
// 设置审批人
Scanner scanner = new Scanner(System.in);
System.out.println("请输入审批人用户名:");
String userName = scanner.nextLine();
User user = ProcessEngineService.getProcessEngine().getIdentityService().createUserQuery().userId(userName).singleResult();
if (user != null) {
variables.put("approver", user.getId());
} else {
System.out.println("未找到该用户!");
return;
}
// 启动流程实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("approvalProcess", variables);
// 查询并完成任务
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
taskService.complete(task.getId());
}
}
```
这段代码假设已经有一个名为`approvalProcess`的流程定义,其中包含了一个用户任务,需要审批人审批。在代码中,我们首先获取了Camunda运行时服务和任务服务,然后定义了流程变量并设置了审批人。接着,我们启动了一个流程实例,并查询了与该流程实例相关联的任务。最后,我们完成了该任务,流程实例结束。
阅读全文