bpmn事件

1、bpmn的相关性

任务和网关是我们到目前为止了解的三个流元素中的两个:事情(任务)必须在特定的环境(网关)下完成。还有一个流元素:应该发生的事情(事件)。对于bpmn流程模型来说,事件的重要性不亚于任务或网关。我们应该从应用它们的一些基本原则开始。比如:

1、捕获事件并抛出异常。

2、启动事件、中间事件和结束事件。

捕获事件是具有定义触发器的事件。我们认为,一旦触发器被激活或触发,它们就会发生。作为一个智力结构,这是相对复杂的,因此我们通过调用它们捕捉事件来简化它。关键在于,这些事件会影响流程的进程,因此必须对其建模。捕获事件可能导致:

1、这个过程开始

2、进程或进程路径正在继续

3、当前正在处理的任务或正在取消的子进程

4、执行任务或子进程时使用的另一个进程路径

bpmn假设抛出事件是自己触发的,而不是对触发器做出反应。可以说,与被动捕获事件相比,它们是主动捕获事件。我们简称它们为抛出事件,因为是进程触发它们的。投掷事件可以:

1、在过程中触发

2、在流程结束时触发

因此,启动事件总是发生的事件。流程在启动之前不能触发事件。最简单的启动事件应用程序如图1.1所示。当事件发生时,流程启动。

7.6-1.png

图1.1:一旦事件1发生,流程就会启动。

注意:圆圈中的问号表示此事件可以分配给特定类型。到目前为止,我们还没有报道任何事件。下面几节将解释可能的事件类型。

不同的事件可能会触发流程,可以对其建模,如图1.2所示。每个事件触发自己的流程实例是很重要的。

7.1-2.png

图1.2:一旦事件1或事件2发生,流程就会启动。

另一方面,假设您希望对流程启动之前必须发生的几个事件进行建模。很多人会对这种情况建模,如图2.31所示。

7.1-3.png

图1.3:坏:技术上来说,这个模型会导致死锁

这是直观的,但不幸的是它是不正确的,而且很少有bpmn初学者理解为什么它是不正确的。原因是and merge不支持相关性,因此流程将无法识别这两个事件是关联的。我们会在后续的文章中详细介绍bpmn是如何提供解决方案的。

流程可能需要发生特定的中间事件,如图1.4所示。任务1完成后,必须在任务2完成之前发生事件1。使用令牌方法时,令牌会在事件1处等待,直到事件发生为止。只有这样,令牌才会继续,并启动任务2。

7.4-4.png

图1.4:在任务1之后,流程将等待,直到事件1发生。只有这样,它才能继续执行任务2。

注意:none事件(如2.2节中所解释的)不是捕获事件。它属于投掷项目。

我们如何表示一个进程必须等待两个事件?我们在图1.5中显示的是有缺陷的。任务1完成后,令牌继续并等待事件1发生。如果事件2发生时,令牌正在等待事件1,令牌将不会注意到它。更糟糕的是,如果事件1发生在事件2之后,令牌将继续,然后等待事件2发生。由于事件2已经发生,令牌将永远等待。

7.6-5.png

图1.5:顺序的中间事件只能一个接一个地被识别

因此,捕获事件的语义不是检查可能已经满足的条件,而是将捕获事件视为在发生后立即消失的临时信号。因此,流程只有在事件发生时恰好处于准备接收状态时才能处理该事件。在纯功能流程建模中,这些细节通常会被忽略,但是,在技术流程建模中必须遵循这些细节。

如果我们需要等待两个可能独立发生的事件,但是这两个事件必须在流程继续之前发生,那么我们将表示如图1.6所示的情况。

7.6-6.png

图1.6:使用并行网关同时等待多个事件

我们可以用bpmn建模附加的中间事件。它们不显式地需要等待,但它们确实会中断我们的活动,包括任务和子流程(稍后将讨论)。之所以附加这些中间事件,是因为我们将它们放置在想要中断的活动的边界上。在图1.7中所示的过程中运行的令牌的行为如下:

令牌移到任务1,相应启动。

如果在处理任务1时发生事件1,任务1将立即取消,令牌将通过异常流转移到任务3。另一方面,如果事件1没有发生,则将处理task 1,令牌将通过常规序列流转移到task 2。

如果事件1只在任务1完成后发生,那么它就不再重要。

7.6-7.png

图1.7:事件1取消任务1并启动任务3

由于中间事件不中断,附加的中间事件不必导致活动被取消。这听起来很尴尬,但很有用。令牌在图1.8中所示的process部分中移动,如下所示。

1、令牌移到任务1,相应启动。

2、如果在处理任务1时发生事件1,则克隆令牌。在第二个令牌移动到任务3时,任务1继续被处理,现在任务3也被处理了。这个过程甚至可能重复发生,也就是说,事件可能多次发生。每次出现都会导致另一个克隆标记。

3、如果事件1没有发生,任务1将完成,令牌将通过常规序列流转移到任务2。

4、如果事件1只在任务1完成后发生,那么它就不再重要。

7.6-8.png

图1.8:事件1的发生导致了task 3的启动,而task 1正在被进一步处理

进程触发抛出中间事件。这意味着在这样的事件中发生的令牌会触发它,然后立即继续。抛出事件不会导致活动被取消,这就是它们永远不能被附加的原因。它们只出现在序列流中。我们已经知道了none中间事件,该事件可用于将条目建模为已定义状态。这也是一个投掷活动。

在下面的部分中,我们将介绍使用bpmn时使用的事件类型。我们还将解释如何使用基于事件的网关对不同事件作出反应。事件类型有:

消息

计时器

错误

有条件的

信号

终止

链接

补偿

多个

平行

升级

取消


本文会持续更新,欢迎关注,技术支持:盘古BPM

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335