UEL是java EE6規範的一部分,UEL(Unified Expression Language)即統一表達式語言,activiti支持兩個UEL表達式:UEL-value和UEL-method。
用處:在流程中設置變量或者設置調用的方法,在流程運行到該節點的時候就會調用方法來執行。
1. UEL Value:
1.1 基本類型
首先我們設置節點
在啓動代碼時動態設置assignee的值
String processDefinitionKey = "purchasingflow";
//設置其啓動的全局變量參數,其value可以是javabean,也可以是普通字符串,數字
Map<String,Object> variables = new HashMap<String, Object>();
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<String,Object> variables = new HashMap<String, Object>();
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) {
}
設置變量就不在這裏說了。