工作流作为任务流转工具,每个任务间需要传递参数以满足每个任务的输入与输出,因此,我们在工作流中定义了一整套变量体系,以帮助您进行任务数据/流程数据的全局传递。
变量在工作流中是一个贯穿整个流程生命周期,存在于每一个节点配置中的概念,理解并使用变量,将使您的流程“活”起来,您可以实现很多原本并不可能做到的事情。 如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。
如果说工作流的所有节点构成了流程的骨架,那么变量就是流贯全身的血液。
基于不同的来源、使用场景和作用域,我们对变量有以下分类:
| 变量分类
 |  |  |  | 
|---|---|---|---|
| 作用域 | 主要分类 | 领域前缀 | 说明 | 
| 全局变量 | 工作流属性 | 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;
回到顶部
咨询热线
