HistoricProcessInstanceQuery 查询的结果HistoricProcessInstance 获取getProcessVariables() 可以拿到流程的全局变量吗,为什么我获取到的是空的
时间: 2024-04-12 13:29:36 浏览: 31
在 Activiti 中,`HistoricProcessInstance` 对象通过 `getProcessVariables()` 方法是无法直接获取流程的全局变量的。该方法只能获取到历史流程实例的变量,而不包括全局变量。
如果你需要获取流程的全局变量,你可以使用 `RuntimeService` 的 `getVariables()` 方法来获取当前运行中的流程实例的全局变量。示例代码如下:
```java
String processInstanceId = "your-process-instance-id";
Map<String, Object> variables = runtimeService.getVariables(processInstanceId);
```
在上述代码中,我们通过 `RuntimeService` 的 `getVariables()` 方法,传入流程实例ID,获取到当前运行中的流程实例的全局变量。这样你就可以获得流程的全局变量。
请注意,使用 `getVariables()` 方法获取的是当前运行中的流程实例的变量,而不是历史流程实例的变量。如果你需要获取历史流程实例的变量,你可以通过 `HistoricVariableInstanceQuery` 进行查询。
```java
List<HistoricVariableInstance> variableInstances = historyService.createHistoricVariableInstanceQuery()
.processInstanceId(processInstanceId)
.list();
```
通过调用 `list()` 方法,你可以获取到满足条件的历史变量实例列表,并从中获取到历史流程实例的变量。
希望以上信息对你有帮助!如果还有其他问题,请随时提出。