流程表达式

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

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

组织表达式

用于处理人、通知人、处理人范围,返回值必须是组织单元 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
包含 匹配出目标值 公司名称包含'有限'
包含于 存在于目标值中 年级包含于'一年级,二年级' 或者 list('一年级','二年级')

常用表达式

toDecimal():转换为高精度数字
toDate():转换为日期
toDateTime():转换为日期时间
currentDate():获取当前日期
currentDateTime():获取当前日期时间
hasRole():是否拥有某个角色
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 ""