2.消息事件
大多數(shù)流程都需要通信熬词,這可以通過消息事件在bpmn中表示轮听。消息事件的圖標(biāo)是小信封。消息事件的一般應(yīng)用如圖2.1所示杯拐。
圖2.1:應(yīng)用消息事件霞篡。
在bpmn中,消息的含義并不僅限于信件端逼、電子郵件或電話朗兵。引用特定收件人并代表或包含該收件人信息的任何操作都是消息。例如顶滩,在圖2.2中余掖,披薩訂購問題已經(jīng)被完全建模:我們選擇一個(gè)披薩,并訂購它礁鲁。然后我們等待披薩送到盐欺。送貨后,我們吃東西仅醇。注意冗美,這里沒有訂單披薩任務(wù)。
圖2.2:作為消息事件訂購和獲取披薩
圖2.3所示的實(shí)際上是錯(cuò)誤的:所訂購的投擲中間事件披薩意味著我們已經(jīng)訂購了一個(gè)披薩析二。如果添加了相應(yīng)的任務(wù)粉洼,則會(huì)導(dǎo)致雙重定義,因此沒有意義
圖2.3:錯(cuò)誤的內(nèi)容:根據(jù)這個(gè)流程模型甲抖,我們會(huì)點(diǎn)兩次披薩漆改。
圖2.4:附加的消息事件導(dǎo)致任務(wù)搜索錯(cuò)誤的取消。
在圖2.4中准谚,我們顯示了一條導(dǎo)致取消的消息挫剑。在這個(gè)場景中,我們管理一個(gè)web應(yīng)用程序柱衔。當(dāng)用戶通知我們網(wǎng)站不工作樊破,我們立即搜索錯(cuò)誤。但可能是用戶搞錯(cuò)了唆铐,網(wǎng)站沒有問題哲戚。可能用戶的互聯(lián)網(wǎng)連接有問題艾岂。如果用戶告訴我們錯(cuò)誤警報(bào)顺少,我們會(huì)取消搜索并咒罵用戶浪費(fèi)了我們的時(shí)間。但是,如果真的發(fā)現(xiàn)了錯(cuò)誤脆炎,我們就消除它梅猿,同時(shí)找出是誰造成了錯(cuò)誤。如果是用戶造成的錯(cuò)誤秒裕,我們可以用不同的理由咒罵用戶袱蚓。但是,如果用戶沒有錯(cuò)几蜻,我們會(huì)非常感謝他或她讓我們知道這個(gè)問題喇潘。
圖2.5:我們的約定:發(fā)送消息的任務(wù),接收消息的事件
我們的bpmn約定俗成:我們并不總是喜歡中間的投擲活動(dòng)梭稚。在沒有顯式建模的情況下暗示發(fā)送消息任務(wù)會(huì)很容易迷惑沒有經(jīng)驗(yàn)的模型使用者颖低。我們選擇不為消息拋出中間事件,而是使用任務(wù)弧烤。(參見圖2.5)枫甲,后續(xù)文章中會(huì)講解有一些特殊的bpmn任務(wù)類型用于發(fā)送和接收消息。
本文會(huì)持續(xù)更新扼褪,歡迎關(guān)注,技術(shù)支持:盤古BPM