bpmn复杂网关

** 2.复杂的网关 **
复杂网关是一个不同的类别。虽然它不常被使用,但在某些情况下它的使用是合理的。例如:我们想要订披萨。我们仔细阅读我们最喜欢的供应商的菜单。在研究了两种来源之后,一旦我们找到了想要的东西,就会开始。
我们如何建立模型呢?图2.1展示只有对两个源对比研究之后才订购比萨饼。


6.30-1.png

图2.1披萨研究与合并。
在图2.2中,两者都不是选项:基于令牌概念,我们将执行两次订披萨的任务。


6.30-2.png

图2.2:使用xor合并的披萨研究。
图2.3中的or合并也没有解决这个问题:当一个令牌到达or合并时,流程会等待可能永远不会到达相应的令牌那里。or合并行为因此与and网关相同。


6.30-3.png

图2.3:披萨研究与或合并。
解决方案是结合注释的复杂网关,如图2.4所示。一旦其中一个任务完成,复杂的合并就会将令牌发送披萨订单的任务。当下一个令牌到达复杂合并时,它被消耗。它就消失了。


6.30-4.png

图2.4:具有复杂合并的披萨研究。
下面是类似的情况:假设我们一次执行四个任务。第5个任务将在前四个任务中的3个完成后执行。例如,我们问四个朋友他们想在哪家披萨店点餐。一旦三位朋友提出了意见,我们就会做出决定。我们可以用一个复杂的网关来建模我们的同步行为。(参见图2.5。)


6.30-5.png

图2.5:使用复杂网关实现n个合并中的m个。
原则上,一个复杂的网关也可以作为分割来应用,例如,将几个不同的网关汇总在一个符号中,以节省一些空间。通过在注释中编写分割语义,可以用一个复杂的网关替换分离出来的or。但这并没有真正意义,而且我们从来没有将复杂网关用作分割,也没有在任何实际模型中看到过它的使用。
本文会持续更新,欢迎关注,技术支持:盘古BPM

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容