springboot 使用camunda如何查询已被终止的流程的历史流程变量
时间: 2023-02-08 11:55:01 浏览: 101
在 Spring Boot 中使用 Camunda 可以使用 Camunda 提供的 HistoryService 查询已被终止的流程的历史流程变量。
首先需要在 Spring Boot 应用中配置 Camunda 的数据源,然后通过注入 HistoryService 对象来查询历史流程变量。
具体步骤如下:
1. 创建一个类,实现 CommandLineRunner接口
2. 通过@Autowired注入HistoryService
3. 在run方法里调用historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId).list() 方法来查询已终止的流程的历史流程变量
示例代码如下:
```
@Autowired
private HistoryService historyService;
@Override
public void run(String... args) throws Exception {
List<HistoricVariableInstance> variables = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.list();
for (HistoricVariableInstance variable : variables) {
System.out.println("variable name: " + variable.getName() + ", variable value: " + variable.getValue());
}
}
```
需要注意的是,在使用Camunda默认的数据库 H2 时,需要设置 spring.datasource.url=jdbc:h2:mem:process-engine;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
另外,需要在 application.properties 中配置开启历史数据存储,即:
```
camunda.bpm.history-level=full
```
阅读全文