多人待辦工作處理模式琢岩,也是待辦處理模式竹海。是當接受的節(jié)點是多個人的時候,如何處理待辦梧乘?
[if !vml]
[endif]
根據(jù)不用的場景离陶,ccbpm把多人在普通節(jié)點下的處理模式分為如下幾種稼虎。
搶辦模式:
A發(fā)送到B ,B節(jié)點上有n個人可以處理招刨。這n個人都可以看到待辦霎俩,當其中一個人處理后,其他人的待辦就消失了沉眶。這樣的工作模式屬于搶辦打却,這n個人可以同時打開,當一個人發(fā)送后谎倔,其他人都不能在發(fā)送了柳击。通俗的說,也就是誰搶到了這件工作传藏,就是誰處理的。搶辦模式是一個默認的處理模式彤守。
協(xié)作模式:
A發(fā)送到B 毯侦,B節(jié)點上有n個人可以處理。這個n個人都可以去處理具垫,都可以去發(fā)送侈离,有最后一個處理人發(fā)送到下一個節(jié)點上去,這n個人的處理不分順序筝蚕。這樣的模式我們叫做協(xié)作模式卦碾。
協(xié)作模式通常用在具有審核組件的表單中,每個人都可以填寫自己的意見起宽,發(fā)表自己的看法洲胖,在審核組件里審核每個人在一個節(jié)點上只能寫入一條數(shù)據(jù),也就是說只能表達一次意見坯沪。
也經(jīng)常用在傳閱的情況下绿映,必須這些人都讀取了,知道了才能向下運動。它與抄送不同的地方是叉弦,抄送可以不看丐一,就可以向下運行,但是他必須處理才能向下運行淹冰。
通常的協(xié)作模式库车,就是多人都要點擊一下發(fā)送功能按鈕,來確認自己處理了樱拴,確認自己同意了或者認可了柠衍。
隊列模式:
A發(fā)送到B ,B節(jié)點上有n個人可以處理疹鳄。這個n個人按照設(shè)置的先后順序去處理拧略,在同一個時間點必須有一個人待辦,其他人看不到瘪弓。
應用場景: 一個公文發(fā)送給一個部門垫蛆,該部門下n個人可以接受(注意這是一個節(jié)點),按照國內(nèi)的行政制度腺怯,這n個人會從小到達排一個隊列袱饭,有最小的級別的工作人員審批,然后依次類推呛占,走到最后由最后一個人發(fā)送到下一個節(jié)點去虑乖。這n個人都是該節(jié)點的處理人,這n個人的審核步驟是由他們的順序確定的晾虑,所以在設(shè)置該節(jié)點的接受人時疹味,要按照順序執(zhí)行。
通常這樣的模式也與審核組件一起使用帜篇,每個人表達意見后糙捺,就發(fā)送到下一個節(jié)點,當然這樣的模式也
共享模式:
A發(fā)送到B 笙隙,B節(jié)點上有n個人可以處理洪灯。ccbpm有一個任務(wù)池,這寫人都需要從這個任務(wù)池里獲取竟痰。
關(guān)于對ccbpm任務(wù)池的描述:
∏┕场1,在流程屬性與全局配置設(shè)置了啟動任務(wù)池的狀態(tài)下坏快,如果一個節(jié)點遇到多個人處理铅檩,這個任務(wù)就放在了任務(wù)池里,只有參與處理的人人員才能看得到莽鸿。
∧ⅰ2,工作人員在處理該工作之前需要申請,放到自己的代辦里臼予,一人申請之后鸣戴,其他人就不能申請了,多個人同時申請第一個人申請的先得到粘拾。
≌3,申請之后缰雇,任務(wù)池里就不出現(xiàn)在條工作而是進入了被申請人的待辦里入偷。
4械哟,如果申請人處理不了這件工作疏之,他可以把該工作放入任務(wù)池中,放入任務(wù)池的工作可以被其他的N個人可以看到暇咆。
》孀Α5,不管取回與放入爸业,都需要寫入流程日志其骄。
6,任務(wù)池的設(shè)計:
〕犊酢1拯爽,在流程引擎控制表WF_GenerWorkFlow 中增加了如下字段:
TaskSta, 枚舉類型, 0=不啟用钧忽,1=共享毯炮,2=被申請。
TodoEmpsNum, Int類型耸黑,處理人員數(shù)量桃煎,當前節(jié)點工作有多少人待辦,如果此值大于等于2崎坊,討論共享任務(wù)才有意義备禀。
????????TodoEmps varchar(500)待辦人員,格式為 處理人員編號洲拇,處理人員名稱奈揍; 比如:guobaogeng,郭寶庚;fuhui,福惠;
「承2男翰,在流程引擎控制表的人員列表中 WF_GenerWorkerList中對于IsEnable字段,進行擴充了,如果等于 -1=任務(wù)池禁用纽乱,0=分配工作被屏蔽蛾绎,1=正常。
3租冠,增加了一個功能界面 /WF/TaskPoolSmaller.aspx次功能界面是有在任務(wù)池啟用才能被使用鹏倘。
4,在流程屬性里增加一個字段 IsEnableTaskPool 是否啟用任務(wù)池顽爹? 此字段用來控制該流程是否啟用任務(wù)池纤泵。
協(xié)作組長模式:
這個模式與協(xié)作模式區(qū)別在于,如果當前的人員中有一個是組長(領(lǐng)導)镜粤,他在執(zhí)行發(fā)送的時候就標記這個流程結(jié)束捏题。
這種模式有如下3中情況:
第一種:接受人員列表里沒有領(lǐng)導/組長,這種模式與協(xié)作模式是一樣的肉渴,就是所有的成員都表態(tài)(舉手)才能向下發(fā)送公荧。
第二種:只有一個領(lǐng)導/組長的情況,領(lǐng)導/組長向下發(fā)送的時候同规,標識該節(jié)點完成循狰。比如: 當前節(jié)點是一個采樣節(jié)點,采樣組有1個組長n個組員捻浦,只有組長向下發(fā)送的時候才標記次流程完成晤揣。
第三種:有n個領(lǐng)導/組長的情況,n>=1 任何一個領(lǐng)導/組長向下發(fā)送的時候標記該流程完成朱灿。比如:當前節(jié)點的采樣任務(wù)交給了兩個采樣組負責昧识,有兩個組長n個成員,任何一個組長向下發(fā)送盗扒,標記流程結(jié)束跪楞。
怎么標記該其中一個成員是領(lǐng)導?當前登錄人員是所在的部門的領(lǐng)導侣灶,他就是組長或者領(lǐng)導甸祭,我們用sql表達如下。SELECT COUNT(No) AS num FROM
Port_Dept WHERE No='"+WebUser.FK_Dept+"'
AND Leader='"+WebUser.No+"'
?
任務(wù)池的SDK接口:
∪煊啊1池户,獲得共享任務(wù): DB_TaskPool
2凡怎,獲得共享任務(wù)中我的待辦:DB_TaskPoolOfMy
⌒=埂3,從共享任務(wù)中取回:Node_TaskPoolTakebackOne
⊥车埂4寨典,把取回的共享任務(wù)放入任務(wù)池: Node_TaskPoolPutOne