activiti中多实例任务中动态添加⽤户ID、删除⽤户、委派
⾸先得说下这个其实名不副实,因为多实例任务不太容易实现动态增加⽤户ID,到底要创建⼏个task,在启动流程的时候已经完成了。
后来在朋友的提⽰下换了个⽅式。
第⼀、流程图:
第⼆、排他⽹管向UrTask的连接需要增加⼀个表达式,⽐如:${endFlag=="fal"},排他⽹关朝着结束节点的连接线需要增加
${endFlag=="true"}。
第三、增加⼀个创建UrTask时触发的监听器,代码如:
ow;
;
;
teTask;
stener;
/**
*分配⽤户
*
*/
publicclassUrAssignerListene贯 rimplementsTaskListener{
privatestaticfinallongrialVersionUID=7782447L;
List
@Override
publicvoidnotify(Dele猪油盒 gateTaskdelegateTask){
StringendFlag=(St适合微信头像的图片 ring)iable("endFlag");//这⾥的逻辑可以扩展,动态去取⽤户,可以增加⽤户,或
者替换⽤户,也或者是删除⽤户。
if(("fal")){
intindex=(Integer)iable("index");
Stringur=(index);
ignee(ur);
//设置结束⼯作流标志
if(index==(()-1)){
iable("end土生什么 Flag","true");
}
}
}
}
第三:测试代码如:
publicvoidmultleInstance(){
Map
("index",0);//放⼊变量表⽰完成了第⼏个task;
("endFlag","fal");
cessInstanceByKey("approve5",null,map);
//获取zc的⽤户
List
fo浑黄一体 r(TasktempTask:taskList){
n("zc任务是:"+e());
Map
("index",1);
teTask((),map1);
}
//获取ls的⽤户,这个在count变量为1的时候在UrGetService中动弹增加的
List
for(TasktempTask:taskList2){
n("ls任务是:"+e());
Map
("index",2);
teTask((),map2);
}痰多如何治疗
//获取zt的⽤户,这个在count变量为1的时候在这个在UrGetService中动弹增加的
List
for(TasktempTask:taskList3){
n("zt任务是:"+e());
teTask((),null);
}
}
这个思路的核⼼思想就是:只要还有⽤户就充分创建UrTask,否则就结束⼯作流。
本文发布于:2023-03-22 23:53:37,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/2c7b27d936edc4ce9a982d80ad62e3a9.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:委派任务.doc
本文 PDF 下载地址:委派任务.pdf
留言与评论(共有 0 条评论) |