探討BPM流程申請活動與退回操作的建模

肖永威發表於2015-05-15

1886年,卡爾·本茨發明世界第一輛汽車,汽車為人力溝通、交通、物流做出巨大貢獻。汽車駕駛員都知道要想駕車上路,第一步是先啟動汽車,觀察周圍情況,再掛檔開出,按規劃路線出行,如果有問題則停車,直至熄火。
BPM流程活動和駕駛汽車上路活動是否很相近呢?汽車有發動機引擎,BPM有流程引擎。

超越資訊化實施BPM的業務與技術路線,將是怎麼樣呢?

早期實施案例分析

首先,回顧早期實施BPM建模模型,如下圖所示簡易審批流程圖。

Created with Raphaël 2.1.2開始申請部門經理審批確認?領導審批同意?結束yesnoyesno

關於申請活動

在業務申請活動中,使用BPM引擎模型區域性表示是:

Created with Raphaël 2.1.2開始申請部門經理審批

使用者體驗流程區域性模型表示是:

Created with Raphaël 2.1.2申請(開始)部門經理審批

如上圖所示模型中“申請活動”表達是啟動流程並送到下一環節,越過啟動及啟動處理環節。這樣申請人無法結束流程,就好像汽車駕駛員上車開車就出發,不能停車。

通過分析,得出如下結論:

  • 流程申請人操作便捷,但是犧牲了流程處理的靈活性、合理性;
  • 流程差錯處理能力不足。

關於退回處理

按模型所示,領導可以直接把流程申請單退回給申請人,而國外的BPM流程引擎僅僅支援流程回退上一環節功能,這樣是否可以把流程管理活動理解如下:

  • 直接退回申請人的處理,就好像駕駛員按路線駕駛汽車開出100公里時,突然在某個關口下道,直接回到起點,而不是原路返回,那麼,是有近路不走呢,還是原規劃路線有問題呢?
  • 直接退回申請人處理,從流程操作角度看,非常便捷——快!那麼設定中間活動環節是做什麼用的呢?問題出在申請人還是中間環節呢?
  • 為什麼不原路退回呢?是管理不了還是怕追責呢?

上述理解很不合適,流程設計者初衷也不是這樣的,這樣的問題如何解決呢?

優化BPM實施模型

首先,仍以上文簡易審批流程為例,調整申請活動環節,以及退回申請人處理。

Created with Raphaël 2.1.2開始申請繼續?部門經理審批確認?領導審批同意?結束結束yesnoyesnoyesno

由於畫圖表示原因,註釋說明如下:
(1)部門經理可以退回申請人
(2)領導可以退回到部門經理
退回申請人的操作,按原路退回方式完成。

關於優化申請活動

在業務申請活動中,使用BPM引擎模型區域性表示是:

Created with Raphaël 2.1.2開始申請繼續?部門經理審批確認?結束yesnono

通過上述優化,申請活動環節具有結束流程能力。如下圖所示,基於Cordys BOP 4平臺建模樣例,供參考。
這裡寫圖片描述

優化申請活動環節操作順序如下圖所示。整體上為申請人增加了一次處理待辦任務操作(圖中第3步),此待辦任務內含有順序送給下一活動環節和結束流程兩個分支。

Created with Raphaël 2.1.2申請人申請人業務申請業務申請待辦任務待辦任務1.儲存申請單()2.啟動流程送出()3.選中所啟動的流程()4.展示申請單()5.填寫意見()6.送出流程()

注:此種建模方式,申請人也可以填寫流程處理意見。

關於退回處理優化

按規範化流程管理,不存在退回處理業務,僅存在退回上一活動環節業務。合理流程建模方法如下:

  • 按業務本質要求,合理安排跳轉,通過畫流程跳轉線的方法,處理類似退回的業務;
  • 通過管理手段解決,在任何時候都會有異常情況,例如系統故障所造成的問題,需要退回到申請人,對於類似這樣的異常情況,可以通過運維手段,後臺人工/自動處理。

流程優化方法總結

流程優化、流程再造是個系統化工程,在這裡僅從常見問題進行技術優化總結。

首先,設計流程原則:

  • 流程活動環節各負其責,工作路徑清晰;
  • 流程活動環節僅允許退回上一活動環節,不允許跨活動環節退回;
  • 除了退回和分發活動環節,不允許有二次經過的活動環節

常見問題或需求及解決方案如下表所示:

問題或需求 解決方案 說明
任意退回需求 通過後臺運維按異常進行處理 屬於不符合規範情況
申請人結束流程 增加申請活動環節 不建議使用啟動來替代
無序多環節併發 使用活動環節或子流程併發處理 例如Cordys上For Each迴圈
順序工位多活動環節退回 通過畫關聯線處理 業務需求,麻煩是必須
活動環節多有不用的情況 梳理拆分為多個工作流 一個業務分拆成多個流程

相關文章