activiti任务操作
来源:互联网 发布:成电医星软件怎么样 编辑:程序博客网 时间:2024/06/05 05:56
个人任务的操作
- 使用流程变量
- 在流程图中写入变量#{userID}
- 设置流程变量
- 代码:
Map<String, Object> variables = new HashMap<String, Object>();variables.put("userID", "张翠三");ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("taskProcess",variables);System.out.println("pid:" + pi.getId());
- 使用listener
- 不需要指定办理人
- 添加listener
- listener代码
public class TaskListenerImpl implements TaskListener { /**指定个人任务和组任务的办理人*/ @Override public void notify(DelegateTask delegateTask) { String assignee = "张无忌"; //指定个人任务 delegateTask.setAssignee(assignee); }}
- 认领任务
- 代码:
@Test public void setAssigneeTask(){ //任务ID String taskId = "3408"; //指定认领的办理者 String userId = "周芷若"; processEngine.getTaskService()// .setAssignee(taskId, userId); }
总结
- 个人任务及三种分配方式:
- 在taskProcess.bpmn中直接写 assignee=“张三丰”
- 在taskProcess.bpmn中写 assignee=“#{userID}”,变量的值要是String的。
使用流程变量指定办理人 - 使用TaskListener接口,要使类实现该接口,在类中定义:delegateTask.setAssignee(assignee);// 指定个人任务的办理人
组任务的操作
分配个人任务
- 直接指定办理人
- 在流程图中Candidate users中设置办理人
- 查询个人任务列表
List<Task> list = processEngine.getTaskService()// .createTaskQuery()// .taskAssignee(userId)//指定个人任务查询 .list();
- 查询组任务列表
List<Task> list = processEngine.getTaskService()// .createTaskQuery()// .taskCandidateUser(userId)//指定组任务查询 .list();
- 查询组任务成员列表
String taskId = "3709"; List<IdentityLink> list = processEngine.getTaskService() .getIdentityLinksForTask(taskId);
- 将组任务分配给个人任务,拾取任务
String userId = "小B"; processEngine.getTaskService()// .claim(taskId, userId);
- 将个人任务回退到组任务(前提:之前组任务)
String taskId = "5508"; processEngine.getTaskService()// .setAssignee(taskId, null);
- 向组任务中添加成员
processEngine.getTaskService()// .addCandidateUser(taskId, userId);
- 从组任务中删除成员
processEngine.getTaskService()// .deleteCandidateUser(taskId, userId);
- 使用流程变量
- 在流程图中Candidate users中设置#{userIDs}
- 设置流程变量指定组任务的办理人
- variables.put(“userIDs”, “大大,小小,中中”);
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("taskProcess",variables);
- 在开发中,可以在页面中指定下一个组任务的办理人,通过流程变量设置下一个任务的办理人
- 使用listener
- 不要指定任务的办理人
- TaskListenerImpl类,用来设置任务的办理人
public class TaskListenerImpl implements TaskListener { /**指定个人任务和组任务的办理人*/ @Override public void notify(DelegateTask delegateTask) { String userId1 = "A"; String userId2 = "B"; //指定组任务 delegateTask.addCandidateUser(userId1); delegateTask.addCandidateUser(userId2); }
总结
- 组任务及三种分配方式:
- 在taskProcess.bpmn中直接写 candidate-users=“小A,小B,小C,小D”
- 在taskProcess.bpmn中写 candidate-users =“#{userIDs}”,变量的值要是String的。
使用流程变量指定办理人
Map
角色组
- 在流程图中设置Candidate groups(部门经理)
- 代码
/**在部署流程定义和启动流程实例的中间,设置组任务的办理人,向Activity表中存放组和用户的信息*/ IdentityService identityService = processEngine.getIdentityService();//认证:保存组和用户信息 identityService.saveGroup(new GroupEntity("部门经理"));//建立组 identityService.saveGroup(new GroupEntity("总经理"));//建立组 identityService.saveUser(new UserEntity("小张")); identityService.saveUser(new UserEntity("小李")); identityService.saveUser(new UserEntity("小王")); identityService.createMembership("小张", "部门经理");//建立组和用户关系 identityService.createMembership("小李", "部门经理");//建立组和用户关系 identityService.createMembership("小王", "总经理");//建立组和用户关系 // 2 启动流程 ProcessInstance pi = processEngine.getRuntimeService()// .startProcessInstanceByKey("taskProcess"); System.out.println("pid:" + pi.getId());
- 查询组任务列表
//查询组任务列表 @Test public void findGroupList(){ String userId = "小李";//小张,小李可以查询结果,小王不可以,因为他不是部门经理 List<Task> list = processEngine.getTaskService()// .createTaskQuery()// .taskCandidateUser(userId)//指定组任务查询 .list();
- 表结构关系
- act_id_group 角色组表
- act_id_user 用户表
- act_id_membership 用户角色表
阅读全文
0 0
- activiti任务操作
- Activiti基本操作(部署、启用、查看任务)
- Activiti学习之对用户任务进行操作
- 13.activiti工作流-用户任务(userTask,即用户操作的任务)
- Activiti定时任务示例
- Activiti定时任务示例
- Activiti 邮件任务
- activiti 多实例任务
- activiti会签任务设置
- activiti 多实例任务
- activiti 多实例任务
- 【转】activiti用户任务
- 【转】activiti用户任务
- Activiti获取任务候选人
- activiti任务分配
- Activiti 历史任务查询
- Activiti用户任务分配
- 框架 day56 BOS项目练习(activiti,历史数据操作,流程变量,任务组,监听器,网关,spring整合)
- ACM (8) 一种排序
- spring中配置<mvc:default-servlet-handler />后必须配置<mvc:annotation-driven/>的问题
- 用最少的代码做到数组去重、排序
- Android设置重复文字水印背景
- 一款适用的日期工具类
- activiti任务操作
- (三)dubbo+redis注册中心集群+redis cache(sentinel)+spring
- URL地址中使用中文作为的参数【转】
- Unity3d 检测物体在不在摄像机照射范围内
- heat SoftwareConfig
- IPC机制之Messenger示例
- mybatis插件--三剑客
- 搜索引擎里的大千世界
- easyui-input元素添加js原生方法