從合同審批流程出發(fā),說(shuō)說(shuō)工作流引擎的設(shè)計(jì)原理
本文作者從一個(gè)合同審批流程角度對(duì)工作流的設(shè)計(jì)原理進(jìn)行了介紹,供大家一同參考和學(xué)習(xí)。
寫這篇文章的意圖并不是為成熟工作流引擎知識(shí)徒增一篇文章,也不是深入介紹JPBM、Aactivity等工作流引擎技術(shù)和數(shù)據(jù)庫(kù)結(jié)構(gòu)。而是因?yàn)楫?dāng)前轉(zhuǎn)ToB的產(chǎn)品經(jīng)理多了,但提及這塊兒就很難深入。雖然有不少介紹工作流的文章,但大多是直接介紹BPM的體系,很少有文章從業(yè)務(wù)角度出發(fā)介紹為什么這樣設(shè)計(jì),下面我就試著從一個(gè)合同審批流程角度介紹工作流的設(shè)計(jì)原理,希望對(duì)大家有幫助。
工作流簡(jiǎn)介
工作流(Workflow),指“業(yè)務(wù)過(guò)程的部分或整體在計(jì)算機(jī)應(yīng)用環(huán)境下的自動(dòng)化”。是對(duì)工作流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括描述。在計(jì)算機(jī)中,工作流屬于計(jì)算機(jī)支持的協(xié)同工作(CSCW)的一部分。其主要解決的主要問(wèn)題是:為了實(shí)現(xiàn)某個(gè)業(yè)務(wù)目標(biāo),利用計(jì)算機(jī)在多個(gè)參與者之間按某種預(yù)定規(guī)則自動(dòng)傳遞文檔、信息或者任務(wù)。說(shuō)白了就是按照怎樣順序、做什么、由誰(shuí)來(lái)做。
1993年工作流管理聯(lián)盟(Workflow Management Coalition,WfMC)作為工作流管理的標(biāo)準(zhǔn)化組織而成立,標(biāo)志著工作流技術(shù)逐步走向成熟。WfMC對(duì)工作流給出定義為:工作流是指一類能夠完全自動(dòng)執(zhí)行的經(jīng)營(yíng)過(guò)程,根據(jù)一系列過(guò)程規(guī)則,將文檔、信息或任務(wù)在不同的執(zhí)行者之間進(jìn)行傳遞與執(zhí)行。工作流無(wú)論是減少人為操作,提供工作效率,還是優(yōu)化線下業(yè)務(wù)流程,提高管理水平均有很大的幫助。
工作流經(jīng)歷了第一個(gè)階段的“無(wú)紙化、重復(fù)工作、流程孤島、系統(tǒng)孤島、數(shù)據(jù)孤島”過(guò)程,目前正在實(shí)現(xiàn)“智能化、效率質(zhì)量提升、外部數(shù)據(jù)整合、消除信息孤島、內(nèi)部數(shù)據(jù)整合”的第二階段。
1. 合同審批流程
所有的信息化都是為了解決業(yè)務(wù)上需求,首先我們了解企業(yè)合同管理制度中審批流程是如何完成的。下面是一個(gè)比較通用合同審批流程圖。
- 首先所有可以起草合同并發(fā)起合同申請(qǐng)流程的人,即使合同承辦人;
- 合同承辦人將合同提交其部分負(fù)責(zé)人(實(shí)際情況可能部長(zhǎng)或副部長(zhǎng)均要審批、或順序?qū)徟?、或任一審批即可)?lái)審批,大部分還有內(nèi)部審核人把關(guān)再提交其部門負(fù)責(zé)人;他們都有權(quán)退回(不合格需要修改)或駁回(徹底不簽了);如果承辦部分負(fù)責(zé)人同意,可以選擇相應(yīng)的會(huì)簽部分同步開始會(huì)簽,如財(cái)務(wù)部、技術(shù)部等等。有些事必須選擇,如涉及金額合同必須選擇財(cái)務(wù)部。
- 會(huì)簽部門就更熱鬧了,三五個(gè)部分并行審批,部門內(nèi)部有各自審批流程,而且均可以同意、退回,有的需要退回合同承辦人,有的需要退回承辦部門負(fù)責(zé)人。而且有的情況是全部同意才能算通過(guò),有的是三分之二同意才能算通過(guò)。
- 必須經(jīng)過(guò)合同歸口部門審核。一般是法律部或風(fēng)險(xiǎn)部,他們也需要退回,可能是審批過(guò)的任何一個(gè)節(jié)點(diǎn),返回來(lái)的方式可能是從來(lái)一遍,也可以直接返回退回人。這里還有“是否重大合同”和“是否使用合同范本”的業(yè)務(wù)屬性判斷。
- 根據(jù)業(yè)務(wù)業(yè)務(wù)類型和管轄范圍,自動(dòng)選擇分管領(lǐng)導(dǎo)。根據(jù)授權(quán)情況判斷合同流程是否到此終止,當(dāng)然分管領(lǐng)導(dǎo)可以退回、駁回等。
- 總經(jīng)理可能會(huì)簡(jiǎn)單些,同意、退回、駁回。審批通過(guò)后自動(dòng)觸發(fā)用印或上報(bào)上級(jí)公司的審批流程。
這算是一個(gè)常規(guī)的大企業(yè)合同審批流程,如何利用信息化實(shí)現(xiàn)一份具體合同審批流程?簡(jiǎn)單,將每一步及其規(guī)則固化帶代碼中。如果換一份合同?如果換一種業(yè)務(wù)?如果規(guī)則變動(dòng)?如果需要每個(gè)節(jié)點(diǎn)觸發(fā)不同業(yè)務(wù),顯現(xiàn)不同信息?如果人員變動(dòng)了?如何組織機(jī)構(gòu)變動(dòng)了?這個(gè)時(shí)候就需要我們抽取其中的共性,將其引擎化,能夠通過(guò)配置實(shí)現(xiàn)系統(tǒng)的靈活性。
2. 工作流引擎設(shè)計(jì)
下面我們從業(yè)務(wù)的角度逐步抽象出工作流引擎的設(shè)計(jì)。遇到復(fù)雜問(wèn)題一方面我需要按照第一性原理尋找最本質(zhì)的需求,另一個(gè)更常規(guī)的思路就是分解,對(duì)問(wèn)題進(jìn)行分類分級(jí)處理,各個(gè)擊破。其實(shí),還有一種完全交個(gè)用戶自己選擇,如釘釘審批流程。但大型企業(yè)流程的作用除了提高效率,還需要減少人為操作、控制合規(guī)風(fēng)險(xiǎn),完全交個(gè)用戶選擇的自由流程使用較少。
從上文的流程圖中,可以簡(jiǎn)單抽取出流程、環(huán)節(jié)、連線、角色、組織等主要對(duì)象,還有一個(gè)就是與外部(業(yè)務(wù))發(fā)生關(guān)系的接口。它們之間簡(jiǎn)單的關(guān)系就是流程由環(huán)節(jié)和聯(lián)系組織,環(huán)節(jié)上有角色和組織屬性,接口可以在連線上,也可以在環(huán)節(jié)上,下面一步步解釋。
(1)流程分類(流程太多)
如果設(shè)計(jì)一個(gè)通用的工作流引擎,面對(duì)的各種業(yè)務(wù)流程、審批流程可以說(shuō)成千上萬(wàn),怎么辦?首先想到的就是對(duì)流程進(jìn)行分類,對(duì)相同類型的流程進(jìn)行統(tǒng)一處理,降低流程需求復(fù)雜度和耦合度。目前業(yè)務(wù)操作不同進(jìn)行分類的,如請(qǐng)假流程、報(bào)銷流程、合同審批流程等等。
(2)自定義具體流程(一種流程還是太復(fù)雜)
如何合同審批流程,不同企業(yè)、不同種類,審批流程還是不一樣。繼續(xù)細(xì)分類別可以解決問(wèn)題,但分到最后流程就需要多少個(gè)環(huán)節(jié)以及之間的關(guān)系是什么還是不確定,交個(gè)用戶和運(yùn)維人員搭建流程,由他們自己定義。?定義流程的名稱、流程的環(huán)節(jié)、環(huán)節(jié)順序(連線)、環(huán)節(jié)參與人員等。
(3)自定義具體環(huán)節(jié)(環(huán)節(jié)定義最復(fù)雜)
環(huán)節(jié)需要具體到做什么工作、誰(shuí)來(lái)做、怎么做等,但這三個(gè)主要因素都是變量,做什么工作(即查看什么表單,同意、退回、駁回等),誰(shuí)來(lái)做(通過(guò)組織、角色、群組框定出參與的候選人),怎么做(并行、串行等),這些都需要通過(guò)配置實(shí)現(xiàn)。另外,需要配置出發(fā)的其他業(yè)務(wù)事件等,如何合同審批完畢后自動(dòng)生成合同編號(hào)。
(4)環(huán)節(jié)間的連線
上文提到在實(shí)際業(yè)務(wù)審批中,涉及金額的合同必須經(jīng)過(guò)財(cái)務(wù)審批,說(shuō)明流程的走向與業(yè)務(wù)屬性發(fā)生了關(guān)系。因此,我需要設(shè)計(jì)在節(jié)點(diǎn)間連線上設(shè)置業(yè)務(wù)條件,或設(shè)計(jì)可以進(jìn)行業(yè)務(wù)判斷的節(jié)點(diǎn),滿足這種業(yè)務(wù)需求。
(5)流程實(shí)例(每個(gè)流程)
上面講到的都是配置一種流程,即將審批制度步驟和規(guī)則放到系統(tǒng)中,但具體的一份合同審批流程信息即流程實(shí)例必須記錄下來(lái),一是為了留痕,再者就是流程審批中發(fā)生退回和返回需要用到這些數(shù)據(jù),每個(gè)流程審批的業(yè)務(wù)唯一標(biāo)識(shí),每個(gè)環(huán)節(jié)實(shí)例需要記錄誰(shuí)在什么時(shí)間、什么意見等。
(6)流程版本(流程變更)
業(yè)務(wù)上流程變更了怎么辦?這就需要對(duì)流程進(jìn)行版本管理,可以實(shí)現(xiàn)流程變更前已經(jīng)提交的流程,按照之前的版本繼續(xù)進(jìn)行,而流程變更后提交的流程按照最新版本進(jìn)行。
(7)流程關(guān)聯(lián)
本單位的流程審批完畢后,符合上報(bào)條件需要啟動(dòng)上級(jí)工作流程;合同審批流程中,每個(gè)會(huì)簽部門內(nèi)部的流程本身就比較負(fù)責(zé),需要為會(huì)簽部門搭建單獨(dú)的審批流程,嵌入到合同審批流程中。以上兩種情況就涉及到流程關(guān)聯(lián)和子流程的問(wèn)題,需要進(jìn)行設(shè)計(jì)。
(8)流程設(shè)計(jì)器
以上的操作如果沒(méi)有圖形化支持,根本無(wú)法完成,因此,一個(gè)圖形化的流程設(shè)計(jì)器是必須的。
這里只是簡(jiǎn)單介紹了一下工作的流程設(shè)計(jì)原理,還有很多復(fù)雜深入的需求和邏輯沒(méi)有提到,但是有了框架和整體認(rèn)識(shí)后,完全可以根據(jù)需求進(jìn)行改進(jìn)和設(shè)計(jì)。
本文由 @Being4 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
好多錯(cuò)別字,合同流程圖最后面是否也畫錯(cuò)了
請(qǐng)教下,關(guān)于工作流引擎公司會(huì)建設(shè)或采購(gòu)符合所有業(yè)務(wù)的進(jìn)行統(tǒng)一使用,這時(shí)候個(gè)性化需求應(yīng)該會(huì)舍棄吧?個(gè)性化較強(qiáng)的業(yè)務(wù)會(huì)獨(dú)立建設(shè)嘛~
個(gè)性化需求到什么程度?一般不建議獨(dú)立建設(shè),之所以叫做引擎就是和具體業(yè)務(wù)關(guān)聯(lián)非常少,而且發(fā)展到今天應(yīng)該可以支持大部分需求,太個(gè)性化的需求可以考慮投入產(chǎn)出比,是否真的有必要實(shí)現(xiàn)
產(chǎn)品經(jīng)營(yíng)分析
想請(qǐng)教下,在公司沒(méi)有系統(tǒng)的情況下,我的合同登記表應(yīng)該如何設(shè)計(jì),才能更好的管理?
現(xiàn)階段是每次走一份合同審批流,都記錄一次數(shù)據(jù)和費(fèi)率,但是有些客戶可能重簽或者換簽合同之后,就有多份合同數(shù)據(jù),我要如何做,才能在每次調(diào)取的時(shí)候只有一份最新的合同信息,還能保留原來(lái)審批流的明細(xì)?
重簽、換簽合同與之前的合同進(jìn)行關(guān)聯(lián)是否可以解決問(wèn)題。履約主體、履行期限、合同金額等一直情況下提醒關(guān)聯(lián)原合同
你好能請(qǐng)教你一個(gè)問(wèn)題么?
一個(gè)審批流,開始狀態(tài)是 “草稿” 可編輯刪除 , 如果審批人審批駁回后狀態(tài)是定義一個(gè)“駁回”狀態(tài)還是直接打回“草稿”狀態(tài),如果定義一個(gè)”駁回“ 狀態(tài) 又讓發(fā)起可以編輯刪除?
有兩個(gè)詞一個(gè)是駁回,一個(gè)是退回。業(yè)務(wù)上駁回的意思是這事不用辦了,流程標(biāo)記為駁回狀態(tài)進(jìn)入歸檔模式,不可修改不可刪除;業(yè)務(wù)上退回的意思是有點(diǎn)小問(wèn)題,修改完畢再提交過(guò)來(lái),狀態(tài)仍是審批中,可以修改不可以刪除。原則上進(jìn)入流程中不可以刪除要保留痕跡,唯一一種可以刪除的情況就是,起草人提交沒(méi)有任何人審批的時(shí)候,撤回了
文章內(nèi)錯(cuò)別字和多余字還是有些多,建議可以再優(yōu)化一下。
從原始需求到業(yè)務(wù)流程,再?gòu)闹谐橄蟪隽鞒桃妫ㄒ鎯?nèi)容的原由),且核心觀點(diǎn)很正“所有動(dòng)作都是服務(wù)于實(shí)際需求”。引擎是為了服務(wù)當(dāng)下、未來(lái)的需求,即產(chǎn)品拓展性。講的比較連貫,容易理解。
多謝
能推薦一些開源項(xiàng)目嗎?
activity、flowable
麻煩你用他人照片時(shí)先征求作者同意行嗎!!!!!!!! ??
哪說(shuō)的不明白,歡迎大家交流~~
從原型圖角度出發(fā)的話,我怎么表達(dá)能讓研發(fā)落地這個(gè)決策流呢?
這塊兒開源項(xiàng)目很成熟,不用重復(fù)造輪子。梳理清楚開源想的功能,哪里不合適優(yōu)化升級(jí)即可,建議不用0-1的原型
需要付費(fèi)的吧?