Flowable底层实现:空事件与用户任务详解
需积分: 0 75 浏览量
更新于2024-06-16
收藏 18.3MB DOCX 举报
本文档深入研究了Flowable的工作流引擎底层实现,主要关注于启动事件和结束事件的处理,以及用户任务的多实例应用。以下是各部分的详细解读:
1. 启动事件 - 空启动事件
- 空启动事件是流程实例的默认起点,通常需要人工干预或API触发。发起者信息(如张某)可以通过processDefinition类的ActivityImpl对象获取initiator属性。表单标识(formKey)用于关联表单,支持外置表单引用。同时,可以配置验证表单字段,包括必填项检查。动态表单属性允许灵活配置页面属性。
- 底层实现:解析BPMN定义时,会创建NoneStartEventActivityBehavior类,继承自FlowNodeActivityBehavior类,并在leave()方法中自动完成流程实例的启动。
- 业务场景扩展:空启动事件适合那些无需特定触发条件直接开始的流程。
2. 结束事件 - 空结束事件
- 空结束事件作为流程或分支的终结点,无须特殊处理结果,流程实例在到达此节点后自然结束。空结束事件用空心粗边圆圈表示,XML定义简洁,仅包含基本声明。
- 底层实现:BPMN解析时,通过getHandledType()方法找到对应的结束事件拦截器,执行createNoneEndEventActivityBehavior()并调用execute()方法来完成实例结束。
- 业务场景扩展:空结束事件适用于流程的常规终止,不需要进一步的事件处理。
3. 活动 - 用户任务
- 用户任务是流程中的关键步骤,可能涉及多人协作。多实例应用是指在用户任务上设置多实例特性,使得同一活动在运行时能并发执行,适用于需要处理多个实例的情况。
- 多实例的应用:通过添加特定属性,使得用户任务能够独立执行,每个实例按预定规则执行,增加了流程的并发性和复杂性。
总结来说,本文档提供了对Flowable中核心元素(启动和结束事件、用户任务)的深入剖析,展示了它们的使用方法、底层实现机制,以及如何在实际业务场景中进行扩展。这对于理解Flowable的工作原理和优化流程设计具有重要价值。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2018-06-25 上传
2020-01-10 上传
2021-09-15 上传
2019-11-06 上传
2023-06-10 上传
2023-07-27 上传
vegetari
- 粉丝: 2w+
- 资源: 21
最新资源
- SourceAnywhere For VSS 配置手册.pdf
- android平台应用程序开发指南
- 可信计算(A.Practical.Guide.to.Trusted.Computing)
- struts2 学习重点笔记
- 怎样做实验室的工作,MiT新生必读
- 至少应该阅读的九本C++著作
- 西门子GSM TC35的AT命令
- moreEffectiveC++_侯捷.pdf
- STC89系列 中文资料 PDF格式
- 基于WWW的劳资人事管理系统
- wps表格初级教程4
- Struts2轻松入门
- 基于2D模板与3D包围式标定块的鱼眼相机标定
- 基于关键词的WEB文献自动跟踪系统的实现方法
- ISD1400的资料
- C语言写的电子万年历代码