当前位置: 首页 > 知识库问答 >
问题:

Camunda BPM执行和变量作用域误解

云新知
2023-03-14

我使用camunda BPM流程引擎,认为理解一些概念很重要。目前,我有点纠结于流程执行和可变范围的概念。

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

大部分我都明白。令我惊讶的是,一个输入参数打开了一个新的执行(任务1.3)。感谢迈耶丹对此的澄清。

有人能解释吗?

我理解这一点的主要动机是它对过程变量范围的影响。到目前为止,我还不知道Java API的方法是什么

VariableScope#GetVariable/VariableScope#SetV

共有1个答案

谢英耀
2023-03-14

了解可变范围和可变可见性

引用文档(Java Object API)中关于setVariable方法的一句话:

请注意,这段代码将变量设置在变量作用域层次结构中可能的最高点。这意味着,如果变量已经存在(无论是在这次执行中还是在它的任何父作用域中),它就会被更新。如果变量还不存在,则在最高范围(即流程实例)中创建该变量。如果假设在所提供的执行中精确地设置了一个变量,则可以使用本地方法。

 类似资料:
  • 本文向大家介绍Javascript变量的作用域和作用域链详解,包括了Javascript变量的作用域和作用域链详解的使用技巧和注意事项,需要的朋友参考一下 工作这几年,js学的不是很好,正好周末有些闲时间,索性买本《js权威指南》,大名鼎鼎的犀牛书,好好的把js深入的看一看。买过这本书的第一印象就是贼厚,不过后面有一半部分都是参考手册。 一:作用域   说起变量第一个要说到的肯定就是作用域,正是因

  • 变量作用域 变量的作用域值的是变量的生命周期和作用范围(全局与局部作用域的区别)。 作用域介绍 静态作用域 静态作用域有称为词法作用域,即指其在编译的阶段就可以决定变量的引用。静态作用域只更变量定义的位置有关与代码执行的顺序无关。 var x = 0; function foo() { alert(x); } function bar() { var x = 20; foo(); }

  • 任何编程中的范围都是程序的一个区域,其中定义的变量可以存在,并且超出该变量无法访问。 有三个地方,其中变量可以用Pascal编程语言声明 - 在子程序或块中,称为局部变量 在所有子程序之外,称为全局变量 在子程序参数的定义中称为形式参数 让我们解释什么是local和global变量和形式参数。 局部变量 (Local Variables) 在子程序或块内声明的变量称为局部变量。 它们只能由子程序或

  • 如果你之前用过像Python或者Ruby之类的动态语言,现在你可能已经熟悉了Vim脚本的变量。你会发现Vim变量的大部分内容跟你想的一样,不过有一个东西可能会不同,那就是变量的作用域。 在两个分隔的窗口中分别打开两个不同的文件,然后在其中一个窗口中执行下面的命令: :::vim :let b:hello = "world" :echo b:hello 如你所愿,Vim会显示world。现在切换到

  • ES5中的函数本质上是可以在外面“看到”,但不能进入的容器。 在ES6中,var仍然以这种方式工作,使用函数作为容器,但有两种新的方法来声明变量:和let。 const和let使用{和}块作为容器,故称为“块作用域”。 块作用域在循环期间非常有用。 考虑以下代码: var i; for (i = 0; i < 10; i += 1) { var j = i; let k = i; } co

  • 主要内容:Python局部变量,Python全局变量,获取指定作用域范围中的变量所谓 作用域(Scope),就是变量的有效范围,就是变量可以在哪个范围以内使用。有些变量可以在整段代码的任意位置使用,有些变量只能在函数内部使用,有些变量只能在 for 循环内部使用。 变量的作用域由变量的定义位置决定,在不同位置定义的变量,它的作用域是不一样的。本节我们只讲解两种变量, 局部变量和 全局变量。 Python局部变量 在函数内部定义的变量,它的作用域也仅限于函数内部,出了函数就不能