10.1.1 核心元素
什么是BPMN核心元素?我们为什么要从BPMN元素中界定出一个核心元素的子集?BPMN核心元素是我们认为可以建模进行业务分析的BPMN元素的必要子集,使用BPMN基本元素适合草图和非正式的沟通,而当组织扩大或需要与组织外部人员进行沟通时,使用更加具体具有明确语义的建模元素变得重要,使用BPMN核心元素能够满足我们平常大部分的建模需要。
除了包括BPMN基本元素,核心元素增加了这些元素,如下图中的黄色部分所示:
- 更多的事件类型:计时(Time)、消息(Message)、链接(Link)和信号(Signal);
- 更具体的活动类型:任务的7种类型、子流程的5种类型和调用活动(CallActivity);
- 事件网关(Event-basedGateway);
- 数据元素:数据对象(DataObject)、输入数据(Data Input)、输出数据(Data Output)和数据存储区(Data Store);
- 数据关联。
图10‑28BPMN的核心元素
10.1.1.1 活动
在基本元素里,我们知道活动是在流程执行过程中执行的工作。活动分为两类:任务(原子的)和子流程(复合的)。任务是流程模型中最小工作单元,不能继续分解,子流程则能继续分解为一系列的子活动。在核心元素里,我们将讨论任务和子流程更具体的类型以及一种新的活动类型-调用活动,这样在我们建模时,模型会有更加具体的语义。
任务
根据任务的执行语义,我们将任务分为8种类型:
- 普通任务(NoneTask):默认的任务类型,未指定任务的执行语义;
- 发送任务(SendTask):给外部参与者发送消息,消息发送完毕则任务执行完毕;
- 接受任务(ReceiveTask):等待并接受从外部参与者发送过来的消息,消息接受完毕则任务执行完毕;
- 人工任务(UserTask):在应用程序协助下完成的人工任务,例如一个从任务列表中拾取并执行的任务,比如办理户口中向计算机输入户口信息的任务;
- 手工任务(ManualTask):没有任何流程引擎和应用程序协助的纯手工任务,例如对我提交户口资料的审核任务;
- 业务规则任务(BusinessRule Task):该任务调用一个业务规则引擎进行数据的计算并获得计算结果;
- 服务任务(ServiceTask):调用某种类型的服务,这种服务可以是WEB服务,也可以是自动化的应用程序;
- 脚本任务(ScriptTask):定义一段执行脚本,由流程引擎执行。
图10‑29任务的8种类型
子流程
有5种不同类型的子流程:
- 嵌入的子流程(EmbeddedSub-Process):子流程定义在父流程里,可以展开显示它所包含的模型细节,也可以收起隐藏细节(可参见图10-25),通常情况下,我们也直接称之为子流程(Sub-Process);
- 重用的子流程(ReusableSub-Process):我们在另外一个业务流程图定义了一个流程,然后在当前流程里调用这个流程,这个流程被我们复用,称之为重用的子流程,在父流程里,我们通过调用活动(Call Activity)调用其他流程:
- 事件子流程(Event Sub-Process):子流程由事件触发,子流程与父流程之间没有顺序流连接,在扩展元素里,我们会具体讨论该类子流程;
- 事务性子流程(Transaction):特殊的子流程类型,子流程内部的任务具有事务性,要么一起成功,要么一起失败。我们可以通过某种事务协议例如WS-Transaction控制它的行为,和事件子流程一样,它属于扩展元素;
- 即席子流程(Ad-Hoc Sub-Process):子流程内部的任务不需要确定顺序关系,由任务执行者根据实际情况自己决定执行顺序。
图10‑30子流程的5种类型
我们看一个即席子流程的例子,当我去医院检查身体时,需要做各种常规检查、抽血和吃早饭,除了抽血一定要在吃早饭之前,其他项目则没有限制。那么可能的顺序有:常规检查->抽血->吃早饭(抽血处排队严重)、抽血->吃早饭->常规检查和抽血->常规检查->吃早饭。
即席子流程赋予我们执行任务的灵活性,在很多情况下,任务之间并没有过度的依赖关系,在这种情况下,就可以根据案例的实际情况例如可用资源,重新灵活排定这些任务执行的顺序,避免等待和阻塞。即席子流程实现了工作流控制模式里的交叉并行路由(WCP_17)模式,具体该模式的描述请参考本书的工作流模式附录部分。
图10‑31即席子流程
调用活动
我们使用调用活动(Call Activity)在当前流程中调用其他流程或全局任务(Global Task)。被调用的流程在当前流程中被称为重用的子流程。那么什么叫全局任务呢?能被其他流程通过调用活动调用的任务称为全局任务。
- 大小: 97.4 KB
- 大小: 35.3 KB
- 大小: 33.4 KB
- 大小: 17.7 KB
分享到:
相关推荐
赠送jar包:activiti-bpmn-model-5.21.0.jar; 赠送原API文档:activiti-bpmn-model-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-model-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-bpmn-model-...
activiti-bpmn-converter-5.18.0-sources.jar
bpmn-js-examples, 关于如何使用bpmn的示例 bpmn-js例子这个库包含了许多例子,展示了如何使用js将它集成到你的应用程序中。 基础知识 simple-bower -展示如何
赠送jar包:activiti-bpmn-model-5.21.0.jar; 赠送原API文档:activiti-bpmn-model-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-model-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-bpmn-model-...
基于vue编写的一些自定义bpmn.js案例-基础篇.zip基于vue编写的一些自定义bpmn.js案例-基础篇.zip基于vue编写的一些自定义bpmn.js案例-基础篇.zip基于vue编写的一些自定义bpmn.js案例-基础篇.zip基于vue编写的一些...
赠送jar包:activiti-bpmn-converter-5.21.0.jar; 赠送原API文档:activiti-bpmn-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
flowable-bpmn---idea的插件--超级好用
activiti-bpmn-converter-5.16.4.jar
BPMN1.1-formal-08-01-17.pdf BPMN1.2-formal-09-01-03.pdf BPMN2.0.2-formal-13-12-09.pdf CMMN1.0-formal-14-05-05.pdf CMMN1.1-formal-16-12-01.pdf DMN1.0-formal-15-09-01.pdf DMN1.1-formal-16-06-01.pdf DMN...
由于公司前段时间在打造一个开发平台,而我主要负责工作流模块,于是就接触到了`bpmn-js`。但众所周知,`bpmn-js` 文档是全英的,相关资料少,填坑的人更少,所以开发起来并没有那么好上手。于是我研究了一段时间,...
activiti-bpmn-converter-5.12.1.jar activiti-bpmn-converter-5.12.1.jar
bpmn-js令牌模拟 用于令牌模拟的bpmn-js扩展。 安装 通过安装。 npm install bpmn-js-token-simulation 作为附加模块添加到 。 造型师 var BpmnModeler = require ( 'bpmn-js/lib/Modeler' ) ; var ...
赠送jar包:activiti-bpmn-converter-5.21.0.jar; 赠送原API文档:activiti-bpmn-converter-5.21.0-javadoc.jar; 赠送源代码:activiti-bpmn-converter-5.21.0-sources.jar; 赠送Maven依赖信息文件:activiti-...
拼写检查元素标签 内置的版本控制库 BPMN 2.0的图形交互信息自动生成 扩展BPMN片段库 可扩展的插件体系结构 可执行的BPMN模拟 自动分割/合并边缘 柔性装配/拆卸的子 直接部署到现有的BPMN 2.0的发动机。 包括LDAP...
bpmn-js-bpmnlint 将集成到。 将此扩展作为一部分进行操作。用法将linter集成到: import lintModule from 'bpmn-js-bpmnlint' ;import BpmnModeler from 'bpmn-js/lib/Modeler' ;import bpmnlintConfig from './....
activiti-bpmn-converter-5.13.jar 相关activiti jar包
bpmn-js示例 该存储库包含许多示例,这些示例显示了如何使用并将其集成到您的应用程序中。 起动机 -开始使用使用我们的。 基本的 -一个示例,说明如何通过安装bpmn-js,如何在节点样式的应用程序中使用bpmn-js以及...
基于bpmn规范的工作流前端制图依赖包