bpmn事件

1、bpmn的相關(guān)性

任務(wù)和網(wǎng)關(guān)是我們到目前為止了解的三個流元素中的兩個:事情(任務(wù))必須在特定的環(huán)境(網(wǎng)關(guān))下完成。還有一個流元素:應(yīng)該發(fā)生的事情(事件)。對于bpmn流程模型來說,事件的重要性不亞于任務(wù)或網(wǎng)關(guān)。我們應(yīng)該從應(yīng)用它們的一些基本原則開始。比如:

1、捕獲事件并拋出異常。

2、啟動事件、中間事件和結(jié)束事件。

捕獲事件是具有定義觸發(fā)器的事件。我們認為,一旦觸發(fā)器被激活或觸發(fā),它們就會發(fā)生。作為一個智力結(jié)構(gòu),這是相對復(fù)雜的,因此我們通過調(diào)用它們捕捉事件來簡化它。關(guān)鍵在于,這些事件會影響流程的進程,因此必須對其建模。捕獲事件可能導(dǎo)致:

1、這個過程開始

2、進程或進程路徑正在繼續(xù)

3、當前正在處理的任務(wù)或正在取消的子進程

4、執(zhí)行任務(wù)或子進程時使用的另一個進程路徑

bpmn假設(shè)拋出事件是自己觸發(fā)的,而不是對觸發(fā)器做出反應(yīng)??梢哉f,與被動捕獲事件相比,它們是主動捕獲事件。我們簡稱它們?yōu)閽伋鍪录驗槭沁M程觸發(fā)它們的。投擲事件可以:

1、在過程中觸發(fā)

2、在流程結(jié)束時觸發(fā)

因此,啟動事件總是發(fā)生的事件。流程在啟動之前不能觸發(fā)事件。最簡單的啟動事件應(yīng)用程序如圖1.1所示。當事件發(fā)生時,流程啟動。

7.6-1.png

圖1.1:一旦事件1發(fā)生,流程就會啟動。

注意:圓圈中的問號表示此事件可以分配給特定類型。到目前為止,我們還沒有報道任何事件。下面幾節(jié)將解釋可能的事件類型。

不同的事件可能會觸發(fā)流程,可以對其建模,如圖1.2所示。每個事件觸發(fā)自己的流程實例是很重要的。

7.1-2.png

圖1.2:一旦事件1或事件2發(fā)生,流程就會啟動。

另一方面,假設(shè)您希望對流程啟動之前必須發(fā)生的幾個事件進行建模。很多人會對這種情況建模,如圖2.31所示。

7.1-3.png

圖1.3:壞:技術(shù)上來說,這個模型會導(dǎo)致死鎖

這是直觀的,但不幸的是它是不正確的,而且很少有bpmn初學(xué)者理解為什么它是不正確的。原因是and merge不支持相關(guān)性,因此流程將無法識別這兩個事件是關(guān)聯(lián)的。我們會在后續(xù)的文章中詳細介紹bpmn是如何提供解決方案的。

流程可能需要發(fā)生特定的中間事件,如圖1.4所示。任務(wù)1完成后,必須在任務(wù)2完成之前發(fā)生事件1。使用令牌方法時,令牌會在事件1處等待,直到事件發(fā)生為止。只有這樣,令牌才會繼續(xù),并啟動任務(wù)2。

7.4-4.png

圖1.4:在任務(wù)1之后,流程將等待,直到事件1發(fā)生。只有這樣,它才能繼續(xù)執(zhí)行任務(wù)2。

注意:none事件(如2.2節(jié)中所解釋的)不是捕獲事件。它屬于投擲項目。

我們?nèi)绾伪硎疽粋€進程必須等待兩個事件?我們在圖1.5中顯示的是有缺陷的。任務(wù)1完成后,令牌繼續(xù)并等待事件1發(fā)生。如果事件2發(fā)生時,令牌正在等待事件1,令牌將不會注意到它。更糟糕的是,如果事件1發(fā)生在事件2之后,令牌將繼續(xù),然后等待事件2發(fā)生。由于事件2已經(jīng)發(fā)生,令牌將永遠等待。

7.6-5.png

圖1.5:順序的中間事件只能一個接一個地被識別

因此,捕獲事件的語義不是檢查可能已經(jīng)滿足的條件,而是將捕獲事件視為在發(fā)生后立即消失的臨時信號。因此,流程只有在事件發(fā)生時恰好處于準備接收狀態(tài)時才能處理該事件。在純功能流程建模中,這些細節(jié)通常會被忽略,但是,在技術(shù)流程建模中必須遵循這些細節(jié)。

如果我們需要等待兩個可能獨立發(fā)生的事件,但是這兩個事件必須在流程繼續(xù)之前發(fā)生,那么我們將表示如圖1.6所示的情況。

7.6-6.png

圖1.6:使用并行網(wǎng)關(guān)同時等待多個事件

我們可以用bpmn建模附加的中間事件。它們不顯式地需要等待,但它們確實會中斷我們的活動,包括任務(wù)和子流程(稍后將討論)。之所以附加這些中間事件,是因為我們將它們放置在想要中斷的活動的邊界上。在圖1.7中所示的過程中運行的令牌的行為如下:

令牌移到任務(wù)1,相應(yīng)啟動。

如果在處理任務(wù)1時發(fā)生事件1,任務(wù)1將立即取消,令牌將通過異常流轉(zhuǎn)移到任務(wù)3。另一方面,如果事件1沒有發(fā)生,則將處理task 1,令牌將通過常規(guī)序列流轉(zhuǎn)移到task 2。

如果事件1只在任務(wù)1完成后發(fā)生,那么它就不再重要。

7.6-7.png

圖1.7:事件1取消任務(wù)1并啟動任務(wù)3

由于中間事件不中斷,附加的中間事件不必導(dǎo)致活動被取消。這聽起來很尷尬,但很有用。令牌在圖1.8中所示的process部分中移動,如下所示。

1、令牌移到任務(wù)1,相應(yīng)啟動。

2、如果在處理任務(wù)1時發(fā)生事件1,則克隆令牌。在第二個令牌移動到任務(wù)3時,任務(wù)1繼續(xù)被處理,現(xiàn)在任務(wù)3也被處理了。這個過程甚至可能重復(fù)發(fā)生,也就是說,事件可能多次發(fā)生。每次出現(xiàn)都會導(dǎo)致另一個克隆標記。

3、如果事件1沒有發(fā)生,任務(wù)1將完成,令牌將通過常規(guī)序列流轉(zhuǎn)移到任務(wù)2。

4、如果事件1只在任務(wù)1完成后發(fā)生,那么它就不再重要。

7.6-8.png

圖1.8:事件1的發(fā)生導(dǎo)致了task 3的啟動,而task 1正在被進一步處理

進程觸發(fā)拋出中間事件。這意味著在這樣的事件中發(fā)生的令牌會觸發(fā)它,然后立即繼續(xù)。拋出事件不會導(dǎo)致活動被取消,這就是它們永遠不能被附加的原因。它們只出現(xiàn)在序列流中。我們已經(jīng)知道了none中間事件,該事件可用于將條目建模為已定義狀態(tài)。這也是一個投擲活動。

在下面的部分中,我們將介紹使用bpmn時使用的事件類型。我們還將解釋如何使用基于事件的網(wǎng)關(guān)對不同事件作出反應(yīng)。事件類型有:

消息

計時器

錯誤

有條件的

信號

終止

鏈接

補償

多個

平行

升級

取消


本文會持續(xù)更新,歡迎關(guān)注,技術(shù)支持:盤古BPM

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374