全部文档
文档中心工作流使用手册变量

变量

工作流作为任务流转工具,每个任务间需要传递参数以满足每个任务的输入与输出,因此,我们在工作流中定义了一整套变量体系,以帮助您进行任务数据/流程数据的全局传递。

变量在工作流中是一个贯穿整个流程生命周期,存在于每一个节点配置中的概念,理解并使用变量,将使您的流程“活”起来,您可以实现很多原本并不可能做到的事情。 如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。

如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。


注意,工作流中的变量与先胜云平台中的变量不同,只是作为工作流流程流转的一个工具,会跟随工作流版本,不同版本的变量只会作用于当前流程版本。

基于不同的来源、使用场景和作用域,我们对变量有以下分类:

变量分类

作用域

主要分类

领域前缀

说明

全局变量

工作流属性

wf$

包括元素和版本层面的信息

工作流实例属性

wfp$

流程实例层级的信息

启动参数

wfi$

自定义的流程入参,流程启动时外部传入,不可修改

全局变量

wfv$

自定义的全局变量,用来进行流程赋值流转,可多次修改

局部变量-当前节点

当前活动实例属性

acp$

当前活动自身的属性信息和实例信息

当前活动实例输出结果

acr$

当前活动内的输出结果,常需要输出到全局变量使用

多实例级属性

macp$

当前多实例级活动自身的属性信息和实例信息

多实例级输出结果

macr$

当前多实例级活动的整体输出结果,常需要输出到全局变量使用

关于每一种分类的变量细节,可查看实时更新文档:⚠️变量体系整理,我们将随迭代逐步完善和丰富整个变量体系。


可参考下表,为截止2023年底支持的变量(在各配置节点允许使用的变量不同,后续会详细介绍):

作用域

主要分类

领域前缀

变量

数据类型

描述

JS表达式(示例)

流程全局

工作流属性

wf$

id

string

工作流元素id

wf$id

code

string

工作流元素编码

wf$code

name

string

工作流元素名称

wf$name

version

string

当前工作流版本的版本号

wf$version

version_name

string

当前工作流版本的版本名

wf$version_name

creator_id

string

当前工作流版本的创建人user_id

wf$creator_id

工作流实例属性

wfp$

proc_id

string

流程实例id

wfp$proc_id

priority

integer

流程实例的优先级,「高、中、低」对应的变量值为「100、50、0」

wfp$priority

start_time

datetime

流程实例的开始时间

wfp$start_time

due_time

datetime

流程实例的到期时间

wfp$due_time

initiator_id

string

流程实例的发起人user_id

wfp$initiator_id

parent_proc_id

string

当前流程实例发起的父级工作流实例id,调用子流程/多实例子流程特有

wfp$parent_proc_id

root_proc_id

string

递归向上查询的根级别流程实例id,调用子流程/多实例子流程特有

wfp$root_proc_id

启动参数

wfi!

input1(示例)

string(示例)

流程变量中定义的流程启动参数

wfi$input1

全局变量

wfv$

var1(示例)

string(示例)

流程变量中定义的流程全局变量

wfv$var1

局部变量-当前节点

当前活动实例属性

acp$

task_id

string

任务实例id

acp$task_id

assignee_user_id

string

当前任务的处理人user_id(用户)

acp$assignee_user_id

assignee_group_id

string

当前任务的处理人group_id(用户组)

acp$assignee_group_id

candidates_user_id

string[]

当前任务的候选人范围user_id数组(用户)

acp$candidates_user_id

candidates_group_id

string[]

当前活动的候选人范围group_id数组(用户组)

acp$candidates_group_id

priority

integer

当前任务的优先级,「高、中、低」对应的变量值为「100、50、0」

acp$priority

code

string

当前活动编码

acp$code

name

string

当前活动名称

acp$name

start_time

datetime

活动实例的开始时间

acp$start_time

due_time

datetime

活动实例的到期时间

acp$due_time

task_link

string

每个任务实例对应的待办详情的URL,常用于跳转至任务处理界面

acp$task_link

当前活动实例输出结果

acr$

outcome

string

单人任务的输出结果,如果是【多人任务】节点,指的是单任务的输出结果

acr$outcome

extra_res

object

【UX-任务处理】控件中,传递给单人任务的输出结果,如果是【多人任务】节点,则是传递多人任务中的单任务的输出结果

acr$extra_res.key1

key1(示例)

string(示例)

PY脚本的指定输出结构中的输出键,PY脚本特有

acr$key1

response

object

调用外部服务后返回给工作流的结果对象,财务模型和DeepModel特有

acr$response.key1

var01(示例)

string(示例)

选择的输出变量(子流程的全局变量),调用子流程特有

acr$var01

started_proc_id

string

启动的工作流实例id,启动工作流特有

acr$started_proc_id

num_of_updated

integer

更新数据的条数,由对应服务返回,更新数据表特有

acr$num_of_updated

cal_var01(示例)

string(示例)

「计算流」的返回参数,调用计算流特有

acr$cal_var01

多实例级属性

macp$

nr_of_instances

integer

多实例活动下总实例数

macp$nr_of_instances

nr_of_active_instances

integer

多实例活动下活跃实例数

macp$nr_of_active_instances

nr_of_completed_instances

integer

多实例活动下已完成实例数

macp$nr_of_completed_instances

多实例级输出结果

macr$

list_of_var01(示例)

string[](示例)

选择的输出变量(子流程的全局变量),按索引组装为数组,多实例子流程特有

macr$list_of_var01

outcome

string

多人任务节点的输出结果,多人任务特有

macr$outcome

started_proc_ids

string[]

启动工作流的流程实例数组,批量启动工作流特有

macr$started_proc_ids

目前,我们在工作流中约定的数据类型如下:

作为数组

类型

非数组

字符 - string

布尔值 - boolean

数字(整数)- integer

数字(小数)- decimal

日期时间 - datetime

数组

字符串数组 - string[]

布尔值数组 - boolean[]

数字数组(整数)- integer[]

数字数组(小数)- decimal[]

日期时间数组 - datetime[]

鉴于目前先胜云平台中不同组件的数据类型还未完全一致,因此在和外部组件进行变量数据传递时,请不要将非上述数据类型的参数返回到工作流,不然有可能会导致对应参数内容不能被工作流接收。

在工作流元素中,大部分的变量都是系统预置的,用来存储和传递流程中产生的数据,为了便于业务信息的输入输出、方便流程的灵活流转,我们提供了两个可以自行创建的变量类型。


在流程配置界面左侧第二个tab栏,可以创建启动参数和全局变量。


启动参数

  • 启动参数可以自定义创建,创建之后需要跟随流程版本发布后才可以使用

  • 启动参数创建后,在流程启动时可以由流程发起方传入参数值,可以理解为流程的入参

    • 配置时可以指定是否不可为空,如果设置为不可为空,则启动流程时必填


  • 启动参数的值一般是当前流程对应的业务参数,为了保证启动参数的值在流程流转中不会产生变更,我们不允许修改流程启动参数,这样可以保证在工作流的任何节点,您都可以使用流程启动时的启动参数

全局变量

  • 全局变量可以自定义创建,创建之后需要跟随流程版本发布后才可以使用

  • 全局变量可以赋初始值,也可以在每个节点结束后进行值的修改,这意味着您可以通过不断修改全局变量的值,影响到流程的流转方向,我们在后续的示例中将会为您演示这会让您的流程多么灵活


  • 由于全局变量是唯一可以变更值的变量,因此您将在很多地方用到它,您可以将流程的局部变量通过全局变量传递出来,也可以作为静态值的中转站,根据需要不断修改全局变量的值

  • 初始值的说明:

    • 初始值是程实例启动时,此变量的值;

    • 此变量作为数组时,初始值允许使用空数组;

    • 目前支持的初始值类型包括静态值 置空 表达式


      • 使用静态值时,可输入的静态值与变量类型有关;

      • 使用表达式时,支持引用前序的全局变量,若引用了后序变量,将得到null;

回到顶部

咨询热线

400-821-9199

我们使用 ChatGPT,基于文档中心的内容以及对话上下文回答您的问题。

ctrl+Enter to send