流程变量

流程变量

本节描述了流程中变量的概念。变量可用于添加数据以处理运行时状态,或更具体地说,变量作用域。更改这些实体状态的各种API方法都允许更新附加变量。通常,变量由名称和值组成。该名称用于跨流程构造进行标识。例如,如果一个活动设置了一个名为var的变量,则后续活动可以使用该名称访问它。变量的值是一个Java对象。

可变范围和可见性

所有可以具有变量的实体都称为变量作用域。这些是执行(包括流程实例)和任务。如“ 概念”部分中所述,流程实例的运行时状态由执行树表示。考虑以下过程模型,其中红点标记了活动任务:

此过程的运行时结构如下:

有一个带有两个子执行的流程实例,每个子执行都创建了一个任务。所有这五个实体都是可变范围,并且箭头标记了父子关系。除非子作用域定义了相同名称的变量,否则在每个子作用域中都可以访问在父作用域上定义的变量。反之,子变量不能从父作用域访问。直接附加到所讨论范围的变量称为局部变量。考虑以下变量到范围的分配:

在这种情况下,在执行任务1时,可以访问变量worker和customer。请注意,由于范围的结构,变量worker可以定义两次,因此Task 1访问与Task 2不同的worker变量。但是,两者都共享变量客户,这意味着,如果该变量被一项任务更新,则另一项任务也可见此更改。

这两个任务都可以访问两个变量,而这些都不是局部变量。这三个执行都具有一个局部变量。

现在说,我们在任务1上设置了一个本地变量客户:

尽管仍可以从任务1访问名为customer和worker的两个变量,但是执行1上的customer变量是隐藏的,因此可访问的customer变量是Task 1的局部变量。

 

 技术支持:盘古BPM工作流平台

相关教程