【摘要】 在OA系統中,使用流程來(lái)進(jìn)行審核以及公文流轉已經(jīng)不是什么新鮮的事情了。對于初學(xué)者來(lái)說(shuō)卻顯得十分神秘,鑒于此,鄙人對OA中的流程原理,以及流程設計方法做了一些總結,希望能對諸位有所幫助。在OA系統中,使用流程來(lái)進(jìn)行審核以及公文流轉已經(jīng)不是什么新鮮的事情了。對于初學(xué)者來(lái)說(shuō)卻顯得十分神秘,鑒于此,鄙人對OA中的流程原理,以及流程設計方法做了一些總結,希望能對諸位有所幫助。
首先,我們來(lái)了解一下流程。
在軟件中流程是為了實(shí)現某個(gè)功能,需要按部就班地執行的一段操作。軟件中之所以要使用流程,是為了增加軟件產(chǎn)品的延展性,使軟件在不同的客戶(hù)或同一客戶(hù)不同的管理階段都可以應用該軟件。也就是增加軟件使用者的自主設置能力。
從軟件編寫(xiě)的角度,我把流程分為二種:一種是審核流程,一種是業(yè)務(wù)流程。在OA系統中,通常體現為審核流程和公文流轉兩種。
下面,我們看看實(shí)際管理工作中審核流程是什么樣子的。
我們以“請假”這個(gè)日常生活中最常見(jiàn)的例子來(lái)闡述這個(gè)審批流程。
如果某員工需要請假,他會(huì )填寫(xiě)一個(gè)請假申請單,該申請單一般會(huì )有其部門(mén)主管簽字審核后交到上級主管審核,也可能最終需要總經(jīng)理審核。審核結束了才能正式獲準請假。
如下圖所示:
圖片找不了,太遺憾了
以上是對請假申請中的幾種可能性的描述,除此以外。我們還必須考慮到以下因素:
1、 請假單中的審批人可以為多個(gè)人中的任意一個(gè)。如:一個(gè)部門(mén)有幾個(gè)主管,只要一個(gè)主管同意了就可以繼續執行該流程。這種情況下,我們需要設置好每個(gè)審批點(diǎn)的人員信息。這些人員具有同樣的審批權力。
2、 請假單中需要同時(shí)多個(gè)人審批后才可以繼續該流程。如:一個(gè)部門(mén)有多個(gè)主管,必須每個(gè)主管都批準的情況下才可以繼續該流程。這種情況下,流程中這些同級的主管權力相同,審批不分先后。
3、 另外,我們還需要考慮同樣的單據,可能會(huì )有不同的審批流程。如:在一個(gè)企業(yè)中,員工請假的審批如上面所述,但如果是部門(mén)主管,則都需要總經(jīng)理直接批準放可準假。這種情況下,我們就必須考慮同樣是請假申請單的具體審批流向的問(wèn)題。
4、 還有一種可能性就是高級別的主管可以直接跳過(guò)低級別的主管進(jìn)行審批。如:在部門(mén)主管不在的情況下,上級主管可以直接審核該請假單。
5、 在審批權限設定方面也有部門(mén)和職位方面的考慮。比如:在軟件中識別部門(mén)主管、識別上級部門(mén)、識別職位等等。這些可能性我們可以在設定到具體人員的時(shí)候考慮進(jìn)去。在軟件流程的設計中,暫時(shí)忽略這些情況。
OK,鄙人以為,上面的闡述已經(jīng)含蓋了審批流程的所有可能性。(這只是假設,該假設也就決定了軟件中流程的設計方面僅適用于以上這些情況)
下面,我們針對這些情況,把這些請假單的信息在數據庫中的傳遞情況整體一下:(此處忽略請假單的具體信息,只考慮單據信息)
1、 填寫(xiě)了申請單(假設單號為:A01)
2、 部門(mén)主管審批
3、 上級主管審批
4、 總經(jīng)理審批
5、 流程結束
圖片找不了,太遺憾了
由此我們可以看出,以上所做的請假的各種假設都可以在上表格中得到體現。也就是說(shuō),我們處理流程的數據庫表結構完全可以參考該結構來(lái)完成。具體說(shuō)明如下:
1、 操作ID:可以設定流程的唯一標志,在這里,我們可以把審批結果(同意、不同意)分設2個(gè)字段,也可以設定為2筆記錄。如果分設為2個(gè)字段,則流向也需要分別設定2個(gè)字段。
2、 操作:相當于每個(gè)操作的描述,或者操作名稱(chēng)。
3、 單據編號:即指定每個(gè)請假單的唯一標識,只要請假申請單填制完畢,選擇流程后,我們就可以把該單據的審批信息生成到表中,并分發(fā)到相關(guān)審批人。
4、審批點(diǎn):也就是審批動(dòng)作的執行點(diǎn)。該信息應該記錄審批用戶(hù)信息,可以是單用戶(hù),也應該可以是具有相同權限的多用戶(hù)。多用戶(hù)在操作的過(guò)程中,需要區分為兩中情況:一種是多用戶(hù)中有一個(gè)人審批即可自動(dòng)流入下流程,另一種是所有審批人審批結束了才可以流入下流程。
5、 同級審批:這里有2種可能性:一種為:同級全部審批后即流轉到下一級審批點(diǎn);另一種:只要一個(gè)審批就可以流到下一級審批點(diǎn)。
6、 審批結果:就是決定流程去向的結果。該結果會(huì )確定流向的值。需要注意的是:如果審批中需要填寫(xiě)具體的審批意見(jiàn),我們也可以在該Table中以專(zhuān)門(mén)的字段來(lái)記錄這些意見(jiàn)。
7、 回寫(xiě):該操作是為了標示出上流程傳遞到以后不需要再次傳遞。如:在上級領(lǐng)導審批完后,即把部門(mén)主管審批的結果標志為“完成”等字樣,以防止信息重復傳遞。
8、 直接進(jìn)入標志:該操作是為了確認可以跨越前道流程直接進(jìn)行審批的標志。如果請假申請填寫(xiě)了以后,具有直接進(jìn)入權限的人就可以直接進(jìn)行審批。審批完成后其以前的審批流程則不需要再審批。這里,我們需要把該流程以前的流程標志為完成。
9、 終止標志:即流程完全結束。比如:我們可以先假設如果在某一個(gè)審批點(diǎn)被否決后即表示流程終止,在流程最終完成(包含同意/不同意)時(shí)也可以表示流程終止。
至此,我們應該清楚了流程的基本概念了。而且對其軟件方法實(shí)現也應該有了具體的認識。那么在軟件種怎么樣來(lái)辯識這些流程呢?我們在軟件中需要做哪些工作?
首先,我們需要把流程和具體的功能點(diǎn)集合起來(lái),今天我們一直在討論的請假申請的流程。那么我們設定了流程后,就必須跟請假申請單關(guān)聯(lián)在一起。在軟件中實(shí)現該功能的方法有二個(gè)。一是指定流程名稱(chēng)和單據名稱(chēng)的對應關(guān)系,在程序中寫(xiě)死。另一種方式是在我們填制了請假申請單后由用戶(hù)去指定相關(guān)的流程。聽(tīng)起來(lái)后者活一點(diǎn),但需要麻煩客戶(hù)選擇一下流程,但這種選擇,也增加了流程的多樣性,即可以在同一個(gè)申請單中有多種流程選擇。這也解決了我們上面所說(shuō)的員工請假和主管請假的區別對待的問(wèn)題。
也許有人有犯迷糊了:我設定那么多人審批,他們都在哪兒去填寫(xiě)這些審批信息呢?提這樣的問(wèn)題的人,也許是剛出道~,呵呵。不過(guò),我深信有人會(huì )有這種疑慮。其實(shí)這個(gè)問(wèn)題很簡(jiǎn)單就可以解決了。
比如:你寫(xiě)一個(gè)組件,只要需要審批,你就把這個(gè)組件show出來(lái),給用戶(hù)可以輸入的地方嘛~,然后,輸入完了以后你就把這些信息保存到我們審批的Table中,如果用戶(hù)不放心,你可以把他設定的審批點(diǎn)的意見(jiàn)全部Show在頁(yè)面的下方。這樣,他設定多少個(gè)審批點(diǎn)你也應付得過(guò)來(lái)。當然,到最終流程終止的時(shí)候,你還是要到單據中標注一下的。否則就全白忙活了。具體是寫(xiě)到哪個(gè)表中的哪個(gè)字段,你應該是最清楚的人了。
公文流轉的流程我沒(méi)時(shí)間寫(xiě)了。如果上面的方法您理解了。我相信區區公文流轉,對您來(lái)說(shuō)也不是什么難的事情了。