DelegateExecution里的execution方法取出来的数据全是null
时间: 2024-05-04 09:22:36 浏览: 55
C#百万数据查询出现超时问题的解决方法
DelegateExecution 中的 execution 方法是用来获取当前执行流程的信息的,如果你发现获取到的数据全是 null,那么可能是因为你没有正确地设置执行流程的变量。
首先,你需要确保在流程中正确地设置了变量。可以通过在 BPMN 文件中设置变量或在代码中使用 ExecutionListener 来设置变量。例如,在 BPMN 文件中可以使用以下方式设置变量:
```
<userTask id="task1" name="Task 1">
<extensionElements>
<camunda:inputOutput>
<camunda:inputParameter name="variableName">variableValue</camunda:inputParameter>
</camunda:inputOutput>
</extensionElements>
</userTask>
```
在代码中可以使用以下方式设置变量:
```
execution.setVariable("variableName", variableValue);
```
其次,你需要确保在 Delegate 类中正确地获取变量。可以使用以下方式从 DelegateExecution 中获取变量:
```
String variableValue = (String) execution.getVariable("variableName");
```
最后,你还需要确保变量的作用域正确。如果变量是在执行流程的子流程中设置的,那么你需要在 Delegate 中获取它时使用 getVariableLocal 方法:
```
String variableValue = (String) execution.getVariableLocal("variableName");
```
如果你还是无法获取到变量,请检查你的代码和 BPMN 文件是否正确配置,并且变量名是否正确。
阅读全文