一、条件表达式

  • 流程在行进过程中,需要进行分支处理,而如何分支就需要设定一定的条件,条件表达式就是完成这个工作。

编辑流程表达式

1.新建条件环节后,在属性面板进行表达式的编辑。

image.png

2.点击新增,新增空行,在列中选择业务字段,操作中选中符号,在值中输入表达式的值。

image.png

3.操作符号释义:

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

4.“值”输入框除了输入具体的值之外,还可以通过组合表达式取值,参考示例如下。

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

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

二、事件生效表达式

  • 流程事件的生效,可以用表达式来控制,最简单的场景比如当业务上的某个字段满足某个条件时,触发一个事件去执行某个动作。
  • 生效条件默认为空,此时的事件会默认执行。
  • 当生效条件不为空时,事件的执行会根据条件表达式的返回决定是否执行,返回为true,事件执行,反之不执行。
  • 示例:

image.png

  • 如果该条件是一个复杂的计算的结果,则可以定义一个服务来处理计算的过程,默认会把主键作为参数传递过去,在自己定义的服务中按名称定义该参数即可。

  • 也可以像条件表达式一样,用多函数拼接的方式返回数据。

getValueByUrl('/oa/main/org/getOrg')
oa:应用名
main:模块名,平台的模块名默认为main
org:服务名
getOrg:函数名

三、执行规则表达式

1. 执行者表达式

  • 在设置执行人表达式时,可以直接从组织角色、上下文环境、组织中选择某个执行者单元,也可以通过函数编辑表达式来指定执行者。
  • 执行者函数的释义请参考参考业务流程执行者
  • 执行者与条件表达式一样,可以组合多个函数进行取值。
  • 这里补充部分表达式示例:
函数 释义 示例
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等。

2. 执行者范围表达式

  • 流程除了设置执行者之外,还可以设置执行者范围,执行者是直接指定执行人,执行者范围是指定一个执行范围,用户在选择执行人时可以从执行者范围选择执行人。

image.png

  • 如上示例中,当设置了执行者范围为财务部以后,可以在从设定的执行者范围中选择执行人,如下图所示。

image.png

3. 生效表达式

  • 流程环节的执行也可以通过表达式进行控制。

image.png

  • 首环节的执行规则默认为isStartingProcess(),其他环节默认为true。
  • 也可以像条件表达式一样通过函数来进行控制,比如设置为:fieldValue('total')>1000,表示金额大于1000该环节才执行。
  • 也可以通过getValueByUrl函数,从服务的返回值来判断。

4.任务标题表达式

  • 任务标题可以设置用户所看到的待办、已办等任务的标题,平台会默认生成简单的任务标题,如下图所示:

image.png

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

image.png

表达式设置如下:

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

运行效果如下:

image.png

results matching ""

    No results matching ""

    results matching ""

      No results matching ""