范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Flowable设置任务处理人的四种方式

  @  1. 指定具体用户1.1 重新指定任务处理人1.2 自己处理  2. 通过变量设置  3. 通过监听器设置  4. 其他情况
  上篇文章松哥和大家分享了 Flowable 中的 ReceiveTask,这只是流程中任务的一种,今天我们就一起来看另外一个更为常见的 Task--UserTask。
  UserTask 看名字就知道,需要人工干预,而人工处理的方式有很多种,我们可以设置节点是由哪个用户处理,也可以设置是由哪个用户组来处理(相当于是由哪个角色来处理),今天这篇文章我主要和大家分享设置用户的三种方式,至于如何设置用户组,这个咱们下篇文章再聊。
  现在,假设我有如下一个简单的流程图:
  那么我该如何设置这个用户节点的处理人呢?  1. 指定具体用户
  第一种方式,是我们在绘制流程图的时候,可以选中这个节点,然后直接设置流程的处理人,像下面这样:
  然后在打开的窗口中选择固定值,设置具体分配的用户是 javaboy,如下图:
  好了,现在这个节点就固定的由一个名为 javaboy 的用户去处理了。
  对应的 XML 文件如下:     demo01                                    
  在上面这段 XML 中,小伙伴们看到 UserTask 节点中有一个  flowable:assignee="javaboy" ,这句话就是设置这个 UserTask 的处理人。
  接下来,我们部署并启动这个流程(具体的部署启动方式可以参考本系列之前的文章),启动之后,我们可以在数据库的  ACT_RU_TASK  表中看到,这个 UserTask 的处理人是 javaboy,如下图:
  现在我们可以通过 Java 代码去查询 javaboy 需要处理的 UserTask 了,如下:  @Autowired TaskService taskService; @Test void test11() {     List list = taskService.createTaskQuery().taskAssignee("javaboy").list();     for (Task task : list) {         logger.info("id:{},name:{}",task.getId(),task.getName());     } }
  这个查询,本质上其实就是去  ACT_RU_TASK  表中查询的,我们来看看执行的 SQL:
  查询到这个任务之后,javaboy 有两种选择:  将这个任务指定给另外一个人,例如 zhangsan。  自己处理。  1.1 重新指定任务处理人
  假设 javaboy 查询到自己的任务之后,想把这个任务交给 zhangsan 去处理,方式如下:  @Autowired TaskService taskService; @Test void test11() {     List list = taskService.createTaskQuery().taskAssignee("javaboy").list();     for (Task task : list) {         taskService.setAssignee(task.getId(),"zhangsan");     } }
  这行代码执行完成后,我们看数据库中的  ACT_RU_TASK  表,还是刚才那条记录,但是处理人变了,变成了 zhangsan:
  小伙伴们看到,版本号从 1 变为 2 了,说明这条记录被更新过了,处理人则从 javaboy 变为了 zhangsan。
  最后我们再来看下这个操作所执行的 SQL,来验证一下我们前面的结论:
  小伙伴们注意看这里执行的 SQL,以及对应的参数,说明我们上面的分析是没有问题的。  1.2 自己处理
  如果 javaboy 想自己处理这个任务也是可以的,方式如下:  @Autowired TaskService taskService; @Test void test11() {     List list = taskService.createTaskQuery().taskAssignee("javaboy").list();     for (Task task : list) {         taskService.complete(task.getId());     } }
  处理完成后, ACT_RU_TASK  表中的记录也会被自动删除掉(执行过的 UserTask 会被自动删除)。
  这种方式是指定了具体的用户,很显然这种硬编码的方式使用起来很不方便,我们需要的是能够动态指定任务处理人的方式。  2. 通过变量设置
  如果想动态指定 UserTask 的处理人,则可以通过变量来实现,具体方式如下:
  在绘制流程图的时候,还是指定流程的具体处理人,但是在指定的时候,使用变量代替,如下图:
  这里的  #{manager}  表示这个 UserTask 由一个名为 manager 的变量来指定,此时的 XML 文件则是下面这样:    demo01                                    
  小伙伴们看到,UserTask 节点中的  flowable:assignee="#{manager}"  就表示这个 UserTask 的处理人由 manager 变量指定。
  对于这样的流程,我们在上一个节点处就需要指定下一个节点的处理人,对于当前案例来说,当然是要在流程启动的时候,指定这个 UserTask 的处理人,方式如下:  @Test void test01() {     Map variables = new HashMap<>();     variables.put("manager", "javaboy");     ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01",variables);     logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId()); }
  当流程启动成功之后,大家去查看  ACT_RU_TASK  表,就可以看到,有一个待处理的 UserTask,处理人是 javaboy,如下图:
  能看到这条记录,就说明这个 UserTask 的处理人我们已经设置成功了。
  接下来具体的处理逻辑,则参考 1.1 和 1.2 小节。  3. 通过监听器设置
  当然,我们也可以通过监听器来设置任务的处理人。具体方式如下:
  首先我们在绘制流程图的时候,不需要给 UserTask 分配用户,如下图:
  然后我们为这个 UserTask 设置一个任务监听器,步骤如下:
  首先点击  +  号,然后选择 CREATE  事件,最后再给出事件对应的实体类,如下:
  当然这个实体类是我们项目中真实存在的一个类,如下:  public class MyTaskListener implements TaskListener {     @Override     public void notify(DelegateTask delegateTask) {         delegateTask.setAssignee("javaboy");     } }
  当这个 UserTask 创建的时候,就会触发这个监听器,为该 UserTask 设置处理人。
  我们来看看这个流程图对应的 XML 文件是什么样子的:     demo01                                    
  小伙伴们看到, event="create" class="org.javaboy.flowableidm.MyTaskListener"  就是我们设置的内容了。
  现在我们部署并启动这个流程,当我们流程启动后,就可以在  ACT_RU_TASK  表中看到一条 javaboy 待处理的任务了。 4. 其他情况
  最后再来说说一种特殊情况,就是这个 UserTask 由任务的发起人处理,任务是谁发起的,谁来处理人这个 UserTask。
  这个首先需要在流程启动事件上设置任务的发起人变量名,如下,流程的启动节点,然后设置任务的发起人:
  接下来,在给 UserTask 设置处理人的时候,设置处理人和任务的发起人的变量是同一个,如下图:
  好啦,这就可以了。来看看对应的 XML 文件:     demo01                                    
  startEvent 中有一个  flowable:initiator="INITATOR"  表示设置流程发起人的变量为 INITATOR。后续在 UserTask 中使用该变量即可。
  将这个流程部署成功之后,按照如下方式启动流程:  @Test void test01() {     Authentication.setAuthenticatedUserId("javaboy");     ProcessInstance pi = runtimeService.startProcessInstanceByKey("demo01");     logger.info("id:{},activityId:{}", pi.getId(), pi.getActivityId()); }
  Authentication.setAuthenticatedUserId("javaboy");  表示设置流程的发起人为 javaboy。
  好啦,今天的文章就和小伙伴们介绍了如何给 UserTask 设置处理人,后面松哥再和大家分享如何给 UserTask 设置候选人和候选组。

赵力鹤洲新区(筹)将以最快速度推动重点项目早竣工早投产早见效1月29日,珠海市举办2023年第一季度重大项目集中开工活动。据悉,珠海鹤洲新区(筹)一季度拟动工项目13个,总投资83。59亿元,并将以最快速度推动重点项目早竣工早投产早见效。鹤第十四届地产中国论坛暨2022中国房地产红榜2023年1月3日6日,由中国互联网新闻中心中国网地产主办第十四届地产中国论坛暨中国房地产红榜在北京举办,论坛以家国为主题,把脉中国房地产行业的新趋势,求索房地产行业新形势下的发展事关社保!山西出台统一标准省人社厅日前印发山西省社会保险服务事项清单山西省社会保险服务事项办事指南和山西省社会保险服务事项经办手册,制定了全省范围内社会保险公共服务事项无差别受理同标准经办的服务标准,在提升文渊资本朱远?亚狮资本张博?换汤不换药的骗局最近发现网上疯传各种假冒香港公司的网络投资骗局。这些骗子除了通过QQ群小红书思语KOOK等方式加你之外,也会在一些炒股app的评论区里蛊惑人心,诱导你们自己去加他们。带单方式一对一本田再发力,何日才能两面生花?从电动化春风吹来至今,新能源汽车逐渐步入主流,汽车市场已然发生了巨大的变化。虽然近几年受到疫情芯片短缺原材料上涨等因素的影响,汽车增速有所放缓,但是整体来说依旧欣欣向荣。对于目前的涨价清库存!英伟达CEO黄仁勋不亏反赚身家暴涨312亿元1月29日消息,受到人工智能产品ChatGPT影响,半导体企业近期股价大涨,特别是头部显卡制造商NVIDIA,其CEO黄仁勋个人资产净增33,合计增加46亿美元,约人民币312亿元春节假期海南离岛免税店总销售额25。72亿元同比增长20。69刚刚过去的春节假期,海南离岛免税市场持续火爆。海南省商务厅28日发布数据显示,1月21日至27日,全省12家离岛免税店总销售额(含免税完税)共计25。72亿元(人民币,下同),同比连接器老牌劲旅,意华股份拓展光伏支架业务,紧抓行业机遇(报告出品方分析师天风证券唐海清王奕红孙潇雅)1。连接器劲旅,拓展光伏支架业务紧抓行业机遇1。1。持续延展业务,成立子公司分管两大核心业务逐步拓展与丰富业务布局。温州意华接插件股份利率为4。05的大额存单值得存吗?利率为4。05的大额存单值得存吗?如果仅从利息来看,这样的大额存单几乎是无可挑剔。在基准存款利率不变之下,4。05的利率基本上已经是到了固定利息存款的天花板,即没有比它更高的了。这关注曾庆洪广汽集团2023年挑战产销增长10,计划投资207亿元文懂车帝原创李德喆懂车帝原创行业懂车帝从广汽集团官方获悉,1月28日,广东省召开全省高质量发展大会,召集社会各界聚焦经济高质量发展。广汽集团董事长党委书记曾庆洪在大会发言中指出,广资产一天暴涨70是什么感觉?我体验过了昨天写了一篇关于泛海国际以及武汉CBD的文章,结果被一位网友diss了我觉得这位网友对风云武汉可能有误解,所以今天有必要解释一下。这位网友对风云武汉一定抱有刻板印象,他认为风云武汉
女排女神魏秋月近况为排球膝盖积水,29岁嫁给陪练如今走向仕途提到中国女排的功勋队长魏秋月你会想到什么呢?是她在赛场的英姿,还是她姣好的容颜,她征战三届奥运会,从15岁入选天津女排到29岁因伤退役,她把自己的青春与梦想都留在了排球场。魏秋月的白猫计划厂COLOPL社设立区块链游戏公司致力于通过游戏赚钱日本著名游戏运营会社COLOPL社日前宣布,成立区块链游戏公司Brilliantcrypto,公司的宗旨就是通过游戏赚钱PlaytoEarn,敬请期待。COLOPL是一家来自日本的110月乘用车零售同比增3。0,燃油车同比降1311月8日,乘联会公布10月乘用车销量数据。数据显示,10月乘用车(狭义乘用车)市场零售184。0万辆,同比增长7。3,增长平稳。110月,乘用车累计零售1671。6万辆,同比增长苹果急了,AirPodsPro2良率不合格,临时更换供应商前两天,话题歌尔股份或暂停生产AirPodsPro2突然冲上热搜。小优第一眼只看了个标题,立马联想到难道AirPodsPro2不好卖了?苹果要砍单?耳机岂不是要降价了?小优再点开话别跑空!北京这些商场景区暂时关闭多医院部分门诊停诊近期因为疫情防控冬季防火等原因北京不少景区暂时关闭还有部分商场暂停营业多家医院部分门诊暂停别跑空!北京市百货大楼因风险人员到访按照疫情防控要求为保证所有顾客和员工的安全配合好疫情防为什么都说费玉清是黄段子界的祖师爷人至中年,最怕什么?必然逃不过油腻二字。前不久,张翰执导电视剧东八区的先生们被下架。这部豆瓣2。1分的上星剧,再度将人们对人间油物的讨论推向了高潮。数风流人物,凭一己之力摘下内娱油男式裙装离商业化生产之路还有多远?近年来,在一二线城市的街头巷尾,仔细留意,已经偶而可以看到身着裙装的男子,裙装可能是汉服,也可能是其它类型的裙子。对此,社会公众基本是抱持着宽容的态度来对待,只要无妨于秩序,穿着打360智慧商业发布2022年PC价值回归研究报告话说天下大势,合久必分,分久必合。在经历了10年的迅猛发展后,移动互联网流量红利到顶已是不争的事实。进入存量时代,长期存在于移动和PC端的流量之争,也从割裂的此消彼长走向深度融合。本国巨头遭反噬,全球市场笼寒意,美对华禁令损害全球芯片业环球时报综合报道美国对中国的芯片禁令将带来巨大的代价。英国金融时报7日报道称,美国一心想重塑本土芯片产业,但让中美经济脱钩的法案将会带来沉重的代价。美国之音近日报道称,在美国,将中毛利率下滑,良率受困!歌尔丢掉33亿苹果订单影响到底有多大歌尔全球研发总部视觉中国图果链重量级企业歌尔股份(002241)丢掉了苹果耳机订单。11月9日,歌尔股份以跌停开盘,全天未打开跌停,市值蒸发了79亿元。歌尔股份丢失苹果订单的传闻在2022年世界互联网大会乌镇峰会明日开幕2022年世界互联网大会乌镇峰会将于本月9日至11日举行,今年大会的主题是共建网络世界共创数字未来携手构建网络空间命运共同体。来自120余个国家和地区的近2000位代表,将围绕大会