JBPM4学习总结之8——Task之任务泳道和Task任务变量

这里的泳道类似于UML中的泳道的概念,类似于组(Group)的概念,当一个业务流程需要很多种角色来共同、分时才能走完时,就需要泳道的概念引入其中。这种操作和分组操作十分相似。

流程图如下:
JBPM4学习总结之8——Task之任务泳道和Task任务变量

 

 

 

 

 

 

 

 

Xml流程图如下:

<?xml version="1.0" encoding="UTF-8"?>

<process name="TaskSwimlane" xmlns="http://jbpm.org/4.4/jpdl">
	<swimlane name="myswimlane" candidate-groups="tibco"></swimlane>
	<start name="start1" g="57,44,48,48">
		<transition name="to task1" to="task1" g="242,67:-52,-22" />
	</start>
	<task name="task1" g="197,172,92,52" swimlane="myswimlane">
		<transition name="to state1" to="state1" g="242,339:-56,-22" />
	</task>
	<state name="state1" g="52,311,92,52" />
</process>

 

 

 

测试代码如下,和Group测试代码类似

	/**
	 * 使用身份验证接口建立不同的用户、组、组成员
	 */
	public void test02CreateGroup() {
		identityService.createGroup("tibco");

		identityService.createUser("liuyan", "liuyan", "素还真");

		identityService.createMembership("liuyan", "tibco");
	}

	/**
	 * 发起流程
	 */
	public void test03StartTask() {
		
		// 开始process流程
		ProcessInstance processInstance = executionService
				.startProcessInstanceByKey("TaskSwimlane");

		// 流程实例的ID
		String pid = processInstance.getId();

		System.out.println(pid);// TaskSwimlane.20001
	}
	
	/**
	 * 获得指定人的任务列表
	 */
	public void test04GetAssigneeGroupTask() {
		List<Task> taskList1 = taskService.findPersonalTasks("liuyan");

		for (Task task : taskList1) {
			System.out.println(task.getAssignee());
		}
		
		
		List<Task> taskList2 = taskService.findGroupTasks("liuyan");

		for (Task task : taskList2) {
			System.out.println(task.getId());//20002
		}

	}
	
	/**
	 * 争抢获取任务
	 */
	public void test05ExeTask(){
		taskService.takeTask("20002", "liuyan");
		
	}
	
	/**
	 * 完成任务
	 */
	public void test06(){
		taskService.completeTask("20002");
	}

 

 这样将liuyan给了tibco组,凡是tibco组的会员都可以争抢、处理这个task

 

Task的任务变量

任务变量和流程变量的概念差不多,不过任务变量比流程变量更微观、更具体。通过

 

Map<String,Object> vars = taskService.getVariables(tasked,varName);

 

获得任务变量Map

通过

 

taskService.setVariables(tasked,new HashMap<String,Object>());

对任务变量进行赋值。

 

 

你可能感兴趣的:(xml,jbpm,UML)