[Activiti] UEL 统一表达式语言 (任务节点 Assignee 通过变量获取)

UEL是java EE6规范的一部分,UEL(Unified Expression Language)即统一表达式语言,activiti支持两个UEL表达式:UEL-value和UEL-method。

用处:在流程中设置变量或者设置调用的方法,在流程运行到该节点的时候就会调用方法来执行。

1. UEL Value:

1.1 基本类型

首先我们设置节点

[Activiti] UEL 统一表达式语言 (任务节点 Assignee 通过变量获取)_第1张图片

在启动代码时动态设置assignee的值

String processDefinitionKey = "purchasingflow";
//设置其启动的全局变量参数,其value可以是javabean,也可以是普通字符串,数字
Map variables = new HashMap();
variables.put("assignee", "feige");
//设置流程启动时,设置参数启动
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey,variables);

1.2 对象

${user.userId}
public class User implements Serializable{
    /**
     * 用于序列化
     */
    private static final long serialVersionUID = 7717000074223077256L;
    private String userId;
}

String processDefinitionKey = "purchasingflow";

//设置其启动的全局变量参数,其value设置为user对象,这里写死
User user = new User("101","男","张三");

Map variables = new HashMap();
variables.put("user", user);
//设置流程启动时,设置参数启动
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey,variables);

2. UEL Method

	/**
	 * ${leaveProcessAssignService.updateBizStatus(execution,"hr",variable)}
	 * @param execution 可以获取流程或者任务节点信息
	 * @param constant 表达式中的固定值
	 * @param variable 获取流程中的变量中的值,取法同URL-Value中的基本类型
	 */
	public void updateBizStatus(DelegateExecution execution,String constant,String variable) {	
	}

设置变量就不在这里说了。

你可能感兴趣的:(Activiti,Activiti,UEL,Assignee)