做过实际业务流程设计的人都知道,正常的、没有例外和出错处理的流程是最容易建模的。(所以正常的流程又称为happy flow)
处理流程中的例外和错误是流程建模中比较难的一部分。如果建模规范或语言对此支持好,使用起来自然会省力很多。
BPMN 2.0之前,已专门有Boundary Event(边界事件)来处理例外和错误,而BPMN 2.0规范中又新加了Event Sub-Process(事件子流程),用于非正常(例外)流程的处理。
事件子流程是设置为“事件触发(triggeredByEvent)”的一类子流程,它们可以出现在流程或子流程中。因为事件子流程只处理例外或错误流程,因此不能够有流入(incoming)或流出(outgoing)Sequence Flows。
下图中的流程包含了两个事件子流程:
事件子流程和一般子流程在图形表现上的区别是:事件子流程的边界是虚线。
事件子流程必须有一个(且只能有一个)Start Event,同时这个Start Event的触发类型不能为空(None),必须是以下7种触发类型或它们的组合:
补偿(Compensation),升级(Escalation),错误(Error),消息(Message),信号(Signal),条件(Conditional),定时(Timer)。
当事件子流程包含的Start Event被触发时,事件子流程就启动了。
事件子流程启动后,它的父流程是终止还是继续运行呢? 这是由事件子流程的Start Event是否标注为“中断”决定的。
如果Start Event标注为中断(Start Event表现为实线的圆圈,如上图中第二个事件子流程),则事件子流程启动后,父流程终止;
如果Start Event没有标注为中断(Start Event表现为虚线的圆圈,如上图中第一个事件子流程),则事件子流程启动后,父流程继续运行。
事件子流程中的Start Event只在父流程开始运行后才开始监听触发事件,在父流程结束时停止监听。如果父流程有监听相同触发事件的边界事件,则事件子流程优先于边界事件,即事件子流程先捕获到触发事件。
如下图,事件子流程和边界事件监听同一个错误。当错误发生时,事件子流程被触发,对应的边界事件不会被触发。事件子例程处理完后,流程从父流程的正常Sequence flow流出(即图中上面的flow):
事件子流程中也可以选择抛出捕获的事件或其他事件,从而触发父流程对应的边界事件。如下图,如果事件子流程选择抛出Error_1事件,父流程的边界事件将被触发,整个流程将在End_2结束,否则流程在End_1结束:
合拢的事件子流程在它的左上角显示内部Start Event标注。
事件子流程和包含它的父流程运行于同一个流程上下文(context),也就是事件子流程运行时可以直接访问父流程中的数据。
分享到:
相关推荐
再者,BPMN2.0规范强化了对流程的动态行为描述,包括顺序流(Sequence Flow)、并发流(Parallel Flow)以及子流程(Sub-Process)。顺序流定义了活动之间的执行顺序,而并发流则允许多个活动同时进行。子流程则允许...
事件子流程(Event Sub-Process)是一种特殊的子流程,当其开始事件触发时被激活,可以中断上一级流程上下文或并行运行(非中断型),具体取决于开始事件。事件子流程通常放置在处理器子流程(Processor Sub-Process)内。...
3. **活动**:活动分为任务(Task)和子流程(Sub-Process),任务是流程中的基本操作,子流程则是可重用的流程片段。还有并行任务(Parallel Task)和多实例任务(Multi-instance Task),前者同时执行多个任务,后...
2. **流程图的构造**:BPMN 2.0流程图由过程(Process)、子过程(Sub-Process)、事件(Event)、泳道(Pool/Lane)等构成。过程是整个流程的主体,子过程是可重用的流程部分;事件用来标记流程的开始、结束和其他...
BPMN2.0(Business Process Model and Notation 2.0)是一种国际标准的业务流程建模语言,用于描述企业或组织的业务流程。它提供了丰富的图形化符号,使得流程设计者能够清晰地表达复杂的流程逻辑。在BPMN2.0中,...
- 创建流程图,包括任务(Task)、事件(Event)、网关(Gateway)、泳道(Lane)、子流程(Sub-Process)等元素。 - 配置流程变量,定义数据输入输出。 - 设计复杂的流程逻辑,如条件分支、并行处理等。 - 使用内置...
1. **活动**:如任务(Task)、子流程(Sub-Process)、事件(Event)、网关(Gateway)等,用于表示流程中的操作和决策点。 2. **流程图元素**:如开始事件(Start Event)、结束事件(End Event)、边界事件...
这些文件可以包含各种类型的元素,如开始事件(Start Event)、结束事件(End Event)、任务(Task)、子流程(Sub-Process)、 Exclusive Gateway(排他网关)等,它们共同构成了一个完整的业务流程模型。...
- Sub-Process:包括可复用的子流程(CallActivity)、嵌入的子流程(EmbeddedSub-Process)和点对点的子流程(Ad-HocSub-Process)。 - **关口**: - 分支:支持Java、MVEL或XPath表达式语言的 Exclusive 和 ...
1. **活动(Activity)**: 表示流程中的工作单元,如任务(Task)、子流程(Sub-Process)等。 2. **事件(Event)**: 描述流程中的特定情况,如开始事件(Start Event)、结束事件(End Event)等。 3. **网关...
- Activity通常表示为矩形,可以是Task(任务)、Sub-Process(子流程)等,表示实际的业务操作。 - Gateway包括Exclusive Gateway(排他网关,根据条件选择一条路径执行)、Inclusive Gateway(包容网关,允许...
1. **BPMN元素**:BPMN包含多种元素,如事件(Event)、任务(Task)、网关(Gateway)、泳道(Lane)、子流程(Sub-Process)等,这些元素在流程图中都有特定的图形表示。 2. **图形化API**:bpmn-js 提供了一套...
- Activity涵盖了Task(任务)、Sub-Process(子流程)等,表示业务流程中的具体工作单元。 - Gateway包括Parallel Gateway(并行执行网关)、Exclusive Gateway(排它型网关)和Inclusive Gateway(包容型网关...
Event Sub-Process(事件子流程)是BPMN2的新特性,可以在流程中捕捉到特殊事件,并触发相应的动作。例如,在投诉处理流程中,可以设置边界事件,以便在特殊情况下触发相应的动作。 BPMN2提供了一种通用的语言和...
- **子流程(Sub-Process)**:包含多个任务的流程片段,可重复使用。 **呼叫活动(Call Activity)**: - **抽象呼叫活动**:调用未具体定义的子流程。 - **用户呼叫活动**:涉及用户交互的子流程。 - **手动呼叫活动*...
BPMN(Business Process Model and Notation)是一种标准化的业务流程建模语言,广泛应用于业务流程图的绘制和业务流程的分析、设计和管理中。BPMN约束是针对业务流程模型中各个元素间关系和属性的规则限定,确保...
另外,它实现了“除User Task外的其余节点”,这可能包括Start Event、End Event、Exclusive Gateway、Parallel Gateway、Sub Process等 Activiti支持的流程节点。Activiti设计器通常提供图形化的界面,让用户可以...
Flowable v6.4.2提供了全面的BPMN 2.0支持,包括任务(Task)、事件(Event)、网关(Gateway)、子流程(Sub-Process)等元素。用户可以利用这些元素设计复杂的业务流程,并通过Flowable引擎实现流程的执行与监控。...
2. 活动:包括任务(Task)和子过程(Sub-Process),它们代表了业务流程中的具体工作单元。任务可以是人工的,也可以是自动化的,而子过程则允许将复杂流程分解为更小的单元。 3. 事件:分为开始事件(Start Event...