我正在开发一个以活动作为工作流引擎的Spring引导应用程序。活动-spring-boot-starter依赖版本是7.1.0。M6和spring-boot-starter-父版本是2.6.7。
我已经定义了一个BPMN 2.0图,我现在正在启动流程实例。完成一个任务后,我想在处理下一个任务时访问它的任务局部变量。我无法计算出它的api。
我尝试使用历史服务
,如下所示,但没有成功。每次使用不同的apis(完成()
、未完成()
等),我都会将结果列表设置为空
HistoricTaskInstance acceptMobile = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(processInstanceId)
.taskName("my-task1")
.singleResult();
有人能指导我什么是正确的api来获取以前完成的任务的局部变量吗?
谢谢。
在任务之间传输变量的最佳方法是将执行变量与委托执行
一起使用
执行变量是指向进程活动位置的特定指针,有关详细信息,请参阅apiVariables
假设您有具有不同侦听器的Task-A
和Task-B
以下是如何使用执行变量从Task-A
到Task-B
:
@Component("TaskListenerA")
public class TaskListenerA implements TaskListener {
@Override
public void notify(DelegateTask task) {
DelegateExecution execution = task.getExecution();
if("complete".equals(task.getEventName()) {
String myTaskVar = (String) task.getVariable("taskAvariable")
execution.setVariable("exeVariable", myTaskVar);
}
}
}
@Component("TaskListenerB")
public class TaskListenerB implements TaskListener {
@Override
public void notify(DelegateTask task) {
DelegateExecution execution = task.getExecution();
String myVariable = execution.get("exeVariable");
}
}