gpt4 book ai didi

java - Camunda BPM 执行和可变范围误解

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:49 26 4
gpt4 key购买 nike

我使用 camunda BPM 流程引擎,认为了解一些概念很重要。目前我对 Process Executions 的概念有点纠结。和 Variable Scopes .

为了了解流程执行期间发生的情况,我设计了以下演示流程,并用相同的颜色标记了同一执行过程中的 Activity 。我可以这样做,因为我在每个 Activity 中调试了执行 ID。

enter image description here

大部分我都看懂了。令我惊讶的是,一个输入参数会打开一个新的执行(任务 1.3)。谢谢meyerdan对此进行澄清。

我不明白的是“任务 2.2”在“任务 2.1”的同一执行中。 quote来自关于执行的 camunda 文档是

Internally, the process engine creates two concurrent executionsinside the process instance, one for each concurrent path ofexecution.

所以我会认为 Task 2.1/Task 2.2 和 Task 3.1 每个都在自己的执行中。

谁能解释一下?

我理解这一点的主要动机是它对流程变量范围的影响。到目前为止我还没有弄清楚Java API方法是什么

VariableScope#getVariable/VariableScope#setVariable

VariableScope#getVariableLocal/VariableScope#setVariableLocal

真的。我首先认为“本地”变体仅指当前执行,而其他变体仅指流程实例执行 - 但这似乎只是一半真相。这些是让我痛苦地想念 JavaDoc 的 getter 和 setter ;-) 奖励积分也解释了这一点!

谢谢!

您将在一个 Maven 项目中找到该进程,并在 GitHub 上进行可执行 JUnit 测试。 .

最佳答案

看看Variable Scopes and Variable Visibility

文档 ( Java Object API ) 关于 setVariable 方法的引述:

Note that this code sets a variable at the highest possible point in the hierarchy of variable scopes. This means, if the variable is already present (whether in this execution or any of its parent scopes), it is updated. If the variable is not yet present, it is created in the highest scope, i.e. the process instance. If a variable is supposed to be set exactly on the provided execution, the local methods can be used.

关于java - Camunda BPM 执行和可变范围误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41021026/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com