流程表达式

流程、流程环节、流程规则的属性支持设置为表达式,根据属性的功能,设置不同的表达式

  • 组织表达式:用于设置处理人、通知人、处理人范围
  • 普通表达式:用于设置任务标题、通知标题
  • 条件表达式:用于设置条件、生效条件
  • 其它表达式:用于设置流程、业务主键等

组织表达式

用于处理人、通知人、处理人范围,返回值必须是组织单元 OrgUnits 类型

1724325301848

处理人表达式

在设置处理人表达式时,可以直接从组织、组织角色中选择处理人,也可以通过表达式来指定处理人。处理人请参考《流程环节》中活动环节的处理人。处理人与条件表达式一样,可以组合多个函数进行取值

常用表达式

函数 释义 示例
fieldValue() 获取表单字段值 fieldValue('fid')
getProcessData1() 获取业务主键 getProcessData1()
getVar() 获取流程变量的值 getVar('myFlowVar')
getValueByUrl() 通过服务获取值 findOrgUnitsByCode(getValueByUrl('/order/main/order/getreplyexecutorscode'))

特别说明

  1. 表达式返回的值可以是组织节点的 fid(全路径 id)、id(标识)、code(编码),如果是多个,返回值可以用逗号隔开,如“001,002,003”
  2. 返回值必须使用 OrgUnits 相关函数转换为 OrgUnits 对象,如 findOrgUnitsByCode、findOrgUnitsByID 等

普通表达式

用于任务标题、通知标题

1724325410738

任务标题表达式

任务标题可以设置用户所看到的待办、已办等任务的标题,系统生成任务标题的默认规则为:环节名:流程名,如下图所示:

image.png

流程支持自定义任务标题,在标题中可以带上业务数据,比如单号、金额、申请人等关键信息,不仅方便审批者从待办任务中就可以直接看出表单相关的关键信息,还可以用于任务的筛选,比如筛选出某位申请人的审批单。

image.png

表达式设置如下:

concat('报销审批流程--申请人:',fieldValue('applicant'),'--联系电话:',fieldValue('phone'),'--审批环节:','财务审批')

运行效果如下:

image.png

条件表达式

用于条件、生效条件

条件编辑器

条件分支和条件环节的条件属性,都支持使用条件编辑器

image.png

条件编辑器

  • 连接:支持设置多个条件,条件之间支持并且、或者、小括号
  • 列:支持两种方式:在下拉框中选择业务字段,在 ┇ 中选择一个表达式
  • 操作:选择操作符
  • 值:支持两种方式:输入值,在 ┇ 中选择一个表达式

1724652965130

操作符号释义:

操作符号 含义 示例
等于 值相等 客户类型等于'VIP'
不等于 值不相等 卡类别不等于'白金卡'
大于 值大于 金额大于1000
小于 值小于 金额小于1000
大于等于 值大于等于 金额大于等于1000
小于等于 值小于等于 金额小于等于1000
包含 匹配出目标值 公司名称包含'有限'
包含于 存在于目标值中 年级包含于'一年级,二年级'

常用表达式

toInteger():将结果转换为整形
getValueByUrl():通过服务取值
concat():拼接字符串
encodeURIComponent():对参数进行编码
fieldValue():根据字段名取流程表单的值

例如

toInteger(getValueByUrl(concat('/hr/main/apply/getdeptrecruitnum?dept=',encodeURIComponent(fieldValue('DEPTNAME')))))

无条件编辑器

有些规则的布尔类型的属性,系统没有提供条件编辑器,例如执行规则的生效条件属性

image.png

此时需要写出完整的表达式,如下图所示

image.png

常用表达式

  • 判断表单中字段的值等于某个值
fieldvalue('name')='abc'
  • 判断表单中字段的值包含某个值
contains(fieldValue('orderNo'),'abc')
  • 判断表单中字段的值不等于某个值
fieldValue('code')<>'001'
  • 判断表单中字段的值大于或小于某个值
fieldValue('num')>5000
  • 多个判断条件,使用 or 或者 and 连接
fieldValue('name') ='abc' and fieldValue('createPerson')='北生一'
fieldValue('name') ='abc' or fieldValue('createPerson')='北生一'
  • 判断表单字段值不为空
not(fieldValue('name')=null)
  • 使用三元运算符用
iff(contains(fieldValue('name'),'abc'),fieldValue('code')<>'001',fieldValue('num')>5000)
  • 调用服务查询
getValueByUrl('/oa/main/org/getOrg')

其它表达式

返回流程编码

用于动态子流程

1724326215818

业务主键

用于业务主键

1724325362344

results matching ""

    No results matching ""