工作流控制模式-取消和強制完成模式5種
流程例項執行的過程中,不免會產生異常情況,這些異常情況包括了超時、資源不可用、外 部環境變化等,異常導致流程例項/活動執行的價值減少甚至浪費,在這種情況下,就涉及到流 程例項/活動執行的取消。
取消和強制完成模式共有5種,如圖A-41所示。
圖A-41 取消和強制完成模式
- 取消活動:取消流程例項中某一活動的執行。
- 取消流程例項:取消整個流程例項的執行。
- 取消區域:取消某一區域裡所有正在執行的活動。
- 取消多例項活動:取消流程例項中某一多例項活動的執行。
- 強制完成多例項活動:強制完成流程例項中某一多例項活動的執行,強制流程向後流轉。
取消活動(WCP_19: Cancel Task)
描述
取消一個已啟用的活動,如果已經開始執行,那麼停止執行,並且可能的話,移除正在執行 的工作項。
如圖A-42所示,工程招標預審流程,招標公司進行資格的預審,需要兩位評委完成評審評審 才結束,評審結果裡只要有一個不通過則預審不通過。剩下一位評委的評審活動被取消。
圖A-42 取消活動
取消流程例項(WCP_20: Cancel Case)
描述
取消一個正在執行中的流程例項。該流程例項被標識為未成功完成。
如圖A-43所示,訂單處理過程中顧客突然取消訂單,那麼停止該流程例項的執行。我們使用 終止結束事件結束流程例項。
圖A-43 取消流程例項
取消區域(WCP_25: Cancel Region)
描述
一系統的活動建模成一個區域,流程例項執行時,可以對整個區域進行取消,區域中正在執 行或處於啟用狀態的活動被取消。這些活動可以位於不同分支上並互不連線。
如圖A-44所示,雙十一期間,很多商家處理訂單的過程中發現缺貨,於是取消整個訂單處理 的子流程,給顧客傳送訊息通知。
圖A-44 取消區域
取消多例項活動(WCP_26: Cancel Multiple Instance Activity)
描述
在一個流程例項裡,可以對多例項活動進行取消:未完成的工作項被取消,已經完成的工作 項不受影響。
如圖A-45所示,領導可以在發文傳閱過程中取消發文,此時閱讀檔案的工作被取消,已經閱 讀過的不受影響。
圖A-45 取消多例項活動
強制完成多例項活動(WCP_27: Complete Multiple Instance Activity)
描述
在一個流程例項裡,可以對多例項活動強制完成:未完成的工作項被取消,已經完成的工作 項不受影響,後續活動被觸發。
如圖A-46所示,領導要求科室負責人在當天完成檔案的傳閱,第二天早上進行正式發文,此 時閱讀檔案的工作被取消,已經閱讀過的不受影響。
圖A-46 強制完成多例項活動
小結
取消流程例項/活動經常與工作流異常相關,此時執行過的工作已經產生了一定的影響,為 了使流程例項能夠繼續執行(或通過其他路徑繼續執行)或正常停止,往往需要對已執行工作所 產生的影響進行消除,這就需要通過恢復動作(回滾與業務補償)完成,我們將在附錄D工作流 異常模式裡詳細討論這些情況。
本文來源:http://www.cnblogs.com/x3d/,轉載請註明。