Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念
Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念
Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念,包括它们的作用和触发场景。以下是对这些内容的简要说明:
流程执行事件:
流程开始和结束事件:
这些事件标记了流程实例的开始和结束,如PROCESS_STARTED和PROCESS_COMPLETED。
活动实例事件:
记录了流程中各个活动(如用户任务、服务任务等)的创建和结束,如HISTORIC_ACTIVITY_INSTANCE_CREATED和HISTORIC_ACTIVITY_INSTANCE_ENDED。
历史和审计事件:
历史流程实例和活动实例事件:
这些事件用于记录流程执行的历史信息,以便后续审计或分析,如HISTORIC_PROCESS_INSTANCE_CREATED和HISTORIC_PROCESS_INSTANCE_ENDED。
错误和异常处理事件:
错误和终止事件:
这些事件标记了流程中错误或异常的发生,以及由于这些错误导致的流程终止,如PROCESS_COMPLETED_WITH_ERROR_END_EVENT。
流程、案例和阶段管理:
案例和阶段事件:
在支持案例和阶段管理的Flowable环境中,这些事件用于标记案例和阶段的开始和结束,如CASE_STARTED、CASE_ENDED、STAGE_STARTED和STAGE_ENDED。
租户ID变更事件:
租户ID变更:
在多租户环境中,这个事件用于记录流程实例、任务或其他实体的租户ID的变更。
自定义事件:
自定义事件:
Flowable允许用户定义自己的事件类型,并在流程执行过程中触发这些事件,以满足特定的业务需求。
这些事件是Flowable引擎中流程管理和监控的重要组成部分,它们提供了流程执行过程中的实时和历史信息,有助于流程设计者、管理者和审计人员了解流程的运行状态和性能。同时,通过监听和处理这些事件,开发者可以实现复杂的业务流程逻辑和自动化任务。
一、实体相关事件
ENTITY_CREATED:
当一个新的实体(如流程定义、任务、变量等)被创建时触发。
示例: 用户上传了一个新的BPMN文件,Flowable解析该文件并创建了一个流程定义,此时会触发ENTITY_CREATED事件。
ENTITY_INITIALIZED:
实体被初始化但尚未完全创建时触发(这个事件在某些上下文中可能不常见,具体取决于Flowable的版本和配置)。
示例: 在一些高级场景中,实体可能需要经过多个初始化步骤后才能被视为完全创建。每个初始化步骤完成时,可能会触发ENTITY_INITIALIZED事件(但请注意,这个示例可能因Flowable的具体实现而异)。
ENTITY_UPDATED:
当实体(如流程定义、任务、变量等)的属性被更新时触发。
示例: 用户修改了任务的截止日期,此时会触发ENTITY_UPDATED事件。
ENTITY_DELETED:
当实体(如流程定义、任务、变量等)被删除时触发。
示例: 用户删除了一个流程实例,此时会触发ENTITY_DELETED事件。
ENTITY_SUSPENDED, ENTITY_ACTIVATED: 这些事件与实体的挂起和激活状态相关。
示例: 管理员将某个流程定义挂起,此时会触发ENTITY_SUSPENDED事件。之后,如果该流程定义被重新激活,则会触发ENTITY_ACTIVATED事件。
二、定时器和作业相关事件
TIMER_SCHEDULED, TIMER_FIRED:
与定时器的调度和触发相关。
示例: 流程中定义了一个定时器,该定时器在特定时间被调度(TIMER_SCHEDULED),并在达到预定时间时触发(TIMER_FIRED),从而执行某个操作。
JOB_CANCELED,
JOB_EXECUTION_SUCCESS,
JOB_EXECUTION_FAILURE,
JOB_RETRIES_DECREMENTED,
JOB_REJECTED,
JOB_RESCHEDULED,
JOB_MOVED_TO_DEADLETTER:
这些事件与作业的执行状态和结果相关。
示例: 一个作业因为某些原因被取消(JOB_CANCELED),执行成功(JOB_EXECUTION_SUCCESS),执行失败并尝试重试(JOB_RETRIES_DECREMENTED),被拒绝执行(JOB_REJECTED),被重新调度(JOB_RESCHEDULED),或因为多次失败而被移动到死信队列(JOB_MOVED_TO_DEADLETTER)。
三、活动和任务相关事件
ACTIVITY_STARTED,
ACTIVITY_COMPLETED,
ACTIVITY_CANCELLED:
与流程活动中的活动开始、完成和取消相关。
示例: 流程中的用户任务被分配给某个用户,任务开始(ACTIVITY_STARTED),用户完成任务后(ACTIVITY_COMPLETED),或任务被取消(ACTIVITY_CANCELLED)。
MULTI_INSTANCE_ACTIVITY_STARTED, MULTI_INSTANCE_ACTIVITY_COMPLETED, MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION, MULTI_INSTANCE_ACTIVITY_CANCELLED:
与多实例活动的开始、完成、条件完成和取消相关。
示例: 流程中包含一个并行多实例用户任务,所有实例开始执行(MULTI_INSTANCE_ACTIVITY_STARTED),部分或全部实例完成(MULTI_INSTANCE_ACTIVITY_COMPLETED),或基于特定条件完成(MULTI_INSTANCE_ACTIVITY_COMPLETED_WITH_CONDITION),或整个多实例活动被取消(MULTI_INSTANCE_ACTIVITY_CANCELLED)。
ACTIVITY_SIGNAL_WAITING,
ACTIVITY_SIGNALED,
ACTIVITY_COMPENSATE,
ACTIVITY_CONDITIONAL_WAITING, ACTIVITY_CONDITIONAL_RECEIVED,
ACTIVITY_ESCALATION_WAITING,
ACTIVITY_ESCALATION_RECEIVED,
ACTIVITY_MESSAGE_WAITING,
ACTIVITY_MESSAGE_RECEIVED,
ACTIVITY_MESSAGE_CANCELLED,
ACTIVITY_ERROR_RECEIVED:
这些事件与活动的不同等待和接收状态相关,如信号、补偿、条件、升级、消息和错误。
示例: 一个服务任务正在等待外部信号(ACTIVITY_SIGNAL_WAITING),接收到信号后继续执行(ACTIVITY_SIGNALED)。
四、历史和案例管理相关事件
HISTORIC_ACTIVITY_INSTANCE_CREATED, HISTORIC_ACTIVITY_INSTANCE_ENDED: 当流程执行中的活动实例被创建和结束时,会分别触发这两个事件。这些事件用于记录流程执行的历史信息,以便后续审计或分析。
示例: 在一个流程执行过程中,用户任务被分配给某个用户,此时会触发HISTORIC_ACTIVITY_INSTANCE_CREATED事件记录用户任务的创建。当该任务被用户完成时,会触发HISTORIC_ACTIVITY_INSTANCE_ENDED事件记录用户任务的结束。
HISTORIC_PROCESS_INSTANCE_CREATED, HISTORIC_PROCESS_INSTANCE_ENDED: 这两个事件分别记录流程实例的创建和结束。它们对于跟踪流程的生命周期至关重要。
示例: 当用户启动一个新的流程实例时,HISTORIC_PROCESS_INSTANCE_CREATED事件会被触发,以记录流程实例的创建。当流程实例成功完成、由于错误而终止或以其他方式结束时,HISTORIC_PROCESS_INSTANCE_ENDED事件会被触发,以记录流程实例的结束。
5. 流程、案例和阶段管理相关事件
PROCESS_CREATED, PROCESS_STARTED, PROCESS_COMPLETED, PROCESS_COMPLETED_WITH_TERMINATE_END_EVENT, PROCESS_COMPLETED_WITH_ERROR_END_EVENT, PROCESS_COMPLETED_WITH_ESCALATION_END_EVENT, PROCESS_CANCELLED: 这些事件与流程实例的生命周期管理相关,包括创建、启动、完成(不同方式)和取消。
示例: 用户通过Flowable的REST API或用户界面启动一个新的流程实例,此时会触发PROCESS_STARTED事件。如果流程实例正常完成,会触发PROCESS_COMPLETED事件。如果流程因为达到终止结束事件而结束,会触发PROCESS_COMPLETED_WITH_TERMINATE_END_EVENT事件。如果流程因为遇到错误结束事件而结束,会触发PROCESS_COMPLETED_WITH_ERROR_END_EVENT事件。如果流程因为升级结束事件而需要特殊处理,会触发PROCESS_COMPLETED_WITH_ESCALATION_END_EVENT事件。如果流程被取消,会触发PROCESS_CANCELLED事件。
CASE_STARTED, CASE_ENDED: 这两个事件与案例(Case)的启动和结束相关,案例管理是BPMN 2.0规范的一部分,但并非所有BPMN引擎都支持案例管理。
示例: 在支持案例管理的Flowable环境中,当用户启动一个新的案例时,会触发CASE_STARTED事件。当案例中的所有活动都已完成且案例被关闭时,会触发CASE_ENDED事件。
STAGE_STARTED, STAGE_ENDED: 这些事件与流程中的阶段(Stage)的开始和结束相关。阶段可以视为流程中的一组活动或子流程。
示例: 在一个复杂的流程中,可能包含多个阶段。当流程执行到达某个阶段时,会触发STAGE_STARTED事件。当该阶段内的所有活动都已完成且阶段结束时,会触发STAGE_ENDED事件。
6. 其他事件
CHANGE_TENANT_ID (注意这里可能存在一个小错误,通常事件名称可能不包括中文,这里假设是TENANT_ID_CHANGED或类似的名称): 这个事件与流程实例、任务或其他实体的租户ID变更相关。在支持多租户的环境中,租户ID用于区分不同租户的数据。
示例: 在一个多租户环境中,管理员可能需要将某个流程实例的租户ID从一个租户更改为另一个租户。这种变更会触发TENANT_ID_CHANGED(假设的正确名称)事件,以记录租户ID的变更。
CUSTOM: 这是一个通用的事件类型,用于记录自定义事件。Flowable允许用户定义自己的事件类型,并在流程执行过程中触发这些事件。
示例: 假设您有一个特殊的业务需求,需要在流程执行到某个特定点时记录一些额外的信息。您可以在BPMN模型中定义一个服务任务,并在该服务任务中触发一个自定义事件(如MY_CUSTOM_EVENT),然后在Flowable的事件监听器中捕获并处理这个事件。
请注意,由于Flowable的版本和配置可能会影响事件的具体实现和触发条件,因此上述解释和示例可能需要根据您使用的Flowable版本进行调整。
相关文章:
Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念
Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念 Flowable(一个开源的工作流和业务流程管理引擎)中与事件相关的一些核心概念,包括它们的作用和触发场景。以下是对这些内容的简要说明&#x…...
深度解析:景区客服系统如何助力旅游业可持续发展
一、引言 在全球化与信息化交织的时代背景下,旅游业正以前所未有的速度发展,成为推动经济增长、文化交流与环境保护的重要力量。景区作为旅游业的核心组成部分,其服务质量和管理水平直接影响到游客的满意度和行业的可持续发展。景区客服系统…...
风险评估:IIS的安全配置,IIS安全基线检查加固
「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。 这一章节我们需…...
uniapp 截取两条数据 进行页面翻页滚动
// 轮播信息 <view class"sales_list" ><view class"sales_item" v-for"(item,index) in sellDisplayList" :key"index" click"salesFn(item)"><image :src"item.goodsImg"></image><…...
python笔记(转存ipynb)------1
list1 ["tom","cat","Lili"] print(list1[0].title())Tom#append()列表方法在列表末尾添加新元素 list1.append(233) print(list1) #可以先创建空列表,再进行追加append(..)以添加[tom, cat, Lili, 233]#insert()列表方法插入元素 l…...
excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出
一、介绍 在上篇文章中,我们介绍了 apache poi 工具实现 excel 文件的导入导出。 本篇我们继续深入介绍另一款优秀的 excel 工具库:easypoi。 二、easypoi 以前的以前,有个大佬程序员,跳到一家公司之后就和业务人员聊上了&…...
邀请函|2024第八届中国太阳能电池浆料与金属化技术展
2024第八届中国国际太阳能电池浆料与金属化技术展览会 地点:深圳国际会展中心 时间:2025年06-月25日-27日 地点:上海新国际博览中心 时间:2024年12月18日-20日 主办单位:上海氟伦展览有限公司 指导单位:中国新材料技术协会 中国电子学会 耐…...
图像边缘检测:技术原理与算法解析
图像边缘检测是计算机视觉和图像处理中的一个核心任务,它旨在识别图像中亮度变化明显的点,从而识别出图像的边缘。边缘是图像中的重要特征,对于后续的图像分析、物体识别和图像分割等任务具有至关重要的作用。本文将深入探讨图像边缘检测的技…...
【Python星启航】少儿编程精英启蒙之旅 - 大纲
1. 计算机基础与编程环境 计算机的基本构成 编程语言与编程环境介绍 Python语言的特点与优势 安装与配置Python环境 2. 计算机历史与发展 计算机的起源与早期发展 个人电脑的普及与影响 当代计算机技术的前沿动态 计算机在未来教育中的角色 3. 编程基础概念 变量的定义与作…...
MATLAB的mat文件转换成json文件
内参矩阵 (K):相机的内在参数矩阵,通常是一个3x3的矩阵,包含了相机的焦距(fxfx和fyfy)和主点(光学中心)的坐标(cxcx和cycy)。这个矩阵将图像坐标转换为归一化相机…...
STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)
一:步进电机简介 步进电机又称为脉冲电机,简而言之,就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩,步进电机的角位移量与输入的脉冲个数严格成正比…...
文件安全传输系统,如何保障信创环境下数据的安全传输?
文件安全传输系统是一套旨在保护数据在传输过程中的安全性和完整性的技术或解决方案。通常包括以下几个关键组件: 加密:使用强加密算法来确保文件在传输过程中不被未授权访问。 身份验证:确保只有授权用户才能访问或传输文件。 完整性校验…...
论文分享|AAAI2024‘北航|用大语言模型缩小有监督和无监督句子表示学习的差距
先说结论,大语言模型除了作为聊天的Agent,也可以为检索模型生成优质的文本对训练数据,从而做到无监督场景下也能够适用。这里分享一篇AAAI2024的工作,重点探讨如何生成比评估集更困难的训练数据来提升无监督句子表示学习质量&…...
vue3相比于vue2有哪些新特性?
Composition API: 组合式 API 提供了更灵活和可组合的方式来组织代码。它允许将逻辑功能集中在一起,而不是分散在生命周期钩子中。 import { ref, reactive, computed, watch } from vue;export default {setup() {const count ref(0);const state r…...
Gooxi受邀参加第三届中国数据中心服务器与设备峰会
7月2-3日,第三届中国数据中心服务器与设备峰会在上海召开,作为国内最聚焦在服务器领域的专业峰会,吸引了来自全国的行业专家、服务器与机房设备厂家,企业IT用户,数据中心业主共同探讨AIGC时代下智算中心设备的设计之道…...
3个实现前端节流的方法,附代码。
一、什么是前端节流 前端节流(Throttling)是一种优化前端性能的技术,它可以限制某些函数的执行频率,以提高性能和用户体验。节流可以用于控制一些高频事件的触发频率,比如滚动事件、鼠标移动事件、窗口大小改变事件等…...
uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】
项目场景: 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时,会发现这个文件下载的默认保存位置和我们预想的不太一样,容易找不到,而且没有提示,那么我们就需要把文件打开自己保存并且有提示保存到哪个…...
一群追星星的人,对AI的盼与怕
面对AI,有人害怕,有人期盼。 “AI和画画的、开网约车的、写东西的人有仇吗?”近来成了很多从业者的心声。大模型技术驱动了AI的能力进化过临界点,我们普通人根本就跟不上,或快或慢被淘汰。看起来,AI正在给人…...
同步IO、异步IO以及五种网络IO模式
目录 一、同步IO和异步IO 二、五种网络IO模式 1、阻塞IO 2、非阻塞IO 3、IO多路复用 3.1、SELECT 3.2、POLL 3.3、EPOLL 一、同步IO和异步IO 场景1: 小明去打开水,而开水塔此时没有水,小明在现场一直等待开水到来,或者不断…...
IP-Guard日志数据上传至 SYSLOG 服务器操作指南
一、功能简介 服务器支持把日志数据上传到 SYSLOG 服务器。 二、功能配置 2.1 数据目录移交设置 在服务器安装目录下 OServer3.ini 文件中,添加工具启动配置,配置五分钟内生效。 Path:设置移交目录路径,IPG 服务器会把收集完成的…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
Element Plus 表单(el-form)中关于正整数输入的校验规则
目录 1 单个正整数输入1.1 模板1.2 校验规则 2 两个正整数输入(联动)2.1 模板2.2 校验规则2.3 CSS 1 单个正整数输入 1.1 模板 <el-formref"formRef":model"formData":rules"formRules"label-width"150px"…...
基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...
