目录

  • 1. 执行监听事件写法
  • 2. 任务监听事件写法
  • 3. 创建流程
  • 4. 事件执行类
  • 5. 启动流程

监听事件分为:执行监听、任务监听。

1. 执行监听事件写法

<flowable:executionListener class="类" expression="表达式"  delegateExpression="委托表达式" event="事件"><flowable:field name="参数名" stringValue="字符串" expression="表达式" />
</flowable:executionListener><!--
类:示例 com.company.MyCustomListener,自定义类必须实现 org.flowable.engine.delegate.TaskListener 接口表达式:示例 ${myObject.callMethod(task, task.eventName)} 委托表达式:示例 ${myListenerSpringBean} ,该 springBean 需要实现 org.flowable.engine.delegate.TaskListener 接口event: 事件执行的时刻(包括:start 开始、take 启用、end 结束)
-->

2. 任务监听事件写法

<flowable:taskListener class="类" expression="表达式"  delegateExpression="委托表达式" event="事件"><flowable:field name="参数名" stringValue="字符串" expression="表达式" />
</flowable:taskListener><!--任务监听事件:taskListenerevent: 事件执行的时刻(包括:create(创建):当任务已经创建,并且所有任务参数都已经设置时触发。assignment(指派):当任务已经指派给某人时触发。请注意:当流程执行到达用户任务时,在触发create事件之前,会首先触发assignment事件。complete(完成):当任务已经完成,从运行时数据中删除前触发。delete(删除):在任务即将被删除前触发。请注意任务由completeTask正常完成时也会触发。)任务执行参数:field(可配置多个)
-->

3. 创建流程

目的,创建一个(开始—>审核—>结束)流程,并在审核节点设置一个【任务监听】事件。

xml内容:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"xmlns:flowable="http://flowable.org/bpmn"targetNamespace="http://www.flowable.org/processdef"><process id="process_audit3" name="审核流程"><startEvent id="startNode1" name="开始"><outgoing>Flow_0ksehsm</outgoing></startEvent><endEvent id="Event_08rzeth" name="结束"><incoming>Flow_18upiqx</incoming></endEvent><sequenceFlow id="Flow_0ksehsm" sourceRef="startNode1" targetRef="Activity_0ipmowu" /><sequenceFlow id="Flow_18upiqx" sourceRef="Activity_0ipmowu" targetRef="Event_08rzeth" /><userTask id="Activity_0ipmowu" name="审核" flowable:assignee="1"><extensionElements><flowable:taskListener class="org.flowable.audit.TaskEvent" event="complete"><flowable:field name="message" stringValue="执行完成" /></flowable:taskListener></extensionElements><incoming>Flow_1huwgzm</incoming><outgoing>Flow_18upiqx</outgoing></userTask></process></definitions>

4. 事件执行类

注意xml文件中的任务执行类,需要在项目中相应位置建立。


任务执行类需要实现TaskListener

package org.flowable.audit;import org.flowable.engine.impl.el.FixedValue;
import org.flowable.task.service.delegate.DelegateTask;
import org.flowable.task.service.delegate.TaskListener;
import org.springframework.stereotype.Component;@Component
public class TaskEvent implements TaskListener {// 名称要与流程定义中的参数名称一致private FixedValue message;@Overridepublic void notify(DelegateTask delegateTask) {// 获取监听事件中的参数String val = message.getExpressionText();System.out.println("获取到的任务执行参数为:" + val);}
}

5. 启动流程

启动项目后,启动流程

现在流程到达了审核节点

然后根据taskId审批通过此节点

查看控制台

可以看到审批通过时,执行了监听事件。

完事。

下一节写啥呢 ?

springboot+flowable第四节(设置监听事件)相关推荐

  1. html中单选按钮设置监听事件,浅谈监听单选框radio改变事件(和layui中单选按钮改变事件),单选框radio...

    浅谈监听单选框radio改变事件(和layui中单选按钮改变事件),单选框radio 若是只引用jquery的话,监听单选按钮改变事件如下: 男 女 $(document).ready(functio ...

  2. android ViewPager实现无限轮播和设置监听事件

    ViewPager的无限轮播,主要以实现为主.代码如下 首先定义activity_viewpager.xml: <LinearLayout android:layout_width=" ...

  3. 有关 给Layout设置监听事件后,与Layout子控件的响应关系

    如果你的linearlayout中的孩子们都监听了click事件了,linearlayout是拿不到事件的. 在Android系统的中,硬件触发的事件最开始是Activity拿到的,然后它向里面的Vi ...

  4. JavaScript监听事件

    JavaScript怎么设置监听事件? 在HTML的标签中通过事件属性设置,语法"on+事件名='处理函数'": 使用"element.onclick"进行设置 ...

  5. [js] 在设置keyup监听事件后按F5刷新和按浏览器中刷新键刷新有什么区别?

    [js] 在设置keyup监听事件后按F5刷新和按浏览器中刷新键刷新有什么区别? 按浏览器中刷新键刷新不会触发keyup事件 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放弃很容易, 但坚持一定 ...

  6. Auto.js 命令作用(四) 屏幕按键监听专题

    Auto.js 全命令整理(四) 屏幕按键监听 目录 Auto.js 全命令整理(四) 屏幕按键监听 屏幕按键监听 末 屏幕按键监听 命令 目的 events.observeTouch() 屏幕按键监 ...

  7. 常用的监听事件(android)

    刚发布过Toast,为了是自己记得牢固一些在这里写几个监听事件 分别写出不同位置的Toast 监听常用的有四种 第一种:内部类作为事件监听器类 xml中代码 <RelativeLayout xm ...

  8. springboot13 发布和监听事件

    spring中的事件驱动模型Event(也叫发布订阅模式),是观察者模式的一个典型的应用 好处:业务解耦,在不影响原来业务逻辑的情况下,加入其它业务 场景: app上线后已实现用户注册功能,现需要在用 ...

  9. nginx监听事件流程

    在前面的几篇文章中已经分析了master进程.work进程的初始化流程.但一直没有分析监听socket的创建流程,nginx服务器只有在创建socket, 绑定socet,监听socket执行完成后, ...

最新文章

  1. 【读书笔记】代码可为维护性标准(一)
  2. OpenNebula学习第三节之虚拟机管理
  3. ThinkPHP的基本操作
  4. Robot Framework操作MySQL数据库和Oracle数据库
  5. (机器学习/计算机视觉/深度学习)代码
  6. python discuz_pythonDiscuz发帖器的实现
  7. 面试官:面对千万级、亿级流量怎么处理?
  8. 6间企业获颁“首届粤港澳大湾区百强企业传承大奖”
  9. Flutter实战视频-移动电商-18.首页_火爆专区后台接口调试
  10. 树莓派部署yolov3
  11. PSV 3.60 固化升级到 3.68 破解完全攻略
  12. 高通9008端口刷linux,高通命令进入9008端口方式汇总
  13. springboot实现word转pdf
  14. 【企业】马化腾致信合作伙伴:灰度法则的七个维度
  15. 单总体分布卡方拟合优度检验
  16. 电科 | 电子器件微纳米加工技术
  17. codeforces949D Curfew
  18. Java 语言使用 Observer/Observable 实现简单的观察者模式
  19. 硅树脂油漆申请美国标准UL 790 Class A 合适吗?
  20. 计算机产品选型与配置,高校校园网设备的选型和配置.DOC

热门文章

  1. stm32烧录软件_使用华为LiteOS Studio开发STM32物联网工程1
  2. python 3d游戏记录路径_基于osg的python三维程序开发(五)------沿路径运动
  3. g++链接boost库
  4. ubuntu安装可加速播放打视频播放器vlc
  5. 用python为喜欢的人写一个程序,每天发送贴心的消息
  6. 漫步最优化三十七——共轭梯度法
  7. 漫步最优化十九——封闭算法
  8. mybatis注解开发_快速搭建MyBatis开发环境(配置版+注解版)
  9. C++中的错误处理方法(含示例代码)
  10. 自然语言处理 —— 2.2 使用词嵌入