> Activiti5使用UEL表达式。UEL是java EE6规范的一部分,UEL(Unified Expression Language)即统一表达式语言,activiti支持两个UEL表达式:UEL-value和UEL-method。 > > 表达式可以使用在User tasks, Service tasks, Execution Listeners,Task Listeners和Conditional sequence flows中 常用的自定义表达式可以在【流程设计-流程表达式】中进行维护 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0527/202928_a19cf2aa_443268.png "1.png") ### 一. UEL-value 案例1:设置当前任务办理人为流程发起人,使用表达式${applyUserId} ![输入图片说明](https://images.gitee.com/uploads/images/2019/0527/201716_050badfd_443268.png "1.png") 案例2:分支条件判断 ![输入图片说明](https://images.gitee.com/uploads/images/2019/0527/192816_5540709f_443268.png "1.png") ![输入图片说明](https://images.gitee.com/uploads/images/2019/0527/192834_22f860c4_443268.png "2.png") ![输入图片说明](https://images.gitee.com/uploads/images/2019/0527/192842_cef13a75_443268.png "3.png") ### 二. UEL-method **自定义表达式定义** ``` /** * * 类名:FlowUtil * 功能:流程实例运行中辅助类 * 详细:此类暴露给流程,可在流程定义使用表达式来使用此类的方法,必须由Spring创建才有效 * * 对外暴露的名称 flowUtil * */ @Slf4j @Service("flowUtil") public class FlowUtil { /** * 获取指定的下一步会签人员 * @param content * @return */ public List<String> stringToList(String content){ log.info("------stringToList------"+content); if(StringUtils.isEmpty(content)){ throw new BpmException("提交失败,下一任务是会签节点,请选择会签人员"); } String[] s = content.split(","); return Arrays.asList(s); } } ``` > 该方法从流程变量中获取值作为参数,进行方法处理 例如:调用方法 ${flowUtil.stringToList(assigneeUserIdList)} 其中 assigneeUserIdList 为流程变量中的key , flowUtil 为 @Service("flowUtil") 定义的bean名称