jbpm--(五)jbpm4.4与EL表达式结合使用
<?xml version="1.0" encoding="UTF-8"?> <process name="test" key="test" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start1" g="371,108,48,48"> <transition name="提交到科长" to="科长审批" g="-67,-14"/> </start> <task assignee="${kezhang}" name="科长审批" g="348,222,92,52"> <transition name="提交到主任" to="主任审批" g="-53,-17"/> </task> <task assignee="${zhuren}" name="主任审批" g="352,328,92,52"> <transition name="通过" to="end1" g="-47,-17"/> </task> <end name="end1" g="380,428,48,48"/> </process>
package com.tgb.video; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import org.jbpm.api.ProcessInstance; import org.jbpm.api.task.Task; /** * 流程变量 * @author Administrator * */ public class TestVariable extends JbpmTestCase implements JbpmUtil { @Override public void deploy() { super.startUp(); repositoryService.createDeployment().addResourceFromClasspath("test.jpdl.xml").deploy(); } /** * 创建流程实例,设置流程变量 */ @Override public void createInstance() { super.startUp(); Map<String,Object> variable = new HashMap<String,Object>(); variable.put("kezhang", "0011"); variable.put("zhuren", "tomm"); ProcessInstance processInstance = executionService.startProcessInstanceByKey("test", variable); super.print("流程实例ID", processInstance.getId()); } @Override public void getCurrectActivity() { // TODO Auto-generated method stub } @Override public void getTask() { super.startUp(); List<Task> tasks=taskService.findPersonalTasks("tomm"); print("任务数量", Integer.toString(tasks.size())); print("任务名词",tasks.get(0).getActivityName()); } /** * 任务节点向下推进 */ @Override public void completeTask() { super.startUp(); taskService.completeTask("120001"); } public void addTaskVariable(){ super.startUp(); Map<String,Object> map = new HashMap<String,Object>(); map.put("taskUserID", "100"); map.put("taskUserName", "jack"); taskService.setVariables("50004", map); } public void getTaskVariable(){ super.startUp(); String taskUserID = taskService.getVariable("70001", "userId").toString(); String taskUserName = taskService.getVariable("70001", "userName").toString(); print("taskuserID",taskUserID); print("taskUserName",taskUserName); } /** * 获取流程变量 */ public void getMyVariable(){ super.startUp(); String userId = executionService.getVariable("test.70001", "userId1").toString(); String userName = executionService.getVariable("test.70001", "userName1").toString(); this.print("userId1", userId); this.print("userName1", userName); } /** * 更新流程变量 */ public void updateMyVariable(){ super.startUp(); executionService.setVariable("test.70001", "userId1", "002"); } public void findMyVariable(){ super.startUp(); //迭代所有的变量的名称 Set<String> set = executionService.getVariableNames("test.50001"); Iterator iter = set.iterator(); while(iter.hasNext()){ System.out.println(iter.next()); } //迭代变量名称和值 Map<String,Object> map = executionService.getVariables("test.50001", set); Iterator it = map.entrySet().iterator(); while(it.hasNext()){ Map.Entry m = (Map.Entry)it.next(); this.print(m.getKey().toString(), m.getValue().toString()); } } }
EL表达式取自创建流程实例中 设置的流程变量值,同时也支持对象赋值。
浙公网安备 33010602011771号