jbpm中组任务的指定
来源:互联网 发布:mysql 删除某个字段 编辑:程序博客网 时间:2024/06/04 19:40
组任务的分配:
1,直接指定:candidate-users="经理A,经理B,经理C"
2,使用流程变量:
代码:variables.put("userIds", "经理AAA,经理BBB,经理CCC");
定义:candidate-users="#{userIds}"
3,使用AssignmentHandler,写代码:
assignable.addCandidateUser("经理AA");
assignable.addCandidateUser("经理BB");
assignable.addCandidateUser("经理CC");
三、可以在_participation中查看相应的信息
1,直接指定:candidate-users="经理A,经理B,经理C"
2,使用流程变量:
代码:variables.put("userIds", "经理AAA,经理BBB,经理CCC");
定义:candidate-users="#{userIds}"
3,使用AssignmentHandler,写代码:
assignable.addCandidateUser("经理AA");
assignable.addCandidateUser("经理BB");
assignable.addCandidateUser("经理CC");
一、流程图
二、代码实现(主要是针对方式2),方式3)可以参考个人任务的指定)
package com.njupt.task;import java.io.InputStream;import java.util.HashMap;import java.util.List;import java.util.Map;import org.jbpm.api.Configuration;import org.jbpm.api.ProcessEngine;import org.jbpm.api.ProcessInstance;import org.jbpm.api.task.Task;import org.junit.Test;public class ProcessTest {private ProcessEngine processEngine = Configuration.getProcessEngine();@Testpublic void test() throws Exception {// 1,部署流程定义InputStream in = getClass().getResourceAsStream("test.jpdl.xml");processEngine.getRepositoryService()//.createDeployment()//.addResourceFromInputStream("test.jpdl.xml", in)//.deploy();// 2,启动流程实例Map<String, Object> variables = new HashMap<String, Object>();variables.put("userIds", "经理AAA,经理BBB,经理CCC");ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test", variables);}// 查询我的任务列表@Testpublic void testFindMyTask() throws Exception {String userId = "经理C";// >> 查询个人任务// List<Task> taskList = processEngine.getTaskService().findPersonalTasks(userId);// List<Task> taskList = processEngine.getTaskService()//// .createTaskQuery()//// .assignee(userId)// 指定办理人这个条件// .list(); // 查询列表// >> 查询组任务List<Task> taskList = processEngine.getTaskService().findGroupTasks(userId);// List<Task> taskList = processEngine.getTaskService()//// .createTaskQuery()//// .candidate(userId)// 指定候选人这个条件// .list(); // 查询列表// 显示System.out.println("=========== 【" + userId + "】的任务列表 ==========");for (Task task : taskList) {System.out.println("id=" + task.getId()// 任务的ID+ ", name=" + task.getName()// 任务的名称+ ", assignee=" + task.getAssignee()// 任务办理人+ ", createTime=" + task.getCreateTime()// 任务的创建时间+ ", executionId=" + task.getExecutionId()); // 所属的执行对象的ID}}// 拾取任务@Testpublic void testTakeTask() throws Exception {String taskId = "300008";String userId = "经理C";processEngine.getTaskService().takeTask(taskId, userId);}// 重新分配任务(重新指定办理人)@Testpublic void testAssignTask() throws Exception {String taskId = "300008";// String userId = "经理A";String userId = null;processEngine.getTaskService().assignTask(taskId, userId);}}
三、可以在_participation中查看相应的信息
- jbpm中组任务的指定
- jbpm中个人任务的指定方式
- jbpm动态指定任务对应的用户
- JBPM-组任务
- jBPM中任务分派和组织建模的分析
- JBPM中流程变量与任务变量的区别
- JBPM中流程变量和任务变量的区别
- JBPM中任务分配的几种方式
- jbpm的任务管理实现
- JBPM的任务分派机制
- jbpm的任务管理实现
- jbpm的任务管理实现
- JBPM的任务分派机制
- jbpm的任务管理实现
- jbpm的任务管理实现
- JBPM的任务分派机制
- JBPM的任务分派机制
- JBPM的任务分派机制
- struts2中各个jar包作用
- Spring PropertyPlaceholderConfigurer的使用
- 驱动之并发控制
- 10201 - Adventures in Moving - Part IV
- Qt学习:项视图类之QListWidget
- jbpm中组任务的指定
- 驱动编程之阻塞与非阻塞
- 在一个字符串中找到第一个只出现一次的字符
- Oracle Business Intelligence Enterprise Edition (OBIEE) 11g安装
- LDA-math-神奇的Gamma函数
- 使用DBCP或C3P0存储二进制抛出异常
- 【Design Pattern】Builder模式的一种实现
- 【Hadoop】RPC Server Workflow
- 位运算超强总结