流程变量
- 流程中可以定义流程变量,它可以在流程的各个环节进行赋值,代码启动流程时可以初始化流程变量
- 一个流程可以定义多个流程变量
- 在页面中通过流程组件取到流程变量的值
定义流程变量
进入流程设计页面,点击“高级设置”,进入“流程变量”进行定义。
- 新增:新增一个流程变量
- 名称:流程变量的唯一标识,用英文定义
- 数据类型:包括字符串、整数、小数、日期、日期时间等
- 作用范围
- 任务:任务级变量,在某个环节修改后,不会影响其他环节的值
- 流程:流程级变量,在某个环节修改后,值就全局改变,含义可类比“全局变量”
- 值类型:常量、表达式
- 存储字段:4个整数字段 sEIVar1、sEIVar2、sEIVar3、sEIVar4;4个字符字段 sESVar1、sESVar2、sESVar3、sESVar4
- 值:变量的初始值
特别说明
- 流程级变量可以在各个环节进行赋值,呈现出各环节不同的值,但是当任务在“已办”中打开时(说明此时的流程已不在当前环节),该变量的值并不会是当前环节定义的值,所以“流程级”变量应该慎用!
- 举例:在第二环节设置一个流程变量,控制价格不可见,在第三环节设置修改该变量的值,以控制该价格可见,在第二环节打开待办时,价格的可见性是正常的,但是当流程流转到第三环节,此时第二环节的人从已办去查看该任务时,价格的可见性就不对了,因为此时该变量的值已改变!
修改流程变量
设计时赋值
在需要修改的环节,点击“高级设置”,进入“流程变量”,点击“变量赋值”。在“名称”中选择流程变量,在“值”中录入值。
运行时赋值
在 JS 代码中,调用工作流组件的方法修改
修改流程级的流程变量
let wfmui = this.comp("wfmui");
wfmui.updateFlowVars(wfmui.getTask(), {"priceHide": "true"});
修改任务级的流程变量
let wfmui = this.comp("wfmui");
wfmui.updateTaskVars(wfmui.getTask(), {"priceHide": "true"})
获取流程变量
流程组件提供两种获取变量的方法
- 获取变量 getVar,用于界面绑定,变量值是在页面加载时获取的,后面如果有更新,这里不变
- 获取实时变量 queryFlowVars queryTaskVars,用于 JS 代码,变量值是实时获取的,能获取到更新后的值
获取变量
在属性编辑器中,找到流程组件,点击该组件提供的“获取变量”方法,方法的参数为定义的流程变量名称。
获取实时变量
在 JS 代码中,调用工作流组件的方法获取
获取任务级的流程变量
let vars = await this.comp("wfmui").queryTaskVars();
let myFlowVar = vars.myFlowVar;
获取流程级的流程变量
let vars = await this.comp("wfmui").queryFlowVars();
let myFlowVar = vars.myFlowVar;