当前位置: 首页 > news >正文

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) #可以先创建空列表&#xff0c;再进行追加append(..)以添加[tom, cat, Lili, 233]#insert()列表方法插入元素 l…...

excel系列(二) - 利用 easypoi 快速实现 excel 文件导入导出

一、介绍 在上篇文章中&#xff0c;我们介绍了 apache poi 工具实现 excel 文件的导入导出。 本篇我们继续深入介绍另一款优秀的 excel 工具库&#xff1a;easypoi。 二、easypoi 以前的以前&#xff0c;有个大佬程序员&#xff0c;跳到一家公司之后就和业务人员聊上了&…...

邀请函|2024第八届中国太阳能电池浆料与金属化技术展

2024第八届中国国际太阳能电池浆料与金属化技术展览会 地点:深圳国际会展中心 时间:2025年06-月25日-27日 地点:上海新国际博览中心 时间:2024年12月18日-20日 主办单位&#xff1a;上海氟伦展览有限公司 指导单位&#xff1a;中国新材料技术协会 中国电子学会 耐…...

图像边缘检测:技术原理与算法解析

图像边缘检测是计算机视觉和图像处理中的一个核心任务&#xff0c;它旨在识别图像中亮度变化明显的点&#xff0c;从而识别出图像的边缘。边缘是图像中的重要特征&#xff0c;对于后续的图像分析、物体识别和图像分割等任务具有至关重要的作用。本文将深入探讨图像边缘检测的技…...

【Python星启航】少儿编程精英启蒙之旅 - 大纲

1. 计算机基础与编程环境 计算机的基本构成 编程语言与编程环境介绍 Python语言的特点与优势 安装与配置Python环境 2. 计算机历史与发展 计算机的起源与早期发展 个人电脑的普及与影响 当代计算机技术的前沿动态 计算机在未来教育中的角色 3. 编程基础概念 变量的定义与作…...

MATLAB的mat文件转换成json文件

内参矩阵 (K)&#xff1a;相机的内在参数矩阵&#xff0c;通常是一个3x3的矩阵&#xff0c;包含了相机的焦距&#xff08;fxfx​和fyfy​&#xff09;和主点&#xff08;光学中心&#xff09;的坐标&#xff08;cxcx​和cycy​&#xff09;。这个矩阵将图像坐标转换为归一化相机…...

STM32第九课:STM32-基于标准库的42步进电机的简单I/O控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正比…...

文件安全传输系统,如何保障信创环境下数据的安全传输?

文件安全传输系统是一套旨在保护数据在传输过程中的安全性和完整性的技术或解决方案。通常包括以下几个关键组件&#xff1a; 加密&#xff1a;使用强加密算法来确保文件在传输过程中不被未授权访问。 身份验证&#xff1a;确保只有授权用户才能访问或传输文件。 完整性校验…...

论文分享|AAAI2024‘北航|用大语言模型缩小有监督和无监督句子表示学习的差距

先说结论&#xff0c;大语言模型除了作为聊天的Agent&#xff0c;也可以为检索模型生成优质的文本对训练数据&#xff0c;从而做到无监督场景下也能够适用。这里分享一篇AAAI2024的工作&#xff0c;重点探讨如何生成比评估集更困难的训练数据来提升无监督句子表示学习质量&…...

vue3相比于vue2有哪些新特性?

Composition API&#xff1a; 组合式 API 提供了更灵活和可组合的方式来组织代码。它允许将逻辑功能集中在一起&#xff0c;而不是分散在生命周期钩子中。 import { ref, reactive, computed, watch } from vue;export default {setup() {const count ref(0);const state r…...

Gooxi受邀参加第三届中国数据中心服务器与设备峰会

7月2-3日&#xff0c;第三届中国数据中心服务器与设备峰会在上海召开&#xff0c;作为国内最聚焦在服务器领域的专业峰会&#xff0c;吸引了来自全国的行业专家、服务器与机房设备厂家&#xff0c;企业IT用户&#xff0c;数据中心业主共同探讨AIGC时代下智算中心设备的设计之道…...

3个实现前端节流的方法,附代码。

一、什么是前端节流 前端节流&#xff08;Throttling&#xff09;是一种优化前端性能的技术&#xff0c;它可以限制某些函数的执行频率&#xff0c;以提高性能和用户体验。节流可以用于控制一些高频事件的触发频率&#xff0c;比如滚动事件、鼠标移动事件、窗口大小改变事件等…...

uniapp 微信小程序根据后端返回的文件链接打开并保存到手机文件夹中【支持doc、docx、txt、xlsx等类型的文件】

项目场景&#xff1a; 我们在使用uniapp官方提供的uni.downloadFile以及uni.saveFile时&#xff0c;会发现这个文件下载的默认保存位置和我们预想的不太一样&#xff0c;容易找不到&#xff0c;而且没有提示&#xff0c;那么我们就需要把文件打开自己保存并且有提示保存到哪个…...

一群追星星的人,对AI的盼与怕

面对AI&#xff0c;有人害怕&#xff0c;有人期盼。 “AI和画画的、开网约车的、写东西的人有仇吗&#xff1f;”近来成了很多从业者的心声。大模型技术驱动了AI的能力进化过临界点&#xff0c;我们普通人根本就跟不上&#xff0c;或快或慢被淘汰。看起来&#xff0c;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&#xff1a; 小明去打开水&#xff0c;而开水塔此时没有水&#xff0c;小明在现场一直等待开水到来&#xff0c;或者不断…...

IP-Guard日志数据上传至 SYSLOG 服务器操作指南

一、功能简介 服务器支持把日志数据上传到 SYSLOG 服务器。 二、功能配置 2.1 数据目录移交设置 在服务器安装目录下 OServer3.ini 文件中&#xff0c;添加工具启动配置&#xff0c;配置五分钟内生效。 Path&#xff1a;设置移交目录路径&#xff0c;IPG 服务器会把收集完成的…...

线程安全(二)synchronized 的底层实现原理、锁升级、对象的内存结构

目录 一、基础使用1.1 不加锁的代码实现1.2 加锁的代码实现二、实现原理2.1 synchronized 简介2.2 对象监控器(Monitor)2.3 加锁过程第一步:判断 Owner 指向第二步:进入 EntryList 阻塞第三步:主动进入 WaitSet 等待三、锁升级3.1 对象的内存结构3.2 Mark Word 对象头3.3 …...

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十四)-无人机操控关键绩效指标(KPI)框架

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…...

数电基础 - 半导体存储

目录 一. 简介 一. 只读存储器 二. 可编程只读存储器 三. 可擦除的可编程只读存储器 四. 随机存储器 五. 存储器容量的扩展 六. 总结 一. 简介 半导体存储是数字电路中用于存储数据的重要组成部分。 半导体存储器主要分为两大类&#xff1a;随机存取存储器&#xff0…...

校园工会体育报名小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;赛事公告管理&#xff0c;球员管理&#xff0c;球队信息管理&#xff0c;比赛信息&#xff0c;比赛报名管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;比赛信息&#xff0c;比赛报名&#…...

2024Datawhale AI夏令营---基于术语词典干预的机器翻译挑战赛--学习笔记

#Datawhale #NLP 1.背景介绍&#xff1a; 机器翻译&#xff08;Machine Translation&#xff0c;简称MT&#xff09;是自然语言处理领域的一个重要分支&#xff0c;其目标是将一种语言的文本自动转换为另一种语言的文本。机器翻译的发展可以追溯到20世纪50年代&#xff0c;经历…...

手机下载APP (uniapp/vue)

一、uniapp <template><view class"content"><view class"appName">{{ formData.appName }}</view><view class"appInfo">{{ formData.appInfo }}</view><image class"logo" :src"formDa…...

python数据可视化(5)——绘制饼图

课程学习来源&#xff1a;b站up&#xff1a;【蚂蚁学python】 【课程链接&#xff1a;【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接&#xff1a;【链接】】 Python绘制饼图分析北京天气 饼图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff…...

实习随笔【iviews的Select实现‘与全部互斥’的多选】

在实习中&#xff0c;遇到了如下需求&#xff0c;要求如下&#xff1a; 上面提到了一个需求为&#xff0c;选择全部与选择一个或者多个互斥&#xff0c;我们来看一下如何解决 核心代码 监听value的变化&#xff0c;如果含有‘全部’&#xff0c;且数组长度>1&#xff0c;则删…...

网站架构核心要素

高性能 技术指标&#xff1a;响应时间、吞吐量、并发数 前端优化手段 页面布局&#xff1a;css在前&#xff0c;js在后通信数据量&#xff1a;数据尽量精简缓存&#xff1a;浏览器缓存、cdn异步&#xff1a;ajax 后端优化手段 缓存&#xff1a;反向代理、redis异步&#x…...

XML 解析异常问题解决

问题描述 The parser has encountered more than "64000" entity expansions in this document; this is the limit imposed by the JDK. 在运行 Java 应用程序时&#xff0c;出现了 XML 解析异常。具体表现为&#xff1a; 报错信息显示无法创建 StAX&#xff08;S…...