日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bpmn事件

發布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bpmn事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、bpmn的相關性

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

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

2、啟動事件、中間事件和結束事件。

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

1、這個過程開始

2、進程或進程路徑正在繼續

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

4、執行任務或子進程時使用的另一個進程路徑

bpmn假設拋出事件是自己觸發的,而不是對觸發器做出反應??梢哉f,與被動捕獲事件相比,它們是主動捕獲事件。我們簡稱它們為拋出事件,因為是進程觸發它們的。投擲事件可以:

1、在過程中觸發

2、在流程結束時觸發

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

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

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

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

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

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

圖1.3:壞:技術上來說,這個模型會導致死鎖

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

?

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

圖1.4:在任務1之后,流程將等待,直到事件1發生。只有這樣,它才能繼續執行任務2。

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

我們如何表示一個進程必須等待兩個事件?我們在圖1.5中顯示的是有缺陷的。任務1完成后,令牌繼續并等待事件1發生。如果事件2發生時,令牌正在等待事件1,令牌將不會注意到它。更糟糕的是,如果事件1發生在事件2之后,令牌將繼續,然后等待事件2發生。由于事件2已經發生,令牌將永遠等待。

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

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

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

圖1.6:使用并行網關同時等待多個事件

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

令牌移到任務1,相應啟動。

如果在處理任務1時發生事件1,任務1將立即取消,令牌將通過異常流轉移到任務3。另一方面,如果事件1沒有發生,則將處理task 1,令牌將通過常規序列流轉移到task 2。

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

圖1.7:事件1取消任務1并啟動任務3

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

1、令牌移到任務1,相應啟動。

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

3、如果事件1沒有發生,任務1將完成,令牌將通過常規序列流轉移到任務2。

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

圖1.8:事件1的發生導致了task 3的啟動,而task 1正在被進一步處理

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

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

消息

計時器

錯誤

有條件的

信號

終止

鏈接

補償

多個

平行

升級

取消


?本文會持續更新,歡迎關注,技術支持:盤古BPM

?

總結

以上是生活随笔為你收集整理的bpmn事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。