概述
企業級常見業務流程設計,介紹性文章,主要用於開闊思維。慕課視頻,學習如下。





監聽器


監聽器的主要作用是:當流程進行到某一個環節,進行監聽並調用一個java類,運行監聽后需要完成的功能。
不同之處在於,執行監聽器可以拿到流程實例的相關數據,任務監聽器可以拿到任務的相關數據,比如任務id,任務名稱等。
第二個不同:作為監聽器的運行類,監聽器需要繼承不同的父類。 監聽器的主要作用可以用來指定執行人,如果是指定本環節的執行人,那就一定要用任務監聽器了。
以及發送通知,可以是短信通知,郵件通知等等,並且還可以用來統計任務的時長。我們可以加兩個,可以用來做任務開始的監聽 和任務結束的監聽,並記錄這兩個時間點。
任務監聽器
案例:短信通知,比如審批到達領導這個節點,給他發送一個短信通知,他再登錄系統審批。


執行監聽器
任務監聽器 拿到的數據跟任務相關,執行監聽器拿到的數據跟流程相關。 執行監聽器常用於執行、讀取流程變量 以及處理業務信息,通常用於統計、處理時長。


用例:
統計時長,當前任務發布幾天了,統計用戶填寫時長。



BPMN定時事件使用場景







定時邊界事件:(時鍾實線):當前節點到時未辦理,會流轉到邊界事件的流程節點。比如:請假單,當前上級領導到時未審批,流轉到上上級領導那里。
![]()
非中斷定時邊界事件(時鍾虛線):當前節點到時未辦理,當前任務不會流轉,同時非中斷邊界事件流程節點也會觸發任務。比如:到期短信提醒,任務還在他那里,但是他還會收到一條短信。

activiti7 m4

目前用定時中間事件來代替:


用例:經過多長時間沒有辦理,就交給主管領導辦理,此處用邊界事情
----->

定時邊界時間非中斷

到時會出現:八戒1,和八戒2兩個任務

總結:activiti 本身有一個輪詢,在6和5中,默認是關閉的,在7中默認是打開的。打開的弊端是會增加一些cpu使用率,關閉可以在yml中進行配置
spring
activiti:
database-schema-update: true
check-process-definitions: false
history-level: full
db-history-used: true
async-executor-activate: true #改為false 即為關閉
信號事件



捕獲事件

拋出事件


信號名稱如圖所示:

例:

消息事件
可以做審批撤回


例如:

撤回實現:


錯誤事件

eg:
服務任務:


服務任務java類的寫法:

事件子流程:
創建調用任務->子流程(展開的)->事件子流程


補償事件




手工任務






服務任務使用場景






子流程類型




多實例任務





會簽與多小組協作-多實例任務


在啟動節點加上監聽器


重點參數如下(強調):

會簽加一票通過


擴展



一個人領取樣品后,交給另一個人分析。


