這是我們(東方易維)工作流產(chǎn)品設(shè)計(jì)過程中采取的設(shè)計(jì):
一、流程實(shí)例的狀態(tài)
狀態(tài)分為5種:實(shí)例化、執(zhí)行中、掛起、手工結(jié)束、正常結(jié)束。
狀態(tài)的變遷如下圖:
二、節(jié)點(diǎn)實(shí)例的狀態(tài)
狀態(tài)分為5種:實(shí)例化、執(zhí)行中、掛起、手工結(jié)束、正常結(jié)束。
狀態(tài)的變遷如下圖:
三、具體節(jié)點(diǎn)的狀態(tài)
細(xì)分:
A、人工節(jié)點(diǎn)、等待節(jié)點(diǎn)
這兩個(gè)節(jié)點(diǎn)被觸發(fā)后存在一個(gè)執(zhí)行等待的過程,所以可以被用戶直接掛起和手工結(jié)束。人工節(jié)點(diǎn)的掛起意味著所有未完成工作項(xiàng)的掛起,同時(shí)相應(yīng)時(shí)間服務(wù)的時(shí)間計(jì)算的掛起。手工結(jié)束會(huì)使流程跳過該節(jié)點(diǎn)(所有工作項(xiàng)手工結(jié)束),繼續(xù)往后流轉(zhuǎn)。
B、開始節(jié)點(diǎn)、結(jié)束節(jié)點(diǎn)、分支節(jié)點(diǎn)、自動(dòng)節(jié)點(diǎn)
這些節(jié)點(diǎn)的特點(diǎn)在于被觸發(fā)后立刻執(zhí)行和流轉(zhuǎn),所以不會(huì)存在掛起和手工結(jié)束的狀態(tài)。
C、并發(fā)節(jié)點(diǎn)、匯聚節(jié)點(diǎn)
并發(fā)節(jié)點(diǎn)和匯聚節(jié)點(diǎn)不存在掛起的狀態(tài),同時(shí)不能被用戶直接手工結(jié)束,它們的狀態(tài)受流程實(shí)例狀態(tài)和相關(guān)節(jié)點(diǎn)實(shí)例狀態(tài)的影響。
并發(fā)節(jié)點(diǎn)和匯聚節(jié)點(diǎn)的情況復(fù)雜一些,分模式討論
圖1
1、同步匯聚(圖1)
根據(jù)情況觸發(fā)節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2中的一個(gè)或多個(gè),匯聚節(jié)點(diǎn)等待所有實(shí)際觸發(fā)的節(jié)點(diǎn)完成后再執(zhí)行流轉(zhuǎn)。中間匯聚節(jié)點(diǎn)只會(huì)產(chǎn)生一個(gè)實(shí)例。
1.1、正常流轉(zhuǎn)時(shí)的處理策略
當(dāng)匯聚節(jié)點(diǎn)未被觸發(fā)時(shí)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2都未執(zhí)行結(jié)束),并發(fā)節(jié)點(diǎn)處于執(zhí)行狀態(tài),一旦匯聚節(jié)點(diǎn)被觸發(fā)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2有一個(gè)執(zhí)行結(jié)束),并發(fā)節(jié)點(diǎn)正常結(jié)束并且匯聚節(jié)點(diǎn)處于執(zhí)行狀態(tài),所有并發(fā)出的節(jié)點(diǎn)實(shí)例執(zhí)行結(jié)束后,匯聚節(jié)點(diǎn)正常結(jié)束,流程繼續(xù)流轉(zhuǎn)。
1.2、用戶掛起、手工結(jié)束相關(guān)節(jié)點(diǎn)的處理策略
1.2.1、匯聚節(jié)點(diǎn)未激活時(shí)
節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài));節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的任一手工結(jié)束都會(huì)觸發(fā)匯聚節(jié)點(diǎn),使并發(fā)節(jié)點(diǎn)正常結(jié)束,如果所有并發(fā)的節(jié)點(diǎn)實(shí)例都結(jié)束(包括手工結(jié)束和正常結(jié)束),匯聚節(jié)點(diǎn)正常結(jié)束,觸發(fā)流程流轉(zhuǎn)。
1.2.2、匯聚節(jié)點(diǎn)已激活時(shí)
節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的掛起和恢復(fù)執(zhí)行不會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài));節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的手工結(jié)束會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài),每個(gè)節(jié)點(diǎn)實(shí)例的手工結(jié)束會(huì)引起匯聚節(jié)點(diǎn)的判斷,如果所有并發(fā)的節(jié)點(diǎn)實(shí)例(包括正常結(jié)束和手工結(jié)束)都結(jié)束,匯聚節(jié)點(diǎn)正常結(jié)束,觸發(fā)流程流轉(zhuǎn)。
1.3、用戶掛起、手工結(jié)束流程的處理策略
1.3.1、匯聚節(jié)點(diǎn)未激活時(shí)
流程的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài)),節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2會(huì)被全部掛起或恢復(fù);流程的手工結(jié)束會(huì)引起所有節(jié)點(diǎn)的手工結(jié)束。
1.3.2、匯聚節(jié)點(diǎn)已激活時(shí)
流程的掛起和恢復(fù)執(zhí)行不會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài)),節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2未執(zhí)行結(jié)束的實(shí)例會(huì)被全部掛起或恢復(fù);流程的手工結(jié)束會(huì)引起所有節(jié)點(diǎn)的手工結(jié)束。
2、nOutOfM匯聚(圖1)
根據(jù)情況觸發(fā)節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2中的一個(gè)或多個(gè),匯聚節(jié)點(diǎn)等待N個(gè)實(shí)際觸發(fā)的節(jié)點(diǎn)完成后即執(zhí)行流轉(zhuǎn)(N>0且N<M,M為實(shí)際觸發(fā)的節(jié)點(diǎn)個(gè)數(shù)),在N<=0和N>=M的情況下即為同步匯聚。中間匯聚節(jié)點(diǎn)只會(huì)產(chǎn)生一個(gè)實(shí)例。
2.1、正常流轉(zhuǎn)時(shí)的處理策略
當(dāng)匯聚節(jié)點(diǎn)未被觸發(fā)時(shí)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2都未執(zhí)行結(jié)束),并發(fā)節(jié)點(diǎn)處于執(zhí)行狀態(tài),一旦匯聚節(jié)點(diǎn)被觸發(fā)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2有一個(gè)執(zhí)行結(jié)束),并發(fā)節(jié)點(diǎn)正常結(jié)束并且匯聚節(jié)點(diǎn)處于執(zhí)行狀態(tài),N個(gè)并發(fā)出的節(jié)點(diǎn)實(shí)例執(zhí)行結(jié)束后,匯聚節(jié)點(diǎn)正常結(jié)束,流程繼續(xù)流轉(zhuǎn),M-N的節(jié)點(diǎn)實(shí)例被手工結(jié)束。
2.2、用戶掛起、手工結(jié)束相關(guān)節(jié)點(diǎn)的處理策略
2.2.1、匯聚節(jié)點(diǎn)未激活時(shí)
節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài));節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的任一手工結(jié)束都會(huì)觸發(fā)匯聚節(jié)點(diǎn),使并發(fā)節(jié)點(diǎn)正常結(jié)束,如果N個(gè)并發(fā)的節(jié)點(diǎn)實(shí)例都手工結(jié)束,并發(fā)節(jié)點(diǎn)正常結(jié)束,觸發(fā)匯聚節(jié)點(diǎn),匯聚節(jié)點(diǎn)正常結(jié)束,觸發(fā)流程流轉(zhuǎn),M-N的節(jié)點(diǎn)實(shí)例被手工結(jié)束。
2.2.2、匯聚節(jié)點(diǎn)已激活時(shí)
節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的掛起和恢復(fù)執(zhí)行不會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài));節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2的手工結(jié)束會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài),每個(gè)節(jié)點(diǎn)實(shí)例的手工結(jié)束會(huì)引起匯聚節(jié)點(diǎn)的判斷,如果N個(gè)并發(fā)的節(jié)點(diǎn)實(shí)例(包括正常結(jié)束和手工結(jié)束)都結(jié)束,匯聚節(jié)點(diǎn)正常結(jié)束,觸發(fā)流程流轉(zhuǎn),M-N的節(jié)點(diǎn)實(shí)例被手工結(jié)束。
2.3、用戶掛起、手工結(jié)束流程的處理策略
2.3.1、匯聚節(jié)點(diǎn)未激活時(shí)
流程的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài)),節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2會(huì)被全部掛起或恢復(fù);流程的手工結(jié)束會(huì)引起所有節(jié)點(diǎn)的手工結(jié)束。
2.3.2、匯聚節(jié)點(diǎn)已激活時(shí)
流程的掛起和恢復(fù)執(zhí)行不會(huì)影響匯聚節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài)),節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2未執(zhí)行結(jié)束的實(shí)例會(huì)被全部掛起或恢復(fù);流程的手工結(jié)束會(huì)引起所有節(jié)點(diǎn)的手工結(jié)束。
3、辨別匯聚(圖1)
是nOutOfM匯聚的特例,N=1
4、多實(shí)例匯聚(圖2)
圖2
根據(jù)情況觸發(fā)節(jié)點(diǎn)0、節(jié)點(diǎn)1中的一個(gè)或多個(gè),節(jié)點(diǎn)0和節(jié)點(diǎn)1任意一個(gè)執(zhí)行結(jié)束后都會(huì)觸發(fā)匯聚節(jié)點(diǎn)產(chǎn)生一個(gè)新的實(shí)例,匯聚節(jié)點(diǎn)實(shí)例緊接著觸發(fā)節(jié)點(diǎn)2,節(jié)點(diǎn)2也會(huì)產(chǎn)生多個(gè)實(shí)例。
4.1、正常流轉(zhuǎn)時(shí)的處理策略
當(dāng)匯聚節(jié)點(diǎn)未被觸發(fā)時(shí)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1都未執(zhí)行結(jié)束),并發(fā)節(jié)點(diǎn)處于執(zhí)行狀態(tài),一旦匯聚節(jié)點(diǎn)被觸發(fā)(即節(jié)點(diǎn)0、節(jié)點(diǎn)1有一個(gè)執(zhí)行結(jié)束),匯聚節(jié)點(diǎn)會(huì)緊接著觸發(fā)節(jié)點(diǎn)2,匯聚節(jié)點(diǎn)正常結(jié)束。所有并發(fā)出的節(jié)點(diǎn)實(shí)例執(zhí)行結(jié)束后,并發(fā)節(jié)點(diǎn)正常結(jié)束。
4.2、用戶掛起、手工結(jié)束相關(guān)節(jié)點(diǎn)的處理策略
節(jié)點(diǎn)0、節(jié)點(diǎn)1的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài));節(jié)點(diǎn)0、節(jié)點(diǎn)1的手工結(jié)束會(huì)影響并發(fā)節(jié)點(diǎn)和匯聚節(jié)點(diǎn)的狀態(tài),每個(gè)節(jié)點(diǎn)實(shí)例的手工結(jié)束會(huì)引起匯聚節(jié)點(diǎn)產(chǎn)生新的實(shí)例并觸發(fā)節(jié)點(diǎn)2,同時(shí)會(huì)引起并發(fā)節(jié)點(diǎn)的判斷,如果所有并發(fā)的節(jié)點(diǎn)實(shí)例都手工結(jié)束,并發(fā)節(jié)點(diǎn)正常結(jié)束。
4.3、用戶掛起、手工結(jié)束流程的處理策略
流程的掛起和恢復(fù)執(zhí)行不會(huì)影響并發(fā)節(jié)點(diǎn)的狀態(tài)(依舊處于執(zhí)行狀態(tài)),節(jié)點(diǎn)0、節(jié)點(diǎn)1、節(jié)點(diǎn)2會(huì)被全部掛起或恢復(fù);流程的手工結(jié)束會(huì)引起所有未結(jié)束節(jié)點(diǎn)的手工結(jié)束。
5、隱式結(jié)束,沒有匯聚節(jié)點(diǎn)與并發(fā)節(jié)點(diǎn)對(duì)應(yīng)(圖3)
圖3
所有節(jié)點(diǎn)結(jié)束時(shí)(正常結(jié)束或手工結(jié)束),并發(fā)節(jié)點(diǎn)正常結(jié)束。流程的手工結(jié)束會(huì)引起所有未結(jié)束節(jié)點(diǎn)的手工結(jié)束。
四、流程實(shí)例狀態(tài)變化對(duì)節(jié)點(diǎn)實(shí)例狀態(tài)造成的影響
1、流程實(shí)例的掛起
A類節(jié)點(diǎn)掛起,B、C類節(jié)點(diǎn)不受影響。同時(shí)在流程實(shí)例恢復(fù)執(zhí)行之前,A類節(jié)點(diǎn)不允許用戶直接恢復(fù)執(zhí)行。
2、流程實(shí)例的手工結(jié)束
所有節(jié)點(diǎn)全部手工結(jié)束。
五、節(jié)點(diǎn)實(shí)例狀態(tài)變化對(duì)流程實(shí)例狀態(tài)造成的影響
隱式結(jié)束的情況下,節(jié)點(diǎn)的手工結(jié)束或正常結(jié)束都會(huì)觸發(fā)流程的判斷,如果所有的節(jié)點(diǎn)都已結(jié)束則流程結(jié)束。
用戶的需求大概分為兩部分:一部分是整個(gè)項(xiàng)目完全基于工作流來搭建開發(fā),這也是很多工作流廠商患有“平臺(tái)壓迫癥”的原因;另一部分是將工作流作為業(yè)務(wù)組件加入已有的項(xiàng)目中,推動(dòng)業(yè)務(wù)的“審批”流轉(zhuǎn)。前者的要求顯然更高,但也意味著有更多的利潤。其實(shí)這一部分的用戶又可以進(jìn)一步的細(xì)分:一是技術(shù)能力比較差的公司,他們通過層層外包接到項(xiàng)目,而又沒有實(shí)力自己開發(fā),于是想通過采購工作流加上幾個(gè)剛?cè)腴T的程序員來完成整個(gè)項(xiàng)目的開發(fā)(這類用戶往往也是業(yè)務(wù)平臺(tái)最大的客戶群),他們想著是一整套的開發(fā)解決方案,甚至包括業(yè)務(wù)分析;二是對(duì)業(yè)務(wù)編程的需求,他們需要流程引擎能夠侵入業(yè)務(wù)編程的內(nèi)部,對(duì)業(yè)務(wù)的狀態(tài)和生命周期進(jìn)行靈活的管理,從而最大程度的簡化開發(fā)或者說滿足一些復(fù)雜業(yè)務(wù)編程的需要。
后者的需求則比較簡單,多是某一行業(yè)的項(xiàng)目公司,突然碰到有審批的需求了,采用工作流多是滿足人工“審批”的需要,以及部分的統(tǒng)計(jì)分析。
需要承認(rèn),工作流其實(shí)與最終用戶還差得很遠(yuǎn),也就是說在眾多廠商的網(wǎng)頁上,那副著名的業(yè)務(wù)流程生命周期其實(shí)是一句空話。一句話說,就是那個(gè)什么流程設(shè)計(jì)器是給程序員用的,至于用戶,哪涼快哪去。也就是說現(xiàn)在的工作流還不能給最終用戶提供價(jià)值。OK,既然工作流的價(jià)值是提供給集成商的,集成商就會(huì)考慮成本,于是工作流能否提供一個(gè)完整的開發(fā)解決方案就成了最重要的考量。
最后說說市場。工作流其實(shí)有著很大的市場,只不過這個(gè)市場被開源工作流和平臺(tái)瓜分掉了。因?yàn)槟壳暗墓ぷ髁鞑荒芙o最終用戶提供價(jià)值,所以集成商在遇到審批的需求時(shí),首先想到的會(huì)是開源的工作流引擎,從jbpm、osworkflow的流行也可以看出這一點(diǎn),并且知識(shí)的積累確實(shí)比購買工作流來的劃算,同時(shí)很多公司通過積累也會(huì)有自己的流程組件,這并沒有太大的難度。難度留給技術(shù)能力一般的公司,他們首先想到的會(huì)是一整套解決方案而不僅僅止于流程服務(wù),于是平臺(tái)出現(xiàn)了,平臺(tái)說:“灰殼顯靈,銀彈來了。”
關(guān)于平臺(tái),有一個(gè)很時(shí)髦的流行詞匯,叫“業(yè)務(wù)應(yīng)用基礎(chǔ)平臺(tái)”,稍候待續(xù)。 py工作流是國內(nèi)比較好的工作流之一。大概看過它的一些文檔,分析一下。
1、路由模型
py支持的工作流模式其實(shí)并不多,只是支持1到7七種模式而已,其中比較重要的是模式6和模式7,即M選N分支和M選N聚合,看過它的實(shí)現(xiàn),利用轉(zhuǎn)移線條件來觸發(fā)轉(zhuǎn)移線,從而觸發(fā)后續(xù)的節(jié)點(diǎn)。這樣做比較簡單,但是同時(shí)也存在很多問題,例如在路由非常復(fù)雜的情況下,例如多個(gè)分支節(jié)點(diǎn)的串聯(lián),以及并發(fā)路由存在多個(gè)節(jié)點(diǎn)時(shí),這種做法實(shí)現(xiàn)起來就非常困難。另外,并發(fā)路由的工作流變量會(huì)存在相互沖突的情況,也包括業(yè)務(wù)數(shù)據(jù)的沖突。可以說py的路由模型還是很簡單的,支持簡單的業(yè)務(wù)可能沒有問題,對(duì)于復(fù)雜的業(yè)務(wù)可能需要很多其他額外的辦法。當(dāng)然,很多國內(nèi)的工作流甚至連模式6和模式7都支持不了,同時(shí)工作流的應(yīng)用目前還具有很濃的“審批”的影子(貌似有人很討厭審批這個(gè)說法),所以目前的路由模型應(yīng)該滿足需求了。
2、任意路由和回退
沒有看到任意路由和回退的復(fù)雜示例。關(guān)于任意路由,產(chǎn)品說明中說到可以在整個(gè)流程范圍內(nèi)任意自由路由,我覺得這個(gè)說法本來就是有問題的,并發(fā)路由的情況下,并發(fā)支線往主線上跳轉(zhuǎn),這種情況會(huì)有很多問題存在,其他并行的支線如何處理?或者說根本就沒有考慮到這些復(fù)雜的情況?回退也是一樣的道理,至于業(yè)務(wù)補(bǔ)償?shù)奶岢鲞€是不錯(cuò)的,不過推給了用戶自己設(shè)置回退動(dòng)作。
3、關(guān)于WFMC和BPEL規(guī)范
看看流程定義文件就知道了,它不支持任何規(guī)范。敢說國內(nèi)工作流的流程定義就沒有遵循規(guī)范的。
4、參與者的指定
提供了組織機(jī)構(gòu)、角色、個(gè)人這三種常見的參與者設(shè)置模式,還提供了流程啟動(dòng)者、活動(dòng)執(zhí)行者、從相關(guān)數(shù)據(jù)或從規(guī)則邏輯中獲取參與者的模式。
5、工作的代理和代辦
6、時(shí)間服務(wù)
提供了四種時(shí)限?;顒?dòng)提醒、活動(dòng)執(zhí)行、流程提醒、流程執(zhí)行。
7、業(yè)務(wù)開發(fā)
感覺這是非常出彩的地方,在一個(gè)簡單的示例中幾乎不需要任何編碼,比如一個(gè)簡單的請(qǐng)假管理??纯此牧鞒潭x文件,它幾乎將整個(gè)業(yè)務(wù)表單都嵌入到流程定義里去了。這樣做是否合適?我個(gè)人傾向于引擎與業(yè)務(wù)完全分開,通過反射或者某種映射將兩者關(guān)聯(lián)到一起。如果是用戶自己開發(fā)已有的復(fù)雜業(yè)務(wù),如何將工作流嵌入?至于studio也是非常出色的,具有開發(fā)調(diào)試的功能。調(diào)用接口非常的清晰。
總結(jié)一下:py工作流還是一個(gè)不錯(cuò)的工作流引擎,拋開它的宣傳,感覺引擎的實(shí)現(xiàn)還是有些簡單,或者說只是滿足了目前的一些常見需求,至于所說的SOA和服務(wù)編排,我覺得目前還不現(xiàn)實(shí)。它的優(yōu)勢在于與其平臺(tái)的完全融合,能夠利用很多既有設(shè)施,可是這又何嘗不是把雙刃劍?另外,強(qiáng)大的市場宣傳和良好的服務(wù)團(tuán)隊(duì)也是選擇工作流時(shí)的重要考慮。 委辦是什么?即分發(fā)給A的工作項(xiàng)可以委派給B代為進(jìn)行處理。委辦只針對(duì)個(gè)人。委派給組織或崗位似乎沒有意義。
一、委辦的分類
1、用戶單一工作項(xiàng)的委辦以及收回委辦
2、用戶所有工作項(xiàng)的委辦,全權(quán)委辦
3、用戶按流程劃分工作項(xiàng)的委辦,基于模板的全權(quán)委辦,也可以理解為基于業(yè)務(wù)的委辦
二、委辦的觸發(fā)與終止
1、對(duì)于單一工作項(xiàng)的委辦,在待簽收和待辦工作項(xiàng)列表需要出現(xiàn)委辦的功能按鈕,由用戶選擇其他用戶代為辦理。工作項(xiàng)委辦后進(jìn)入委辦工作項(xiàng)列表,用戶可以收回委辦,同時(shí)用戶和被委辦人都可以對(duì)該工作項(xiàng)進(jìn)行辦理,用戶自己處理則工作項(xiàng)自動(dòng)被收回委辦。
2、對(duì)于全權(quán)委辦以及基于模板的全權(quán)委辦,需要委辦申請(qǐng)單。用戶通過填寫委辦申請(qǐng)單,將某段時(shí)期內(nèi)工作項(xiàng)列表的處理工作委派給他人。消息通知:當(dāng)用戶將工作委派給指定的被委辦人時(shí),被委辦人可以收到提醒消息。
3、委辦的自動(dòng)終止以及手動(dòng)結(jié)束:當(dāng)委托的時(shí)間到期時(shí),委辦功能自動(dòng)終止,委辦申請(qǐng)記錄將只讀。用戶也可以手動(dòng)結(jié)束委托,邏輯刪除或?qū)ξk申請(qǐng)記錄進(jìn)行修改。維護(hù)委辦申請(qǐng)列表。
三、委辦工作項(xiàng)列表
1、用戶可以在委辦列表里對(duì)委辦的工作項(xiàng)狀態(tài)進(jìn)行跟蹤,對(duì)于還未被被委辦人簽收的工作項(xiàng)可以收回或直接辦理
2、被委辦的工作項(xiàng)進(jìn)入委辦人的委辦列表
3、被委辦的工作項(xiàng)按狀態(tài)進(jìn)入被委辦人的待簽、待辦和辦結(jié)列表,注明是被委辦即可
4、委辦工作項(xiàng)的再委辦,工作項(xiàng)增加委辦的說明字段,委辦工作項(xiàng)的依次狀態(tài)影響
四、其他
1、提交工作項(xiàng)頁面,選擇用戶出現(xiàn)委辦人時(shí),名字紅現(xiàn),括弧注明其將被委辦的被委辦人
2、提交工作項(xiàng)頁面,選擇部門或角色包含委辦人時(shí),不做處理。引擎生成工作項(xiàng)時(shí)做出處理,對(duì)工作項(xiàng)做出委托說明
3、流程跟蹤列表,增加委辦說明字段 既然是與用戶相關(guān)的權(quán)限,那么權(quán)限的表現(xiàn)則一定與UI緊密相連。工作流管理系統(tǒng)里,用戶與工作流的交互界面有四種:
1、流程設(shè)計(jì)器
流程設(shè)計(jì)器的功能比較單一:定義或更新流程定義。里面涉及到包、模板和版本的概念。資源即流程模板(例如發(fā)文模板、收文模板),權(quán)限可以細(xì)分為:維護(hù)、只讀以及不可見。
2、流程管理控制臺(tái)
對(duì)流程實(shí)例(包括活動(dòng)實(shí)例和工作項(xiàng)實(shí)例)進(jìn)行管理。這里對(duì)資源的劃分有兩種方式:操作和數(shù)據(jù)。從操作來分比較瑣碎,例如:流程實(shí)例的掛起、終止、恢復(fù)、跳轉(zhuǎn),活動(dòng)實(shí)例的掛起、終止、恢復(fù)等等,當(dāng)然可以做一種集合,例如:對(duì)流程實(shí)例的管理、對(duì)活動(dòng)實(shí)例的管理、對(duì)工作項(xiàng)實(shí)例的管理、時(shí)間服務(wù)的管理等等。從數(shù)據(jù)劃分則很好理解,例如:發(fā)文的流程實(shí)例、收文的活動(dòng)實(shí)例等等。兩種方式的組合構(gòu)成最終的權(quán)限。
3、工作項(xiàng)列表
這個(gè)似乎沒什么好說的,工作項(xiàng)直接分配到用戶、部門和崗位。
4、與流程相關(guān)的業(yè)務(wù)數(shù)據(jù)
用戶對(duì)業(yè)務(wù)自身的權(quán)限以及不同流程節(jié)點(diǎn)對(duì)業(yè)務(wù)的權(quán)限??磫栴}的兩種方式。業(yè)務(wù)數(shù)據(jù)處于流程中時(shí)由流程決定權(quán)限,例如擬稿時(shí)可以操作哪些字段,審批時(shí)是否可以上傳附件等等。流程結(jié)束后,業(yè)務(wù)數(shù)據(jù)歸檔,此時(shí)的權(quán)限由業(yè)務(wù)權(quán)限+流程權(quán)限組合。簡單的一個(gè)例子:普通用戶A可以在發(fā)文模塊里看到自己參與過的所有發(fā)文文件,發(fā)文管理員B則可以看到發(fā)文模塊里所有的發(fā)文文件。
結(jié)合具體的業(yè)務(wù)需求:
1、主控崗位的提出。例如發(fā)文管理,存在主控崗位,可以對(duì)所有的發(fā)文流程進(jìn)行管理,催辦、督辦等等。
2、大集中模式下對(duì)數(shù)據(jù)的再劃分。還是以發(fā)文管理為例,北京公司的發(fā)文管理員對(duì)北京的發(fā)文數(shù)據(jù)進(jìn)行管理,上海公司的發(fā)文管理員則只能對(duì)上海的發(fā)文數(shù)據(jù)進(jìn)行管理。
最終的權(quán)限分類:
1、流程設(shè)計(jì)器里流程模板的可見與不可見。可見即可維護(hù)。
2、流程管理按操作來分顯得沒有實(shí)際的意義,用戶關(guān)注的是業(yè)務(wù)數(shù)據(jù)即操作的范圍。流程實(shí)例(活動(dòng)實(shí)例)的可見與不可見。可見即可操作。更進(jìn)一步說,用戶甚至根本都不會(huì)登錄到流程管理控制臺(tái),他會(huì)傾向于在業(yè)務(wù)菜單里有自己相應(yīng)的流程管理功能,例如在發(fā)文管理里增加發(fā)文催辦、督辦等等。
3、不用
4、往業(yè)務(wù)權(quán)限表里增加流程參與者的權(quán)限信息。
總結(jié):總是感覺工作流管理部分的權(quán)限不是那么的必要,流程定義的復(fù)雜度讓最終用戶很難直接使用,流程實(shí)例的管理更多的是契合到業(yè)務(wù)中去,而這種契合表現(xiàn)則是流程數(shù)據(jù)按業(yè)務(wù)進(jìn)行劃分后的管理。
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
25 | 26 | 27 | 28 | 29 | 30 | 31 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 1 | 2 | 3 | 4 | 5 |
常用鏈接
留言簿(38)
隨筆分類
- ajax相關(guān)(9)
- cms(7)
- Head First Process-深入淺出流程(15)
- j2se基礎(chǔ)(6)
- JbpmSide(6)
- OOA/OOD(4)
- SOA、BPM(26)
- 工作日志(24)
- 工作流jbpm3(10)
- 張小慶,在路上(42)
- 心情小站(24)
- 權(quán)限相關(guān)(12)
- 表現(xiàn)層相關(guān)(4)
- 轉(zhuǎn)載(4)
隨筆檔案
- 2013年8月 (1)
- 2012年12月 (1)
- 2012年1月 (3)
- 2011年12月 (2)
- 2011年11月 (2)
- 2011年10月 (3)
- 2011年9月 (3)
- 2011年8月 (7)
- 2011年7月 (4)
- 2011年6月 (3)
- 2011年5月 (5)
- 2011年4月 (6)
- 2011年3月 (4)
- 2011年2月 (2)
- 2010年9月 (1)
- 2010年6月 (1)
- 2010年5月 (1)
- 2010年3月 (4)
- 2010年1月 (2)
- 2009年11月 (5)
- 2009年10月 (4)
- 2009年9月 (1)
- 2009年7月 (1)
- 2009年6月 (2)
- 2009年5月 (2)
- 2009年4月 (1)
- 2009年3月 (4)
- 2009年2月 (2)
- 2008年12月 (1)
- 2008年11月 (1)
- 2008年10月 (1)
- 2008年9月 (2)
- 2008年8月 (2)
- 2008年7月 (2)
- 2008年6月 (3)
- 2008年5月 (4)
- 2008年4月 (1)
- 2008年3月 (2)
- 2008年2月 (2)
- 2008年1月 (4)
- 2007年11月 (3)
- 2007年10月 (3)
- 2007年9月 (2)
- 2007年8月 (4)
- 2007年7月 (1)
- 2007年6月 (12)
- 2007年5月 (2)
- 2007年4月 (1)
- 2007年3月 (8)
- 2007年2月 (6)
- 2007年1月 (4)
- 2006年12月 (4)
- 2006年11月 (3)
- 2006年10月 (1)
- 2006年8月 (2)
- 2006年7月 (3)
- 2006年6月 (3)
- 2006年4月 (1)
- 2006年3月 (2)
- 2006年2月 (2)
- 2006年1月 (4)
- 2005年12月 (7)
- 2005年11月 (12)
文章分類
文章檔案
常去的網(wǎng)站
搜索
最新評(píng)論

- 1.?re: 使用Handler來增強(qiáng)Web服務(wù)的功能
- asdfasfd
- --ads
- 2.?re: 使用solr搭建你的全文檢索
-
@木哥哥
你的分詞器用的是什么啊?mmseg貌似可以的 - --陳冠馳
- 3.?re: 使用solr搭建你的全文檢索
-
@marten這是你的solr的schame.xml配置文件有問題。好好檢查下你的配置文件里面的字段什么的配置對(duì)著沒
- --陳冠馳
- 4.?re: 討論一下你覺得一個(gè)工作流產(chǎn)品好的標(biāo)準(zhǔn)
- 評(píng)論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
- --深圳非凡信息技術(shù)有限公司
- 5.?re: DisplayTag應(yīng)用
- name="test"從哪里來的,千篇一律的到處使用test卻沒有test的定義,sb
- --qige