Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从流程实例获取变量映射_Java_Activiti_Bpmn - Fatal编程技术网

Java 从流程实例获取变量映射

Java 从流程实例获取变量映射,java,activiti,bpmn,Java,Activiti,Bpmn,有没有办法从流程实例获取变量映射,或者我必须使用执行,使用执行不会总是帮助我获取流程实例的变量映射,因为一个流程实例可能有多个执行请查看org.activiti.engine.RuntimeService.getVariable*(*),它允许您访问所有流程实例变量。当然,您需要一个执行ID来标识流程实例。如果这不是您想要的,请改进您的问题。我也遇到过类似的问题。您需要执行以获取变量映射。正如您所说,对于给定的流程实例,可以有多个执行。因此,您需要找到变量所在的根执行。我已经编写了一些代码来查找

有没有办法从流程实例获取变量映射,或者我必须使用执行,使用执行不会总是帮助我获取流程实例的变量映射,因为一个流程实例可能有多个执行

请查看
org.activiti.engine.RuntimeService.getVariable*(*)
,它允许您访问所有流程实例变量。当然,您需要一个执行ID来标识流程实例。如果这不是您想要的,请改进您的问题。

我也遇到过类似的问题。您需要执行以获取变量映射。正如您所说,对于给定的流程实例,可以有多个执行。因此,您需要找到变量所在的根执行。我已经编写了一些代码来查找根执行。我已经针对一个具有多个嵌套调用活动的流程进行了测试。我没有针对子流程尝试过,但我认为您可以让它工作:

ExecutionEntity executionEntity = (ExecutionEntity) runtimeService.createExecutionQuery().executionId(executionId).singleResult();
if (executionEntity == null) {
    return null;
}
String parentId = executionEntity.getParentId();
boolean parentNotEmpty = StringUtils.isNotEmpty(parentId);
String superExecutionId = executionEntity.getSuperExecutionId();
boolean superNotEmpty = StringUtils.isNotEmpty(superExecutionId);
if (parentNotEmpty) {
    return getRootExecution(parentId);
} else if (superNotEmpty) {
    return getRootExecution(superExecutionId);
} else {
    return executionEntity;
}
此代码段获取属于您的流程实例的任何执行id,您可以提供其中任何一个。它返回根执行。然后使用此代码可以获得变量:

Object variable = getRuntimeService().getVariable(rootExecutionId, variableName);

读者:注意bpmn标记。这里,流程可能是指业务流程。我需要使用流程实例id而不是执行id来获取变量,因为使用执行id效率不高,特别是当流程实例的执行次数超过id@BOB很高兴听到这个消息,如果它对你有帮助的话,你可以在上面签字作为答复。怎么做?我对stack不太熟悉,没有时间阅读指南。再次感谢。