前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Activiti 开发案例之流程任务指派、转办以及委派

Activiti 开发案例之流程任务指派、转办以及委派

作者头像
小柒2012
发布2019-12-24 11:23:14
3.7K0
发布2019-12-24 11:23:14
举报
文章被收录于专栏:IT笔记IT笔记

指派

前提是流程中中配置了assignee变量:

代码语言:javascript
复制
Map<String,Object> variables=new HashMap<>();
variables.put("assignee", userId);
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();
taskService.claim(taskId, userId);
taskService.complete(taskId, variables);

不需要配置变量,直接使用API

代码语言:javascript
复制
Map<String,Object> variables=new HashMap<String,Object>();
variables.put("approve", "false");
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();
//一定要认领任务之后,重新获取当前任务,然后分配角色。
taskService.claim(task.getId(), userId);
taskService.complete(task.getId(), variables);
task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();
//指派任务
taskService.addCandidateUser(task.getId(),userId);
//如果是指派角色
taskService.addCandidateGroup(task.getId(),roleId);

转办

转办:直接将办理人换成别人,这时任务的拥有着不再是转办人。

如果是第一种方式的指派:

代码语言:javascript
复制
//直接转派就可以覆盖掉之前的
taskService.setAssignee(taskId,userId);

如果是第二种方式的指派:

代码语言:javascript
复制
/**
* 删除指派人重新指派
*/
taskService.deleteCandidateUser(taskId,"原用户ID");
taskService.addCandidateUser(taskId,"新用户ID");

如果要查询转给他人处理的任务,可以同时将OWNER进行设置:

代码语言:javascript
复制
taskService.setOwner(taskId, userId);

委派

委派:是将任务节点分给其他人处理,等其他人处理好之后,委派任务会自动回到委派人的任务中。

代码语言:javascript
复制
//将任务进行委派
taskService.delegateTask(taskId, userId);
//被委派人办理任务后
taskService.resolveTask(taskId,variables);
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 指派
  • 转办
  • 委派
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档