概述
企業級常見業務流程設計,介紹性文章,主要用於開闊思維。慕課視頻,學習如下。
監聽器
監聽器的主要作用是:當流程進行到某一個環節,進行監聽並調用一個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類的寫法:
事件子流程:
創建調用任務->子流程(展開的)->事件子流程
補償事件
手工任務
服務任務使用場景
子流程類型
多實例任務
會簽與多小組協作-多實例任務
在啟動節點加上監聽器
重點參數如下(強調):
會簽加一票通過
擴展
一個人領取樣品后,交給另一個人分析。