我想知道是否有办法获取 camunda 中执行的父执行。我想要实现的目标基本上如下:
这是一个涉及并行网关的简单过程。每个流程都由服务任务(外部)和用户任务组成。
在每个“Pre:Task X”服务任务中,我想设置一些变量,以便稍后在各自的用户任务中使用。我希望并行网关的每个执行流都有自己的变量,并且无法从其他流访问。我怎样才能实现这个目标?
我做了一些测试,发现了以下内容:
当流程实例化时,我立即获得 5 个执行实例。 我的理解是,一个属于进程,接下来两个属于并行网关的每个流,最后两个属于每个服务任务。
如果我使用 localVariables 对 REST API 上的其中一个服务任务调用“完成”,它们将立即消失并且不再可用,因为它们将与与外部任务关联的执行相关联,而外部任务在任务完成后终止.
有没有一种方法可以让我获得任务的父执行,在本例中将是并行执行流。那么我可以在这个级别设置 localVariables 吗?
预先感谢您的宝贵帮助
问候
首先,5 次执行并不意味着它们是活跃的。在您的情况下,当您启动流程的新实例时,应该只有 2 个执行处于活动状态。您可以在各个执行中设置变量作为各个服务任务的返回值。
您可以为流程实例设置变量,但请注意您有 2 个执行和 1 个流程实例。您不能为多次执行设置相同的变量。
DelegateExecutionparentExecution =execution.getSuperExecution();
// You can now access variables or other data from the parent execution
String parentVariable = (String) parentExecution.getVariable("parentVariable");