10.3.3 扩展元素
什么是BPMN扩展元素?我们为什么要从BPMN元素中界定出一个扩展元素的子集?BPMN扩展元素是我们平时使用频率不高的BPMN元素,这些元素更多的面向开发人员而不是业务人员,它们强调流程执行的细节,例如对事件子流程和事务性子流程的定义和对更多具有具体执行语义事件类型的定义。BPMN扩展元素使BPMN变得复杂,它关注流程的执行层面。对于BPMN扩展元素,我们的观点是大概知道它们所表达的语义即可,需要时再查规范。
BPMN扩展元素包括了这些元素,如下图红色部分所示:
- 两种子流程:事件子流程(EventSub-Process)和事务性子流程(Transaction);
- 八种事件:条件事件(ConditionalEvent)、链接事件(Link Event)、多重事件(Multiple Event)、并行多重事件(Parallel Multiple Event)、出错事件(Error Event)、补偿事件(CompensationEvent)、取消事件(Cancel Event)和升级事件(Escalation Event);
- 四种网关:包容性网关(Inclusive)、复杂网关(Complex)、排他事件网关-实例化(ExclusiveEvent-based Gateway-instantiate)和并发事件网关-实例化(Parallel Event-based Gateway-instantiate);
图10‑52BPMN的扩展元素
BPMN扩展元素全部是流对象元素,在下面的小节中,我们将按照活动、事件和网关的顺序展开,同时,在活动里,我们会首先讨论活动的内部循环和多实例行为。
10.3.3.1 活动
内部循环和多实例行为
在实际生活中,我们经常需要重复执行某项任务直至满足一定的条件为止。例如,作为作者,我们需要不断的修改稿子直到编辑认可为止;作为顾客,我们与装修公司的合同里写到:装修不达到要求就不付款。
存在两种类型的循环:一种是类似于程序语言里的“while”,先判断是否满足循环的条件,如果满足才执行,然后再判断循环;一种是类似于程序语言里的“do while”,先执行,然后再判断是否满足循环的条件,如果满足就再循环。活动的内部循环行为实现了工作流控制模式里的结构化循环模式(WCP_21)。
图10‑53活动的循环行为
与活动的内部循环产生一个活动实例重复执行相比,活动的多实例行为会产生多个活动实例,这些活动实例可以并行执行也可以顺序执行。更加复杂的情况请参考工作流控制模式里的多实例模式。
图10‑54活动的多实例行为
子流程
扩展元素里的子流程有两种:事件子流程和事务性子流程。
事件子流程被嵌入到子流程里使用,处理子流程执行过程中发生的事件,我们使用虚线框标识事件子流程,它需要由一个事件触发器触发,根据不同的行为,事件子流程又分为中断和非中断两种,中断事件子流程中断父流程的执行,非中断事件子流程与父流程一同执行,我们使用两种不同的开始事件类型来区分这两种事件子流程的行为:中断事件子流程的开始事件(实线圆圈)与非中断事件子流程的开始事件(单虚线圆圈)。
图10‑54事件子流程
事务性子流程具有ACID属性,它具有三个输出:
- 成功完成(SuccessfulCompletion):事务成功完成,我们使用一个顺序流连接成功后的后续活动;
- 失败完成(Failed Completion):事务执行不成功被取消,事务回滚,所有定义有补偿活动的活动都被补偿,我们使用一个取消捕获事件来连接事务取消后的后续活动;
- 严重异常(Hazard):事务执行过程中系统出现严重的异常,事务无法回滚,活动无法补偿,我们使用一个异常捕获事件来处理这种严重的情况,通常我们会继续抛出异常或者通知上一级流程进行处理。
图10‑56事务性子流程
- 大小: 81.5 KB
- 大小: 36.9 KB
- 大小: 25.4 KB
- 大小: 65.8 KB
- 大小: 87.3 KB
分享到:
相关推荐
6. **开发扩展**:开发者可以基于这个种子项目进行扩展,比如添加自定义行为、适配后端服务、集成到现有应用中等。 7. **学习资源**:要更好地理解和使用bpmn-js,建议熟悉BPMN规范,阅读bpmn-js官方文档,并参考已...
用于令牌模拟的bpmn-js扩展。 安装 通过安装。 npm install bpmn-js-token-simulation 作为附加模块添加到 。 造型师 var BpmnModeler = require ( 'bpmn-js/lib/Modeler' ) ; var tokenSimulation = require ( '...
总结起来,"前端利用BPMN-js实现工作流"涉及的关键技术点包括:理解BPMN标准,掌握HTML和JavaScript基础,使用BPMN-js库解析和渲染流程图,监听和响应用户交互,以及可能的框架集成与自定义扩展。通过实践和学习,...
扩展BPMN片段库 可扩展的插件体系结构 可执行的BPMN模拟 自动分割/合并边缘 柔性装配/拆卸的子 直接部署到现有的BPMN 2.0的发动机。 包括LDAP浏览器/编辑器 进口的Visio VDX文件,并转换为BPMN2.0文件(仅适用于2.0....
6. **自定义行为与扩展** - 如何根据需求定制bpmn-js的行为,例如添加自定义的图形元素或行为。 总之,bpmn-js-examples项目是一个宝贵的资源,对于希望在Web应用中集成BPMN建模功能的开发者来说,提供了实践和学习...
而workflow-bpmn-modeler-jeecgboot 则是在这个框架上进行的扩展,它对原生的workflow-bpmn-modeler组件进行了深度定制和优化,以更好地适应Jeecg-Boot的开发环境。 Workflow-bpmn-modeler 是一个开源的BPMN 2.0...
1. 可扩展性:BPMN2.0支持自定义扩展,允许用户根据需要添加新的元素和属性。 2. 可读性:BPMN2.0的图形符号易于读懂和理解,提高了业务流程模型的可读性。 3. 可重用性:BPMN2.0支持流程模型的重用,减少了业务流程...
bpmn.js 是一个开源库,专门用于在Web上渲染和编辑BPMN 2.0流程图。这个库提供了丰富的API和工具,使得开发者能够方便地将BPMN流程图集成到自己的应用中,无论是简单的显示还是复杂的交互编辑功能都能轻松实现。 在...
bpmn-js的源代码托管在GitHub上,文件名“bpmn-io/bpmn-js-c5e3162”表示的是项目的某个特定版本。在GitHub上,你可以找到详细的文档、示例代码以及问题跟踪。此外,开发者社区活跃,遇到问题时可以向社区求助,或者...
它提供了丰富的API和可扩展性,使得开发人员能够轻松地创建、编辑和展示BPMN流程图。在中文环境中,为了提升用户体验,对BPMN-JS进行汉化是非常必要的。这个“bpmn-js汉化文件.zip”包含了汉化的主要步骤和所需文件...
这样,它结合了我们之前发布的所有先前示例 : 通过数据定制元素进行建模和读取渲染具有自定义元素添加允许创建自定义元素的阅读以下各节中的详细信息:创建模型扩展使用...:analysisDetails扩展元素的BPMN 2.0图...
1. **元模型**:这是BPMN的核心,定义了所有元素的抽象结构,包括活动、事件、网关等基本构建块。 2. **图形符号**:提供了视觉上的表达方式,使得业务流程易于理解和沟通。 3. **XML Schema**:定义了BPMN模型的...
- **安装**:由于资源是`.whl`格式,这是一种Python的二进制包,可以通过`pip`工具进行安装,命令通常是`pip install BPMN_RPA-4.3.0-py3-none-any.whl`。 - **学习BPMN图示**:熟悉BPMN的各种元素和它们在流程图中...
除*.bpmn20.xml扩展名外,还支持*.xml 为了阐明当专用建模者仅支持*.bpmn20.xml时,如何将*.xml用于BPMN图以及为什么将其用于BPMN图,请在此*.bpmn20.xml添加有关*.xml文件用法的注释: 这是什么 该项目提供了用于...
BPMN提供了各种图形元素,如泳道、任务、网关、事件等,用于描绘不同流程步骤和决策点。它的标准化特性使得业务流程在组织内部以及跨组织间的沟通更为高效。 Vue.js,另一方面,是目前非常流行的前端JavaScript框架...
**OmniGraffle** 是Mac OS和iOS上的一个图形设计应用程序,它提供了丰富的图形元素和模板,使用户能够轻松创建专业级别的图表。**BPMN 2.0.gstencil** 文件是OmniGraffle的模板文件,其中包含了一系列预定义的BPMN...
2. **流程执行引擎**:提供了执行流程实例的能力,支持条件分支、循环、事件处理等BPMN元素。 3. **RPA集成**:可能集成了常见的RPA工具,如UiPath、Blue Prism、Automation Anywhere等,方便调用它们的API进行自动...
这个"BPMN-JS.rar"压缩包包含的核心内容是BPMN-JS库,它提供了一个完整的解决方案,使开发者能够轻松地在网页上实现BPMN图的绘制和交互。下载并解压此包后,你可以直接在项目中引用BPMN-JS库,开始创建动态的、用户...
1. **扩展元素库**:BPMN.js允许自定义新的BPMN元素,以满足特定业务需求。 2. **模版定制**:可以通过CSS修改元素样式,或者使用SVG图形来定义自定义模版。 3. **插件系统**:BPMN.js的插件系统允许开发人员扩展...
开发者可能需要熟悉这些工具来有效地使用和扩展bpmn-js。 **源代码结构**:在解压后的文件中,我们可以预期看到`src`目录包含核心的JavaScript源代码,`test`目录包含单元测试,`example`目录可能包含如何在实际...