确定在Camunda处决儿童的行为

问题描述

看看这个过程-

enter image description here

当执行到达通用流程之后的网关时,我如何确定执行是针对A还是B的?

AB最初都是并行启动的,完成后将遵循相同的过程。 这两个并行执行是否可以具有不同的变量集(在公共过程内部和外部)?

解决方法

变量的作用域在此处的文档中说明: https://docs.camunda.org/manual/latest/user-guide/process-engine/variables/

您可以将变量设置为特定范围,例如在外部数据映射中或在执行侦听器中,使用类似execution.setVariable("aVariable","aValue","aSubProcess");

的脚本

A和B具有自己的任务范围,并且可以访问过程范围(默认)。 您可以在不同的范围内(仅)具有不同的变量集。您可以通过子流程或在父范围(以键区分)携带的数据结构中创建的那些。

您以后没有再次同步两个分支的事实表明,由于公共的嵌入式子流程,它们可能仅在同一流程定义中。如果您打算重用,但是使用不同的数据范围,那么我将使用呼叫活动。它们提供可全局重用的子流程,并具有自己的数据范围。然后,您还可以将这些并行的替代项分为两个独立的定义,它们仅使用相同的调用活动。

如果您希望数据不是持久性的并且仅在(Camunda)执行期间有效,则可以使用瞬态变量。

该示例似乎有点人为。在讨论具体的业务流程时,通常最好的方法是建议最好的方法。