在B端系統(tǒng)中,流程并發(fā)駁回具體如何處理?
本文作者以個(gè)人在工程項(xiàng)目管理系統(tǒng)設(shè)計(jì)過(guò)程中的實(shí)際經(jīng)歷,為大家分享了以下設(shè)計(jì)文檔,幫助大家解決“B段系統(tǒng)設(shè)計(jì)中流程并發(fā)駁回”具體該如何處理的問題。
公司用一款敏捷開發(fā)平臺(tái)做企業(yè)辦公系統(tǒng),近日給客戶做一款工程項(xiàng)目管理系統(tǒng)。因?yàn)榭蛻粜袠I(yè)特殊性,一個(gè)項(xiàng)目的概算在百億以上,所以對(duì)流程審批比較重視,同時(shí)審批效率也有一定要求,部分流程需要幾個(gè)相關(guān)部門并行一起審批;但又因平臺(tái)缺少并行審批功能,在參考了網(wǎng)上不多的文檔后加上客戶實(shí)際需要與自己的思考形成以下設(shè)計(jì)文檔,同時(shí)包括了開發(fā)的疑問與我的回復(fù),供大家學(xué)習(xí)交流。
一、概念定義
1. 概念示例圖
2. 流程模版
指使用流程設(shè)計(jì)器設(shè)計(jì)的,某一應(yīng)用對(duì)應(yīng)的所有高級(jí)表單都應(yīng)執(zhí)行的流程
3. 并行流程分區(qū)
并行流程由兩個(gè)或者多個(gè)分支流程同時(shí)執(zhí)行,分支上可以有多個(gè)節(jié)點(diǎn),所有分支上的所有節(jié)點(diǎn)都執(zhí)行完畢后,整個(gè)并行流程才被認(rèn)為是執(zhí)行完成,流程一旦進(jìn)入并行流程,我們可以把整個(gè)并行流程步驟看做一個(gè)整體,稱之為并行流程分區(qū)。本文只討論并行流程“與”,“或(多條分支但根據(jù)條件實(shí)際只執(zhí)行一個(gè)分支)”不在本文研究范圍內(nèi)。
并行分區(qū)應(yīng)被定義為一個(gè)整體,其在整個(gè)流程中可以被看做一個(gè)節(jié)點(diǎn)。
在示例中共有2個(gè)并行流程,分別是4、5、6、7、8與10、11、12 。
出現(xiàn)并行流程的原因有:
- 為了提高企業(yè)效率。并行審批是多人同時(shí)審批,能夠提高審批的速度;
- 解決同時(shí)審批,但絕大多數(shù)審批的內(nèi)容不一樣的用戶場(chǎng)景。
4. 并行分支
在并行流程分區(qū)內(nèi)并行執(zhí)行的實(shí)例稱之為并行分支
在示例中共有5個(gè)并行分支,分別是4、7與5、8與6與10、12與11
并行分支審批狀態(tài)
并行分支應(yīng)有同意與不同意兩種審批狀態(tài),分支的狀態(tài)取決于分支上節(jié)點(diǎn)的審批狀態(tài)
- 當(dāng)分支上所有節(jié)點(diǎn)都為同意時(shí),認(rèn)為分支為同意
- 當(dāng)分支上一個(gè)節(jié)點(diǎn)為不同意時(shí),認(rèn)為分支為不同意
開發(fā):
節(jié)點(diǎn)同意不同意,是后臺(tái)程序去判斷,不是頁(yè)面操作?
產(chǎn)品:
節(jié)點(diǎn)不同意是指:節(jié)點(diǎn)的審核人員點(diǎn)擊系統(tǒng)“駁回”按鈕填寫駁回表單并點(diǎn)擊提交按鈕的一系列操作。
5. 節(jié)點(diǎn)
可以簡(jiǎn)單的理解為:在現(xiàn)有流程中,一個(gè)“方塊”等于一個(gè)“節(jié)點(diǎn)”。
并行開始節(jié)點(diǎn)
分支開始的作用是實(shí)現(xiàn)流程的并行流轉(zhuǎn),并行開始節(jié)點(diǎn)需要將表單同時(shí)轉(zhuǎn)交給一個(gè)或多個(gè)節(jié)點(diǎn)。
在示例中,共有2個(gè)并行開始節(jié)點(diǎn),分別是3與9。
聚合節(jié)點(diǎn)
聚合節(jié)點(diǎn)用于將分支或動(dòng)態(tài)分支節(jié)點(diǎn)上產(chǎn)生的若干條并行流程實(shí)例聚合起來(lái)。
在示例中共有2個(gè)聚合節(jié)點(diǎn),分別是9與13。
6. 提交
直接提交給我
流程哪里在來(lái)的就回哪里去。
重走流程
即按流程圖定義,返回指定節(jié)點(diǎn)重新執(zhí)行。
二、流程執(zhí)行原則
非并行流程執(zhí)行區(qū)外,在任意時(shí)間點(diǎn)只允許一個(gè)節(jié)點(diǎn)處于辦理中。
兩種狀態(tài):
1.并行流程分支可選
2.分支可不選:并行分支可以根某次實(shí)際業(yè)務(wù)中的需求,跳過(guò)某一分支,如下圖:
在特定業(yè)務(wù)所需流程步驟中,不需要包含5、6節(jié)點(diǎn)的這一分支。那么在3選擇轉(zhuǎn)交下一步時(shí),不對(duì)5進(jìn)行勾選,則在本次流程業(yè)務(wù)中將不執(zhí)行節(jié)點(diǎn)5、8 ;本次并行流程分區(qū)只需4、7、6同意后流程即可轉(zhuǎn)交至9。
例:并行流程分區(qū)內(nèi)的三個(gè)分支分別為財(cái)務(wù)、監(jiān)察審計(jì)、工程管理,在某次合同審核中不需要“監(jiān)察審計(jì)”分支進(jìn)行審核,那么項(xiàng)目主管部門經(jīng)辦人可以只對(duì)財(cái)務(wù)與工程管理部分支進(jìn)行勾選,跳過(guò)檢查審計(jì)部。
未被選定的分支不被記錄
如本次流程業(yè)務(wù)執(zhí)行程中,4、7、6有人選擇退回(重走流程),流程被駁回至3,3再次提交時(shí)可以再次選擇分支。
1. 并行流程分區(qū)內(nèi)流程等待
重申分支狀態(tài)概念:
并行分支應(yīng)有同意與不同意兩種審批狀態(tài),分支的狀態(tài)取決于分支上節(jié)點(diǎn)的審批狀態(tài)
- 當(dāng)分支上所有節(jié)點(diǎn)都為同意時(shí),認(rèn)為分支為同意
- 當(dāng)分支上一個(gè)節(jié)點(diǎn)為不同意時(shí),認(rèn)為分支為不同意
2. 同意等待狀態(tài)
聚合節(jié)點(diǎn)9應(yīng)等待所有分支狀態(tài)都為同意時(shí)再對(duì)聚合節(jié)點(diǎn)9發(fā)送一條待辦信息。(不包括3在“本次”提交流程時(shí)未勾選的分支)
開發(fā):
添加同意與不同意的節(jié)點(diǎn)信息,分支所有的節(jié)點(diǎn)都完成,有不同意的,就駁回?當(dāng)人員不同意,是操作駁回,還是直接填寫不同意?流程判斷所有節(jié)點(diǎn),有不同意的就駁回?每一個(gè)節(jié)點(diǎn)去判斷不同意,只要分支上有一個(gè)不同意,就駁回?也就是說(shuō)出發(fā)駁回的操作是什么?
產(chǎn)品:
此處有兩個(gè)概念:節(jié)點(diǎn)不同意、分支不同意。
節(jié)點(diǎn)不同意是指:節(jié)點(diǎn)的審核人員點(diǎn)擊系統(tǒng)“駁回”按鈕填寫駁回表單并點(diǎn)擊提交按鈕的一系列操作。
分支不同意參見文檔上提及的概念:
分支狀態(tài)概念
并行分支應(yīng)有同意與不同意兩種審批狀態(tài),分支的狀態(tài)取決于分支上節(jié)點(diǎn)的審批狀態(tài)
- 當(dāng)分支上所有節(jié)點(diǎn)都為同意時(shí),認(rèn)為分支為同意
- 當(dāng)分支上一個(gè)節(jié)點(diǎn)為不同意時(shí),認(rèn)為分支為不同意
根據(jù)概念,有多個(gè)節(jié)點(diǎn)的分支按照流程圖順序執(zhí)行,如分支上先執(zhí)行的節(jié)點(diǎn)獲得了同意那么就按照流程圖依次轉(zhuǎn)交給分支上其他節(jié)點(diǎn);如果先執(zhí)行的節(jié)點(diǎn)就獲得了不同意的節(jié)點(diǎn)狀態(tài),那么此時(shí)分支狀態(tài)就獲得“不同意”狀態(tài),分支上后執(zhí)行的節(jié)點(diǎn)不在進(jìn)行,此時(shí)等待其他分支獲得分支狀態(tài)后再按照其他規(guī)則進(jìn)行駁回操作。
圖例2個(gè):
例1駁回:
分支1有多個(gè)節(jié)點(diǎn)(4、7、9)當(dāng)4節(jié)點(diǎn)不同意,進(jìn)行了節(jié)點(diǎn)的駁回操作(直接提交給我或重走流程都可),基于分支狀態(tài)第二條,分支1無(wú)需再獲得節(jié)點(diǎn)7與9的節(jié)點(diǎn)狀態(tài),此時(shí)獲得分支1獲得分支狀態(tài)為:不同意。在獲得2,3分支的分支狀態(tài)獲取后,綜合并行流程分區(qū)的意見,按照其他規(guī)則執(zhí)行駁回操作。
例2同意:
節(jié)點(diǎn)同意概念:點(diǎn)擊轉(zhuǎn)交下一步,填寫轉(zhuǎn)交下一步表單,點(diǎn)擊提交按鈕等一系列操作。
根據(jù)分支狀態(tài)概念,
分支1:4、7、9三個(gè)節(jié)點(diǎn)都為同意后分支1才獲得分支狀態(tài):同意
分支2:5、8兩個(gè)節(jié)點(diǎn)都為同意分支2才獲得分支狀態(tài):同意
分支3:6節(jié)點(diǎn)為同意后分支3獲得分支狀態(tài):同意
此時(shí)整個(gè)并行流程分區(qū)上所有分支都同意則按照流程圖轉(zhuǎn)交至節(jié)點(diǎn)10,對(duì)節(jié)點(diǎn)10發(fā)送一條待辦消息。
3. 駁回等待
與同意等待相似,并行流程分區(qū)內(nèi)所有分支狀態(tài)都獲得之后才執(zhí)行駁回操作,在此之前被駁回人不會(huì)收到駁回通知,以免出現(xiàn)各分支意見不一重復(fù)修改,一個(gè)業(yè)務(wù)辦理多次等問題。
開發(fā):
現(xiàn)在是有駁回就插入記錄,記錄每個(gè)人的駁回信息,當(dāng)?shù)却瓿蓵r(shí),推送那一條代辦?其他的代辦如何處理?當(dāng)有代辦消息時(shí),會(huì)如何提示?
產(chǎn)品:
“現(xiàn)在是有駁回就插入記錄,記錄每個(gè)人的駁回信息”不是記錄每個(gè)人的,如果先執(zhí)行的節(jié)點(diǎn)就獲得了不同意的節(jié)點(diǎn)狀態(tài),那么此時(shí)分支狀態(tài)就獲得“不同意”狀態(tài),無(wú)需再獲得分支上后執(zhí)行的節(jié)點(diǎn)記錄。當(dāng)所有分支都獲得分支狀態(tài)后再按照其他規(guī)則對(duì)相應(yīng)的節(jié)點(diǎn)推送一條待辦。
三、駁回策略
1. “有人有異議就會(huì)被駁回”
如果一個(gè)并行流程分區(qū)內(nèi)有100個(gè)分支,有99條分支狀態(tài)都是同意,有1條分支狀態(tài)是不同意,也將執(zhí)行駁回操作。
開發(fā):
這里的駁回是頁(yè)面操作,還是程序操作?頁(yè)面操作,這一條不同意,是直接提交給我,還是重走流程?
產(chǎn)品:
程序操作
2. 重走流程大于直接提交給我。
在并行流程分區(qū)內(nèi),如有退回類型選擇不一致的情況,則執(zhí)行重走流程。
3. 大于一個(gè)直接提交給我則執(zhí)行重走流程。
在并行流程分區(qū)內(nèi),如有兩個(gè)及兩個(gè)以上節(jié)點(diǎn)選擇直接提交給我,則執(zhí)行重走流程
4. 退回節(jié)點(diǎn)不一致。
在并行流程分區(qū)內(nèi),如兩個(gè)分支選擇的退回節(jié)點(diǎn)不一致,則按照流程模板的節(jié)點(diǎn)序號(hào)(也可以說(shuō)是順序執(zhí)行中相對(duì)先執(zhí)行的節(jié)點(diǎn))對(duì)應(yīng)的節(jié)點(diǎn)處執(zhí)行重走流程(基于以上兩條)
5. “直接提交給我”有且只能傳遞一次。
“直接提交給我”模式有且只能轉(zhuǎn)遞一次,比如節(jié)點(diǎn)9“直接提交給我”模式駁回到節(jié)點(diǎn)4,這時(shí)候節(jié)點(diǎn)4不允許再有“直接提交給我”駁回到節(jié)點(diǎn)2。因?yàn)槿绻性俅巍爸苯犹峤唤o我”駁回到節(jié)點(diǎn)2會(huì)造成混亂,因?yàn)楣?jié)點(diǎn)2處理完后直接返回節(jié)點(diǎn)4,當(dāng)節(jié)點(diǎn)4再次處理時(shí)是按正常提交給節(jié)點(diǎn)7,并不會(huì)直接返回節(jié)點(diǎn)9,那么此時(shí)流程實(shí)例將無(wú)法正常流轉(zhuǎn)到結(jié)束,因?yàn)楣?jié)點(diǎn)9是一個(gè)聚合節(jié)點(diǎn)。
節(jié)點(diǎn)4此時(shí)也不支持再次使用按流程圖執(zhí)行的駁回,因?yàn)槭菚?huì)破壞節(jié)點(diǎn)9的設(shè)置期望,節(jié)點(diǎn)9是期望駁回后直接處理返回回來(lái),所以“直接提交給我”駁回后,統(tǒng)一規(guī)則為不允許再次駁回。只能是按節(jié)點(diǎn)9的期望處理完后再次返回給節(jié)點(diǎn)9.
6. 有駁回權(quán)限的節(jié)點(diǎn)
流程中所有節(jié)點(diǎn)都應(yīng)有駁回權(quán)限
7. 可被駁回節(jié)點(diǎn)
本節(jié)圖示:
并行流程分區(qū)內(nèi)部可被駁回
并行流程分區(qū)內(nèi)可駁回,兩種駁回模式都應(yīng)支持,但不可夸分支選擇
- 例1:8駁回至5,可行
- 例2:9駁回至4,選擇重走流程,可行
- 例3:9駁回至4,選擇直接提交給我,可行
- 例4:9駁回至6,不可行
主線流程駁回至并行流程分區(qū)內(nèi)
當(dāng)審批人在駁回窗口選擇駁回節(jié)點(diǎn)時(shí),主線節(jié)點(diǎn)不可駁回至并行流程分區(qū)內(nèi)任意節(jié)點(diǎn),執(zhí)行重走流程,只支持直接提交給我
例:10駁回到任務(wù)7的情況,由于節(jié)點(diǎn)7處于并行分支上,我們約定這種情況的駁回模式只支持“直接提交給我”模式,若不是這樣那么節(jié)點(diǎn)7可能永遠(yuǎn)不法繼續(xù)流轉(zhuǎn),因?yàn)楣?jié)點(diǎn)10是一個(gè)聚合節(jié)點(diǎn),需要等候節(jié)點(diǎn)9、8、6三個(gè)節(jié)點(diǎn)同時(shí)到達(dá)。
并行流程分區(qū) 駁回至主線節(jié)點(diǎn)
并行流程分區(qū)可駁回至主線節(jié)點(diǎn),兩種駁回模式都支持
- 例1:4駁回至2,選擇重走流程
- 例2:8駁回至3,選擇直接提交給我
本文由 @白開水 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于 CC0 協(xié)議
能給我一個(gè)聯(lián)系方式嗎?我有比較復(fù)雜的項(xiàng)目需求,聯(lián)系方式18911392572
關(guān)于駁回,你給他太多限制了。
1、關(guān)于第5點(diǎn)可以這樣改動(dòng):
9→4→2,都可以“直接提交給我”?!爸苯犹峤弧钡氖仟?dú)立的優(yōu)先服務(wù),可以記錄多條,即記錄 “當(dāng)2提交時(shí)直接給4”、“當(dāng)4提交時(shí)直接給9”
2、如果與前面“整個(gè)分支區(qū)域作為一個(gè)意見”一致,那么分支內(nèi)駁回到分支前是可行的,重新流入分支即可。個(gè)支路駁回人可選擇是否直接提交給我,若不是,則廢棄其他支路的決策。
最近在考慮企業(yè)系統(tǒng)方向PM轉(zhuǎn)型,想和作者交流下,可否聯(lián)系下呀~~
邏輯牛皮~~贊
硬核干貨