工作流作为任务流转工具,每个任务间需要传递参数以满足每个任务的输入与输出,因此,我们在工作流中定义了一整套变量体系,以帮助您进行任务数据/流程数据的全局传递。
变量在工作流中是一个贯穿整个流程生命周期,存在于每一个节点配置中的概念,理解并使用变量,将使您的流程“活”起来,您可以实现很多原本并不可能做到的事情。 如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。
如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。
基于不同的来源、使用场景和作用域,我们对变量有以下分类:
变量分类
|
|
|
|
---|---|---|---|
作用域 |
主要分类 |
领域前缀 |
说明 |
全局变量 |
工作流属性 |
wf$ |
包括元素和版本层面的信息 |
工作流实例属性 |
wfp$ |
流程实例层级的信息 | |
启动参数 |
wfi$ |
自定义的流程入参,流程启动时外部传入,不可修改 | |
全局变量 |
wfv$ |
自定义的全局变量,用来进行流程赋值流转,可多次修改 | |
局部变量-当前节点 |
当前活动实例属性 |
acp$ |
当前活动自身的属性信息和实例信息 |
当前活动实例输出结果 |
acr$ |
当前活动内的输出结果,常需要输出到全局变量使用 | |
多实例级属性 |
macp$ |
当前多实例级活动自身的属性信息和实例信息 | |
多实例级输出结果 |
macr$ |
当前多实例级活动的整体输出结果,常需要输出到全局变量使用 |
关于每一种分类的变量细节,可查看实时更新文档:⚠️变量体系整理,我们将随迭代逐步完善和丰富整个变量体系。
作用域
|
主要分类
|
领域前缀
|
变量
|
数据类型
|
描述
|
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[] |
鉴于目前先胜云平台中不同组件的数据类型还未完全一致,因此在和外部组件进行变量数据传递时,请不要将非上述数据类型的参数返回到工作流,不然有可能会导致对应参数内容不能被工作流接收。
在工作流元素中,大部分的变量都是系统预置的,用来存储和传递流程中产生的数据,为了便于业务信息的输入输出、方便流程的灵活流转,我们提供了两个可以自行创建的变量类型。
启动参数可以自定义创建,创建之后需要跟随流程版本发布后才可以使用
启动参数创建后,在流程启动时可以由流程发起方传入参数值,可以理解为流程的入参
配置时可以指定是否不可为空,如果设置为不可为空,则启动流程时必填
启动参数的值一般是当前流程对应的业务参数,为了保证启动参数的值在流程流转中不会产生变更,我们不允许修改流程启动参数,这样可以保证在工作流的任何节点,您都可以使用流程启动时的启动参数
全局变量
全局变量可以自定义创建,创建之后需要跟随流程版本发布后才可以使用
全局变量可以赋初始值,也可以在每个节点结束后进行值的修改,这意味着您可以通过不断修改全局变量的值,影响到流程的流转方向,我们在后续的示例中将会为您演示这会让您的流程多么灵活
由于全局变量是唯一可以变更值的变量,因此您将在很多地方用到它,您可以将流程的局部变量通过全局变量传递出来,也可以作为静态值的中转站,根据需要不断修改全局变量的值
对初始值的说明:
初始值是程实例启动时,此变量的值;
此变量作为数组时,初始值允许使用空数组;
目前支持的初始值类型包括静态值
置空
表达式
:
使用静态值
时,可输入的静态值与变量类型有关;
使用表达式
时,支持引用前序的全局变量,若引用了后序变量,将得到null;
回到顶部
咨询热线