接上一篇:
第11篇:Flowable-BPMN部署常见问题没有对ACT_RE_PROCDEF表进行插入>操作
https://blog.csdn.net/weixin_40816738/article/details/102902524

文章目录

  • 一、定义
  • 二、常用配置
  • 三、参数赋值
  • 四、监听类实现
  • 五、BPMN配置
  • 六、验证
    • 6.1. 创建新流程
    • 6.2. 启动新流程
    • 6.3. 监听器结果

一、定义

流程启动后,任务会给到指定的责任人,如果是需要人工审核的任务,那么就需要使用UserTask,也就是用户任务,需要用户完成审批,流程才能继续往下走。

二、常用配置

  • 执行人 Assignments

  • 执行人类型:
    (1)Assignee:代理执行人,一般一个用户
    (2)CandidateUser:候选执行人,一般有多个用户
    (3)CandidateGroup:候选用户组,一般绑定到角色,支持多个用户进行操作。

modeler操作
modeler中配置如下图所示:


进入后信息如下:

  • 任务监听器Task Listeners

  • 监听器类型:
    (1)create:任务创建时,并且所有的属性都被设置好后,进入该回调。
    (2)assignment:任务被委派给某人后.。注意: 当流程执行到达一个userTask时,会先触发一个assignment事件,再触发create事件。
    (3)complete:在任务完成后,且被从运行时数据(runtime data)中删除前触发。
    (4)delete:在任务将要被删除之前发生。注意,当任务通过completeTask完成任务时,它也会被执行。

监听器class:
回调的委托类,需要实现 org.flowable.engine.delegate.TaskListener接口。

modeler操作:
配置页面如下图:

三、参数赋值

执行人:分配给admin
任务监听配置为:create类型,实现类为com.gblfy.flowlistener.CommonUserStartListener.

四、监听类实现

监听类主要读取一些环境信息,如执行人,当前的系统变量,修改系统变量等操作,具体代码如下:

public class CommonUserStartListener implements TaskListener {/*** 日志类*/private static final Logger log = LoggerFactory.getLogger(CommonUserStartListener.class);@Overridepublic void notify(DelegateTask delegateTask) {log.warn("进入通用用户任务启动监听器");//查询信息log.info("任务执行人:"+delegateTask.getAssignee());log.info("任务配置ID: " +delegateTask.getTaskDefinitionKey());//查询变量Set<String> setNames= delegateTask.getVariableNames();if (!CollectionUtils.isEmpty(setNames)){log.info("任务变量:"+setNames.toString());}for (String varName :setNames){Object varValue= delegateTask.getVariable(varName);log.info("变量名:"+varName+" 变量值:"+ JSON.toJSONString(varValue));}//修改变量delegateTask.setVariable("Test_Var","测试变量");log.warn("退出通用用户任务启动监听器");}
}

五、BPMN配置

修改后的我们的BPMN20的xml文件配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"><process id="test_bpmn" name="测试BPMN模型" isExecutable="true"><documentation>测试BPMN模型</documentation><startEvent id="start" name="开始"></startEvent><endEvent id="end" name="结束"></endEvent><userTask id="testUser" name="用户任务测试" flowable:assignee="admin"><extensionElements><flowable:taskListener event="create" class="com.hyj.flowlistener.CommonUserStartListener"></flowable:taskListener><modeler:initiator-can-complete xmlns:modeler="http://flowable.org/modeler"><![CDATA[false]]></modeler:initiator-can-complete></extensionElements></userTask><sequenceFlow id="sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002" sourceRef="start" targetRef="testUser"></sequenceFlow><sequenceFlow id="sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44" sourceRef="testUser" targetRef="end"></sequenceFlow></process><bpmndi:BPMNDiagram id="BPMNDiagram_test_bpmn"><bpmndi:BPMNPlane bpmnElement="test_bpmn" id="BPMNPlane_test_bpmn"><bpmndi:BPMNShape bpmnElement="start" id="BPMNShape_start"><omgdc:Bounds height="30.0" width="30.0" x="210.0" y="60.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="end" id="BPMNShape_end"><omgdc:Bounds height="28.0" width="28.0" x="525.0" y="61.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNShape bpmnElement="testUser" id="BPMNShape_testUser"><omgdc:Bounds height="80.0" width="100.0" x="315.0" y="35.0"></omgdc:Bounds></bpmndi:BPMNShape><bpmndi:BPMNEdge bpmnElement="sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002" id="BPMNEdge_sid-8D834F3C-45A8-4C88-9AD1-1AC426CC9002"><omgdi:waypoint x="239.94999779398907" y="75.0"></omgdi:waypoint><omgdi:waypoint x="315.0" y="75.0"></omgdi:waypoint></bpmndi:BPMNEdge><bpmndi:BPMNEdge bpmnElement="sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44" id="BPMNEdge_sid-AB59612A-1B33-4FB8-8758-5D773EDF9C44"><omgdi:waypoint x="414.9499999999903" y="75.0"></omgdi:waypoint><omgdi:waypoint x="525.0" y="75.0"></omgdi:waypoint></bpmndi:BPMNEdge></bpmndi:BPMNPlane></bpmndi:BPMNDiagram>
</definitions>

六、验证

6.1. 创建新流程

6.2. 启动新流程

6.3. 监听器结果

项目源码地址:
https://gitlab.com/gb-heima/flowablestudy/tree/master/flowablelech12
码云地址:https://gitee.com/gb_90/flowable-study/tree/master/flowablelech12

下一篇:
第13篇: Flowable-BPMN操作流程之流程进展查看之流程图
https://blog.csdn.net/weixin_40816738/article/details/102902629

第12篇:Flowable-BPMN操作流程之用户任务UserTask相关推荐

  1. 第13篇: Flowable-BPMN操作流程之流程进展查看之流程图

    接上一篇: 第12篇:Flowable-BPMN操作流程之用户任务UserTask https://blog.csdn.net/weixin_40816738/article/details/1029 ...

  2. 第15篇: Flowable-BPMN操作流程之排他网关

    接上一篇: 第14篇:Flowable-BPMN操作流程之任务完成 https://blog.csdn.net/weixin_40816738/article/details/102902647 文章 ...

  3. 第14篇:Flowable-BPMN操作流程之任务完成

    接上一篇: 第13篇: Flowable-BPMN操作流程之流程进展查看之流程图 https://blog.csdn.net/weixin_40816738/article/details/10290 ...

  4. 《销售管理必读12篇》购买方法

    培训教材<销售管理必读12篇>官网购买攻略. 工具/原料 12Reads官网 电脑一台或手机一部 网络 方法/步骤 1 首先打12Reads的官方网站,如何下图所示. 2 接下来点击导航菜 ...

  5. 当今主流分割网络有哪些?12篇文章一次带你看完

    作者 | 孙叔桥 来源 | 转载自有三AI(ID: yanyousan_ai) 本文的12篇文章总结了当前主流的分割网络及其结构,涵盖从编解码结构到解码器设计:从感受野到多尺度融合:从CNN到RNN与 ...

  6. 两个大炸弹:清华大学医学院院长董晨院士回应“24篇论文质疑”;南开校长,曹雪涛团队12篇论文被正式调查“可信性”...

    点击上方"视学算法",选择加"星标"置顶 重磅干货,第一时间送达 本文转载自:科研大匠 近日,学术圈一下来了两个大炸弹: 清华医学院院长董晨院士包括两篇Natu ...

  7. 南开校长曹雪涛团队12篇论文被调查“可信性”,此前被举报实验图片有PS痕迹...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 南开大学校长曹雪涛院士团队的12篇论文被质疑"造假"事件,现在有了最新进展. 6月26日,核心学术期刊<生物化学 ...

  8. 【完结】12篇GAN的优化文章大盘点,浓浓的数学味儿

    专栏<GAN的优化>(第一季)正式完结啦! 在这一季里,我们从生成模型出发,讲述了GAN的基本理论,包括工作原理,更具有普适性的f散度度量和Wasserstein距离,以及IPM框架并顺带 ...

  9. 4个Keynote、12篇论文分享、40个Poster,CVPR 2021论文分享会全日程公布

    随着人工智能的火热,AAAI.NeurIPS.CVPR 等顶级学术会议的影响力也愈来越大,每年接收论文.参会人数的数量连创新高.但受疫情影响,近两年国外举办的学术会议都转为了线上,无法满足学者们现场交 ...

最新文章

  1. Mac MySQL配置环境变量的两种方法
  2. mouted能不能访问data中的数据_Vue(定时器)解决mounted不能获取到data中的数据问题...
  3. 生信小白的福音——免费在线分析扩增子数据SILVAngs
  4. 2021年春季学期-信号与系统-第一次作业参考答案-第四题
  5. Oracle调用接口(OCI)源码剖析(2):执行SQL语句并获取结果
  6. jupyter notebook界面颜色jt_更改jupyter notebook主题颜色——步骤详解(Windows系统)...
  7. 企业级系统应用,高级组合查询示例讲解 - Jeecg实战
  8. Linux tcpdump
  9. Centos升级安装.Net core 1.1
  10. 遮挡行人的检测论文合集
  11. 移动端html右滑空白,BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法...
  12. 步进电机正反转实验_电机正反转电路图讲解
  13. JAVA 生成随机数两种方式
  14. 利用向量求点到线的最短距离
  15. 多元均值不等式的简单证明(调和平均数与算术平均数)
  16. 2022-7 一套鼠标键盘控制两台及以上电脑
  17. 虚拟的云xx经济越热闹,现实的自己就越孤独
  18. 集合工具类 以及 几个小面试题(是我保存的)
  19. Python字典经典例题-key,value灵活运用
  20. 计算机网络技术主要包括计算机技术和什么,《计算机网络技术》第6章作业的参考答案...

热门文章

  1. 一份所有中国人都应该听的歌单,你听过几首?
  2. python加载项向导_Python安装与环境变量的配置,Python安装向导
  3. MySQL 数据恢复
  4. C/C++语言函数学习(1):atexit、exit、return
  5. 【转载保存】java8新特性学习
  6. Makefile系列学习(博客)
  7. ElasticSearch sql 插件安装
  8. CPU Burst有副作用吗?让数学来回答!| 龙蜥技术
  9. 33个常见问题!超全Windows排查手册
  10. 2018年的AI/ML惊喜及预测19年的走势(二)