殊途同歸,各有千秋:兩種審批流解決方案

編輯導語:實現審批流最常見的兩種方法是“BPM方法”和“層級審批方法”,後者更加貼近本土用户使用習慣。本文作者以訂單審批為例,剖析層級審批的設計邏輯,一起來看一下吧。

殊途同歸,各有千秋:兩種審批流解決方案

審批流是企業中高頻業務場景。實現審批流的方法很多,最常見的有兩種抽象:

1)BPM方法

工作流引擎。雖然BPM的完整概念是商業業務流程,但是多數開發者把BPM結合國內情況,收斂了BPM的範圍,核心約束在:表單+流程的範圍,或更縮小到自定義表單+自定義審批流程的範圍。BPM的核心是:基礎表單,步驟執行人,去向或者去向邏輯。

2)層級審批方法

更本土化的抽象邏輯,形象描述為:一層一層逐級審批。層級審批的特點是,沒有步驟的去向概念,而是抽象定義為是和否兩個分支:

BPM方法的資料很多,開源資源也非常豐富,這裏不再贅述。我們來談談更加貼近本土用户使用習慣的——層級審批實現方案。

首先,我們迴歸到基礎場景,以非常典型的單據——訂單審批為例,剖析層級審批的設計邏輯。

審批的基礎業務數據:訂單+訂單明細+(應收計劃)。這裏的應收計劃很容易在業務角度忽略,實際上,審批訂單的核心指標是三個:

如忽略應收數據,則可能會造成大量賬期拖延的應收,甚至於帶來壞賬風險。在我們開發人員看來,應收數據只不過是基礎審批中多了一部分數據而已,關係也不復雜,並不需要花這麼多篇幅來闡述。

實際不然,多數業務管理系統的技術後台並不弱,UI也很現代,但是一旦融入業務運行,就會發現缺胳膊少腿,業務邏輯支離破碎。我們在用户這裏學到這樣一句話:UI漂亮有什麼用?我要跑通業務!當業務管理系統融入了企業的生產運營環境,就會發現:業務順暢高於一切!

説了半天,迴歸業務。用户希望是一組以訂單為中心的業務數據參與審批,並在審批過程中不要被步驟審批人修改原始數據,且沒有經過審批的訂單,不允許被執行,不應該納入銷售類統計。

那麼我們總結為:

  • 一組數據參與審批
  • 鎖定參與審批的數據不允許在過程中隨意修改
  • 沒有經過審批的數據不得繼續執行,且不得納入統計(這是很多用户在用了BPM審批流之後,再用超兔的審批流,忽然發現輕鬆很多的原因之一。在數據層,直接用業務表本表發起審批,並通過審批狀態實現業務執行約束和統計約束)

審批的層級:層級,審批人。和BMP相比,這裏抽象簡化了很多內容,因為簡化所以在配置審批流時非常簡單,只需要兩個參數——層級和審批人。

因為其弱化了步驟去向的概念,用審批的要義:否決即中止,避免了設置步驟去向(並不是説步驟去向沒有價值,而是由步驟組成流程時,步驟去向必須是完整的閉環,雖然有校驗邏輯,但是步驟去向仍然是一個看似簡單,實際容易出錯的參數)。

否決後怎麼辦?既然層級審批是否決自動中止,申請人希望根據否決意見修改原始數據後繼續審批可以嗎?可以,被抽象為重新發起審批。

在這個過程中,原始業務數據被允許修改的同時,會保留上次參與審批的數據快照,比對是否意見做了合理修改。這裏有幾個要點:

  • 步驟只有層級和審批人
  • 任何一步否決即中止,不再繼續
  • 允許申請人在否決後修改業務數據重審,並自動做好數據快照比對

擴展:

  • 審批人角色擴展,支持上下級關係類的動態角色
  • 金額分支的擴展(最高頻分支,覆蓋中小企業審批流分支95%的場景)
  • 自定義動作(在審批步驟中,可以通過代碼插件實現特殊的業務動作)

綜上,我們完整分析了層級審批流的解決方案。從第一視覺上,它沒有BPM看起來更花俏,但是在業務層卻遠比BPM更實用,更便捷。

本文由 @糨醬紫 原創發佈於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

版權聲明:本文源自 網絡, 於,由 楠木軒 整理發佈,共 1451 字。

轉載請註明: 殊途同歸,各有千秋:兩種審批流解決方案 - 楠木軒