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

接上一篇:
第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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522908.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

通用智能传感集线器(Sensorhub)介绍

摘要&#xff1a;   智能传感集线器&#xff0c;也称之为Sensor hub&#xff0c;是一种基于低功耗MCU和轻量级RTOS操作系统之上的软硬件结合的解决方案&#xff0c;其主要功能是连接并处理来自各种传感器设备的数据。 点此查看原文&#xff1a;http://click.aliyun.com/m/405…

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

接上一篇&#xff1a; 第12篇&#xff1a;Flowable-BPMN操作流程之用户任务UserTask https://blog.csdn.net/weixin_40816738/article/details/102902596 文章目录一、背景二、原理三、实现方案3.1. 流程是否完成功能3.2. 完成流程图3.3. 控制器入口四、验证测试4.1. 创建流程4…

阿里云MaxCompute,用计算力让数据发声

摘要&#xff1a; 计算的价值绝不止计算本身&#xff0c;而是让本不会说话的数据发声。 从玛雅历法到圆周率&#xff0c;从万有引力定律到二进制&#xff0c;从固化的物体到虚拟的思维都由数据注入。阿里云大数据计算服务MaxCompute以技术驱动产品&#xff0c;用计算力让数据发…

命令行编译java项目_命令行编译运行java工程(转)

平时建立Java工程都是借助eclipse或intellij这些ide编辑器来构建&#xff0c;对于java工程的实际编译执行原理&#xff0c;从未了解过。作为一个曾经的C程序员&#xff0c;对于源码刨根问底的那份执着从未丢过。于是今天就写了这样的一个例子进行测试。1.首先建立个跟目录MyJav…

面试鹅厂,我三面被虐的体无完肤……

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | codegoose来源 | https://segmentfault.com/a/1190000017864721经过半年的沉淀&#xff0c;加上对MySQL&#xff0c;redis和分布式这块的补齐&#xff0c;终于重拾面试信心&#xff0c;再次出征。鹅厂面试职位&#xff1a;go…

阿里云MaxCompute印度开服,加速大数据产业升级

摘要&#xff1a; 2018年1月18日&#xff0c;阿里云大数据计算服务MaxCompute将在印度正式开服。通过MaxCompute强大的计算能力&#xff0c;阿里云将加速印度大数据产业的全面升级。 点此查看原文&#xff1a;http://click.aliyun.com/m/40728/ 2018年1月18日&#xff0c;阿里云…

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

接上一篇&#xff1a; 第13篇&#xff1a; Flowable-BPMN操作流程之流程进展查看之流程图 https://blog.csdn.net/weixin_40816738/article/details/102902629 文章目录一、背景二、原理三、API3.1. 直接完成任务3.2. 完成任务并且设置任务参数四、实现4.1. 接口4.2. 接口实现4…

java垃圾回收 分代_Java分代垃圾回收策略原理详解

一、为什么要分代分代的垃圾回收策略&#xff0c;是基于这样一个事实&#xff1a;不同的对象的生命周期是不一样的。因此&#xff0c;不同生命周期的对象可以采取不同的收集方式&#xff0c;以便提高回收效率。在Java程序运行的过程中&#xff0c;会产生大量的对象&#xff0c;…

MaxCompute Studio使用心得系列6——一个工具完成整个Python UDF开发

摘要&#xff1a; 2017/12/20 北京云栖大会上阿里云MaxCompute发布了最新的功能Python UDF&#xff0c;万众期待的功能终于支持啦&#xff0c;我怎么能不一试为快&#xff0c;今天就分享如何通过Studio进行Python udf开发。 点此查看原文&#xff1a;http://click.aliyun.com/m…

如何填报大数据相关专业? | Alfred数据室

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | AlfredWu来源 | Alfred数据室高考出分了&#xff0c;又是一年一度各位考生和家长手忙脚乱开始填报志愿的时候了。很多考生和家长纷纷咨询Alfred&#xff1a;大数据现在不是很火吗&#xff1f;大数据专业怎么样呀&#xff1f…

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

接上一篇&#xff1a; 第14篇&#xff1a;Flowable-BPMN操作流程之任务完成 https://blog.csdn.net/weixin_40816738/article/details/102902647 文章目录一、背景二、定义三、流程准备四、流程文件五、控制器六、流程通过验证6.1. 创建新流程6.2. 启动流程6.3. 控制台查看任务…

阿里云视频AI全能力解读

摘要&#xff1a; 结合人工智能视频理解流程和用户的需求场景&#xff0c;我们将视频AI的功能分成四个大部分&#xff0c;视频智能审核、视频内容理解、视频智能编辑、视频版权保护。其中视频审核功能包括视频鉴黄、暴恐涉政识别、广告二维码识别、无意义直播识别等&#xff0c…

阿里云智能视频 AI 重装来袭

摘要&#xff1a; 近日&#xff0c;阿里云重磅推出视频点播新功能——视频AI &#xff0c;基于深度学习、计算机视觉技术和海量数据&#xff0c;为广大用户提供多场景的视频AI服务。 点此查看原文&#xff1a;http://click.aliyun.com/m/40809/ 近日&#xff0c;阿里云重磅推出…

Hadoop精华问答 | Hadoop框架中最核心的设计是什么?

Hadoop能够进行大批量数据的离线处理,但是在实时计算上的表现实在是不尽如人意;而Storm就可以担当这部分的角色&#xff0c;今天&#xff0c;就让我们看看关于Storm的精华问答吧。1Q&#xff1a;hadoop发展史A&#xff1a;2Q&#xff1a;Hadoop 有哪些优点&#xff1f;A&#x…

SpringBoot2.x整合Swagger2 实现API文档实时生成

我们提供Restful接口的时候&#xff0c;API文档是尤为的重要&#xff0c;它承载着对接口的定义&#xff0c;描述等&#xff0c;本文主要介绍了SpringBoot集成Swagger2生成接口文档的方法示例&#xff0c;需要的朋友们下面随着小编来一起学习学习吧 我们提供Restful接口的时候&a…

阿里云 ESS 弹性伸缩服务新功能来袭,更全面、更自动化的使用体验

摘要&#xff1a; 2017年9月阿里云弹性伸缩服务伸缩配置新增了实例自定义数据、秘钥对、实例RAM角色、标签新特性&#xff1b;近日&#xff0c;阿里云又发布了VSWitchIds.N多可用区新特性。 点此查看原文&#xff1a;http://click.aliyun.com/m/40810/ 弹性伸缩是一种根据业务需…

java 提取轮廓_TensorFlow 卷积操作模拟sobel算子提取图像轮廓

注意&#xff1a;sobel算子不保证结果在0-255&#xff0c;需要做一次归一化处理&#xff0c;再乘以255输出的数据shape与图像的shape不一样&#xff0c;需要一次转化效果代码import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于…

阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能

摘要&#xff1a; 目前阿里云大数据产品已经免费向全部用户开放了多种公用数据集。开放的数据类别包括&#xff1a;股票价格数据&#xff0c;房产信息&#xff0c;影视及其票房数据。 点此查看原文&#xff1a;http://click.aliyun.com/m/40813/ 目前阿里云MaxCompute大数据产品…

豪投10亿!华为放话:3年培养100万AI人才!网友神回应了

近期&#xff0c;AI测试权威软件AI Benchmark的测试数据显示&#xff0c;中国华为研发的7nm旗舰手机芯片麒麟810的AI分数&#xff0c;远远超过美国高通骁龙855了&#xff01;麒麟810芯片AI分数是3300多&#xff0c;名列第一。而骁龙855手机则是2700多。大家振奋的同时&#xff…

阿里云大数据利器Maxcompute学习之-假如你使用过hive

摘要&#xff1a; 如果您是一个大数据开发工程师并且使用过hadoop的hive框架&#xff0c;那么恭喜您&#xff0c;阿里云的大数据计算服务-Maxcompute&#xff0c;您已经会了90%。这篇文章就来简单对比下Maxcompute和hive的异同&#xff0c;来方便刚开始使用Maxcompute的用户&am…