0 引言
業(yè)務(wù)流程是對(duì)業(yè)務(wù)流程程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括和描述。采用業(yè)務(wù)流程模式可以使用計(jì)算機(jī)系統(tǒng)在業(yè)務(wù)流程的多個(gè)參與者之間,按某種預(yù)定規(guī)則自動(dòng)傳遞文檔、信息或者任務(wù)。
二十世紀(jì)九十年代業(yè)務(wù)流程機(jī)制被引入到ERP系統(tǒng)中。采用業(yè)務(wù)流程技術(shù),可以把ERP業(yè)務(wù)過程邏輯從具體的業(yè)務(wù)實(shí)現(xiàn)中分離出來,解決了ERP系統(tǒng)缺乏靈活性,不能適應(yīng)企業(yè)業(yè)務(wù)流程迅速變化的實(shí)際需求。促進(jìn)了ERP系統(tǒng)的發(fā)展。
進(jìn)入二十一世紀(jì),企業(yè)越來越多的出現(xiàn)了多組織、多業(yè)務(wù)都的特征,并且提出了隨時(shí)隨地訪問ERP數(shù)據(jù)的需求。結(jié)合當(dāng)前熱門的云計(jì)算技術(shù),提出了建立企業(yè)ERP云計(jì)算平臺(tái)的設(shè)想。
企業(yè)ERP云計(jì)算平臺(tái)是企業(yè)自己購買服務(wù)器,部署一套ERP云計(jì)算系統(tǒng),實(shí)現(xiàn)對(duì)企業(yè)信息進(jìn)行隨時(shí)隨地訪問和管理的功能。
與理想狀態(tài)的云計(jì)算相比,企業(yè)ERP云計(jì)算平臺(tái)的范圍較小,只有企業(yè)內(nèi)部人員或經(jīng)過授權(quán)的特定人員可以使用。與傳統(tǒng)的企業(yè)IT系統(tǒng)相比,企業(yè)ERP云計(jì)算平臺(tái)不局限于企業(yè)內(nèi)部的局域網(wǎng),而提供了廣域網(wǎng)范圍的,Pc、手機(jī)等多終端的訪問支持,具有更好的擴(kuò)展性和應(yīng)用價(jià)值。
在云計(jì)算環(huán)境下業(yè)務(wù)流程呈現(xiàn)出一些新的問題,跨組織的業(yè)務(wù)流程逐漸增加,傳統(tǒng)的業(yè)務(wù)流程工作方式不能很好地滿足要求,金蝶公司結(jié)合企業(yè)ERP云計(jì)算平臺(tái)的特點(diǎn)提出了云計(jì)算環(huán)境下的業(yè)務(wù)流程解決方案。
1 業(yè)務(wù)流程開發(fā)現(xiàn)狀
業(yè)務(wù)流程是對(duì)業(yè)務(wù)流程及其各操作步驟之間業(yè)務(wù)規(guī)則的抽象、概括和描述。業(yè)務(wù)流程技術(shù)起源于二十世紀(jì)七十年代中期辦公自動(dòng)化領(lǐng)域的研究。1983年至1985年間,在圖像處理領(lǐng)域和電子郵件領(lǐng)域出現(xiàn)了早期的含有業(yè)務(wù)流程特征的商用系統(tǒng)。
進(jìn)入二十世紀(jì)九十年代以后,隨著個(gè)人計(jì)算機(jī)、網(wǎng)絡(luò)技術(shù)的普及和推廣,以及信息化建設(shè)的日益完善,使得業(yè)務(wù)流程技術(shù)的研究與開發(fā)進(jìn)入了一個(gè)新的熱潮。先后出現(xiàn)了BPMN,XPDL,BPEL三種主要的業(yè)務(wù)流程定義和執(zhí)行語言。
關(guān)于業(yè)務(wù)流程的學(xué)術(shù)研究也十分活躍,國內(nèi)外許多學(xué)者對(duì)業(yè)務(wù)流程進(jìn)行了深入地研究。
中南大學(xué)的李璽、胡志剛、胡周君等提出將以DAG圖形式表示的任務(wù)執(zhí)行關(guān)系轉(zhuǎn)換為以數(shù)值表示的任務(wù)執(zhí)行優(yōu)先級(jí),并根據(jù)最大截止時(shí)間滿意度優(yōu)先的思想,提出了一種截止時(shí)間滿意度增強(qiáng)的業(yè)務(wù)流程調(diào)度算法川。
吉林大學(xué)的張朝輝、劉大有根據(jù)ERP的領(lǐng)域需求及特點(diǎn),開發(fā)出一種改進(jìn)的基于活動(dòng)網(wǎng)絡(luò)圖的業(yè)務(wù)流程模型,并引入了事件管理器和事件訂閱器。經(jīng)過改進(jìn)的業(yè)務(wù)流程管理系統(tǒng)能夠很好地滿足ERP系統(tǒng)的業(yè)務(wù)要求,可以有效增加系統(tǒng)的柔性,簡化系統(tǒng)建模的難度。
煙臺(tái)大學(xué)的畢遠(yuǎn)偉、胡瀟琨提出在ERP系統(tǒng)中采用嵌入式業(yè)務(wù)流程管理的方法。介紹了基于UML活動(dòng)圖模型的嵌入式業(yè)務(wù)流程管理模塊的設(shè)計(jì)和實(shí)現(xiàn)方法。給出了支持業(yè)務(wù)流程的ERP系統(tǒng)的實(shí)施方法。通過嵌入業(yè)務(wù)流程管理到傳統(tǒng)ERP系統(tǒng)中,提高了系統(tǒng)對(duì)企業(yè)業(yè)務(wù)的適應(yīng)能力,也提高了軟件重用和開發(fā)效率。
以上這些研究將業(yè)務(wù)流程與ERP系統(tǒng)進(jìn)行了結(jié)合,較好地解決了EltP系統(tǒng)流程管理的需要。但這些研究不是基于云計(jì)算平臺(tái)的,不能滿足當(dāng)前企業(yè)多組織,多事業(yè)部的管理要求。
2 基于動(dòng)態(tài)領(lǐng)域模型的業(yè)務(wù)流程管理
業(yè)務(wù)流程設(shè)計(jì)是ERP系統(tǒng)的重要組成部分。企業(yè)經(jīng)常根據(jù)市場的變化調(diào)整內(nèi)部的業(yè)務(wù)流程,傳統(tǒng)的預(yù)設(shè)的業(yè)務(wù)流程不能很好地滿足要求,金蝶公司結(jié)合動(dòng)態(tài)領(lǐng)域模型提出了建立動(dòng)態(tài)業(yè)務(wù)流程管理的新模式。
2.1 ERP中業(yè)務(wù)流程的特點(diǎn)
ERP系統(tǒng)對(duì)企業(yè)的采購,生產(chǎn),銷售,分析,決策進(jìn)行全面管理。企業(yè)在生產(chǎn)過程中會(huì)有各種各樣的業(yè)務(wù)流程,要設(shè)計(jì)出適合ERP應(yīng)用的業(yè)務(wù)流程就必須首先了解ERP系統(tǒng)中業(yè)務(wù)流程的特點(diǎn)。
隨著企業(yè)信息化水平的提高,當(dāng)前越來越多的多個(gè)組織共用一套ERP系統(tǒng),在ERP系統(tǒng)的協(xié)助下,業(yè)務(wù)流程打破了企業(yè)各組織的界限,將生產(chǎn)、銷售、采購整個(gè)過程整合到一起,如圖1所示。
圖1 多組織業(yè)務(wù)流程
可以看出當(dāng)前企業(yè)業(yè)務(wù)流程的設(shè)計(jì)變得非常復(fù)雜,經(jīng)常涉及到多個(gè)組織的人員,可能出現(xiàn)條件、循環(huán)等多種情況,必須使用新的方法進(jìn)行設(shè)計(jì)。
2.2 動(dòng)態(tài)業(yè)務(wù)流程架構(gòu)
結(jié)合當(dāng)前企業(yè)業(yè)務(wù)流程的實(shí)際情況,結(jié)合動(dòng)態(tài)領(lǐng)域模型建模方法,設(shè)計(jì)了一個(gè)全新的動(dòng)態(tài)業(yè)務(wù)流程架構(gòu),如圖2所示。
圖2 動(dòng)態(tài)業(yè)務(wù)流程架構(gòu)
采用動(dòng)態(tài)領(lǐng)域建模的方法對(duì)業(yè)務(wù)流程中的元素進(jìn)行抽象得到統(tǒng)一的流程模型定義,在此基礎(chǔ)上設(shè)計(jì)了一個(gè)業(yè)務(wù)驅(qū)動(dòng)的流程設(shè)計(jì)器。使用該設(shè)計(jì)器,不需要編碼就可以完成業(yè)務(wù)流程的設(shè)計(jì)。業(yè)務(wù)用戶可以直接構(gòu)建業(yè)務(wù)流程,減少了業(yè)務(wù)用戶和IT部門的溝通隔閡。
同時(shí)業(yè)務(wù)流程設(shè)計(jì)器來提供了可擴(kuò)展業(yè)務(wù)組件庫,二次開發(fā)SDK等,方便第三方人員進(jìn)行擴(kuò)展開發(fā),具有良好的開放性。追蹤/狀態(tài)圖,統(tǒng)計(jì)查詢等功能提供了企業(yè)用戶進(jìn)行業(yè)務(wù)流程管理和統(tǒng)計(jì)的多種接口。
2.3 業(yè)務(wù)流程的分層模型
傳統(tǒng)的業(yè)務(wù)流程是流程一動(dòng)作兩層模型,整個(gè)業(yè)務(wù)流程有多個(gè)動(dòng)作組成,動(dòng)作之間只有順序關(guān)系,沒有考慮動(dòng)作問的其他關(guān)系。每個(gè)動(dòng)作在業(yè)務(wù)流程圖上表示為一個(gè)點(diǎn)。
當(dāng)動(dòng)作數(shù)量很少時(shí),相互間關(guān)系簡單時(shí),這樣做沒有問題。如果動(dòng)作很多,動(dòng)作的執(zhí)行者之間關(guān)系復(fù)雜,要理清楚各個(gè)動(dòng)作之間的關(guān)系就顯得非常困難。
但實(shí)際上,在業(yè)務(wù)流程中有很多動(dòng)作其實(shí)是一個(gè)整體,例如判斷是否有權(quán)限,做出審核決定,自動(dòng)下推流程,這三個(gè)動(dòng)作其實(shí)是業(yè)務(wù)流程中的一個(gè)步驟,但在傳統(tǒng)業(yè)務(wù)流程管理中,它們是分離的,這樣增加了業(yè)務(wù)流程設(shè)計(jì)的復(fù)雜性。
為此,提出了三層業(yè)務(wù)流程模型,如圖3所示。
圖3 三層業(yè)務(wù)流程模型
在流程和動(dòng)作之間增加了一個(gè)節(jié)點(diǎn)層。節(jié)點(diǎn)是多個(gè)相關(guān)動(dòng)作的集合。節(jié)點(diǎn)可以設(shè)置進(jìn)入條件和離開條件,當(dāng)符合進(jìn)入條件,流程將進(jìn)入節(jié)點(diǎn),并完成節(jié)點(diǎn)中的多個(gè)動(dòng)作;如果不滿足進(jìn)入條件,將等待條件滿足。如果節(jié)點(diǎn)滿足離開條件,將離開節(jié)點(diǎn),否則將等待條件滿足。如果流程等待進(jìn)入或離開節(jié)點(diǎn)時(shí)間超過設(shè)定的時(shí)間。流程實(shí)例會(huì)被丟棄。
進(jìn)入節(jié)點(diǎn)的例子:要生產(chǎn)桌子,必須木板,螺釘都采購?fù)瓿刹拍荛_始。生產(chǎn)桌子是一個(gè)節(jié)點(diǎn),它的進(jìn)入條件是木板,螺釘都采購?fù)瓿伞_@兩個(gè)條件有一個(gè)不滿足,流程就不能進(jìn)行“生產(chǎn)桌子”這個(gè)節(jié)點(diǎn)。等待指定時(shí)間,條件還不滿足,流程結(jié)束,暫時(shí)不生產(chǎn)這批桌子。
離開節(jié)點(diǎn)的例子:一項(xiàng)議案需要10個(gè)人中至少8人參與表決才能形成決議。“表決議案”是一個(gè)節(jié)點(diǎn),離開條件是8人以上投票。不滿足條件,流程不能離開節(jié)點(diǎn),當(dāng)?shù)却付〞r(shí)間,條件還不滿足,流程結(jié)束,投票失敗。
使用三層業(yè)務(wù)流程模型,簡化了流程設(shè)計(jì)。重新設(shè)計(jì)的業(yè)務(wù)流程如圖4所示。
圖4 重新設(shè)計(jì)的業(yè)務(wù)流程
2.4 業(yè)務(wù)流程的領(lǐng)域建模
通過前面的分析,可以發(fā)現(xiàn)業(yè)務(wù)流程主要有節(jié)點(diǎn)、動(dòng)作及節(jié)點(diǎn)間連線組成。可以把它們作為領(lǐng)域建模的基本元素來簡化業(yè)務(wù)流程的設(shè)計(jì)。
動(dòng)作對(duì)應(yīng)于業(yè)務(wù)流程中一個(gè)具體的操作。不同的動(dòng)作的差別在于調(diào)用的函數(shù)名稱及參數(shù)的不同。如果把這種不同固化到動(dòng)作中,增加一個(gè)動(dòng)作將需要增加一個(gè)元素,且不能動(dòng)態(tài)修改動(dòng)作的內(nèi)容。
同樣,連線作為一個(gè)基本的元素表示動(dòng)作轉(zhuǎn)移的條件,不同業(yè)務(wù)流程中動(dòng)作轉(zhuǎn)移的條件不同,同樣不能將這種差異固化到元素的定義中。
在抽象節(jié)點(diǎn)時(shí)也存在類似的問題。為了解決這個(gè)問題,提高領(lǐng)域模型的靈活性和動(dòng)態(tài)性,在金蝶公司的ERP動(dòng)態(tài)領(lǐng)域模型中,增加了屬性的概念。將相同元素的不同點(diǎn)使用元素的屬性來表示。
加入屬性后,ERP動(dòng)態(tài)領(lǐng)域模型成為由模型-元素-屬性組成的三層體系結(jié)構(gòu),如圖5所示。
圖5三層領(lǐng)域模型結(jié)構(gòu)
在動(dòng)態(tài)領(lǐng)域模型中增加屬性后.業(yè)務(wù)流程設(shè)計(jì)只有三個(gè)基本元素:節(jié)點(diǎn)、動(dòng)作、連線。同一元素的具體實(shí)例間的差異使用屬性來表示。例如兩個(gè)不同的動(dòng)作調(diào)用的函數(shù)是不同的,在相應(yīng)的屬性字段中填入不同的內(nèi)置函數(shù)名即可。
2.5 業(yè)務(wù)流程設(shè)計(jì)的擴(kuò)充
在金蝶公司的ERP產(chǎn)品中,業(yè)務(wù)流程設(shè)計(jì)使用了前面提到的動(dòng)態(tài)領(lǐng)域建模方法,并且的內(nèi)置了大量業(yè)務(wù)流程處理相關(guān)的動(dòng)作及動(dòng)作處理的函數(shù)。要改變一個(gè)動(dòng)作具體的操作,只需要修改動(dòng)作的屬性即可。
但這種修改是基于內(nèi)置函數(shù)的,如果要修改的操作在ERP系統(tǒng)中沒有內(nèi)置,這種方法肯定不能達(dá)到預(yù)期的效果。
企業(yè)的這種特殊的需求,可以使用自定義動(dòng)作的方法來實(shí)現(xiàn)。
系統(tǒng)提供了動(dòng)作的接口類和接口函數(shù),想自定義特殊的動(dòng)作時(shí),先繼承該類,然后實(shí)現(xiàn)類的幾個(gè)特定的接口函數(shù),最后將新定義的動(dòng)作在業(yè)務(wù)流程中進(jìn)行注冊(cè)就可以使用了。使用這個(gè)功能,用戶可以根據(jù)需要開發(fā)出滿足企業(yè)需要的動(dòng)作,從而設(shè)計(jì)出特殊的業(yè)務(wù)流程。
2.6 業(yè)務(wù)流程的解析
基于動(dòng)態(tài)領(lǐng)域建模完成業(yè)務(wù)流程設(shè)計(jì)后,在實(shí)際運(yùn)行時(shí),需要一個(gè)解釋引擎將使用領(lǐng)域模型封裝過的業(yè)務(wù)流程還原為簡單的業(yè)務(wù)流程。
在迸行流程設(shè)計(jì)時(shí),動(dòng)作具體的操作是使用文本的形式填寫在動(dòng)作的屬性中的。解析的過程其實(shí)就是將文本填寫的內(nèi)容轉(zhuǎn)化為具體的函數(shù)調(diào)用。
具體的業(yè)務(wù)流程解析是由后臺(tái)的解析模塊來完成。在設(shè)計(jì)解析模塊時(shí),對(duì)動(dòng)作的調(diào)用是執(zhí)行基類的一個(gè)虛函數(shù)。系統(tǒng)內(nèi)置的各個(gè)動(dòng)作函數(shù)都繼承于該虛函數(shù)。用戶以文本的形式將函數(shù)名填寫在動(dòng)作的屬性中時(shí),就將具體的函數(shù)注冊(cè)到了節(jié)點(diǎn)上。當(dāng)流程執(zhí)行到該節(jié)點(diǎn)時(shí).就會(huì)自動(dòng)的執(zhí)行具體的函數(shù),從而完成流程功能。
2.7 多組織業(yè)務(wù)流程的權(quán)限設(shè)計(jì)
在企業(yè)ERP系統(tǒng)中,權(quán)限管理是一個(gè)重要的內(nèi)容,對(duì)任意一張單據(jù),只有有權(quán)限的用戶才能進(jìn)行創(chuàng)建、修改或刪除。
業(yè)務(wù)流程經(jīng)常在多個(gè)組織間流動(dòng),在一個(gè)組織的業(yè)務(wù)處理完成后往往需要自動(dòng)創(chuàng)建一張新的單據(jù)。如果這張新的單據(jù)是其他組織的,就會(huì)出現(xiàn)沒有權(quán)限無法創(chuàng)建的問題。
在業(yè)務(wù)流程設(shè)計(jì)的過程中,類似的權(quán)限問題還有很多。為此,在普通的單據(jù)視圖之外,專門設(shè)計(jì)了單據(jù)的業(yè)務(wù)流程視圖,如圖6所示。
圖6 單據(jù)的兩個(gè)視圖
單據(jù)視圖是操作者直接打開或操作單據(jù)時(shí)的情況,由操作者的權(quán)限來確定。
業(yè)務(wù)流程視圖是當(dāng)業(yè)務(wù)流程指定業(yè)務(wù)流程轉(zhuǎn)向某個(gè)用戶時(shí),該用戶將獲得對(duì)該單據(jù)的特定區(qū)域的臨時(shí)權(quán)限。當(dāng)操作人完成業(yè)務(wù)流程指定的任務(wù)后,對(duì)單據(jù)的臨時(shí)權(quán)限將消失。使用業(yè)務(wù)流程視圖可以方便的實(shí)現(xiàn)對(duì)單據(jù)的臨時(shí)權(quán)限管理。從而解決業(yè)務(wù)流程跨組織支持的問題。
3 實(shí)現(xiàn)
經(jīng)過大量的努力,根據(jù)80萬用戶對(duì)流程的需求和最佳實(shí)踐,設(shè)計(jì)出了一套符合中國企業(yè)的業(yè)務(wù)流程管理(BPM:Business Process Management)解決方案。
通過將業(yè)務(wù)流程與動(dòng)態(tài)領(lǐng)域模型的融合,實(shí)現(xiàn)動(dòng)態(tài)商業(yè)應(yīng)用的概念,建立了一個(gè)基于動(dòng)態(tài)領(lǐng)域模型的業(yè)務(wù)流程框架。實(shí)現(xiàn)了動(dòng)態(tài)設(shè)計(jì)和修改業(yè)務(wù)流程的功能,具有良好的易用性和可擴(kuò)展性。
使用這個(gè)業(yè)務(wù)流程框架,ERP系統(tǒng)中大量的業(yè)務(wù)流程設(shè)計(jì)變得非常簡單,使用業(yè)務(wù)流程設(shè)計(jì)模塊,不需要編寫代碼,就可以完成業(yè)務(wù)流程的設(shè)計(jì)和修改,并且可以設(shè)計(jì)出復(fù)雜的跨組織業(yè)務(wù)流程。
使用這個(gè)業(yè)務(wù)流程設(shè)計(jì)框架,開發(fā)效率大幅上升,系統(tǒng)設(shè)計(jì)大大簡化,可遷移性也得到了顯著提高。采用這種技術(shù)前,90%的精力花費(fèi)在業(yè)務(wù)流程的實(shí)現(xiàn)上,無法專注與ERP業(yè)務(wù)流程的設(shè)計(jì)。采用這個(gè)業(yè)務(wù)流程設(shè)計(jì)框架后,具體的業(yè)務(wù)流程實(shí)現(xiàn)的時(shí)間降低為10%,開發(fā)人員90%的精力關(guān)注業(yè)務(wù)流程的邏輯設(shè)計(jì)和系統(tǒng)建模。從而可以開發(fā)出更加適合企業(yè)需求的產(chǎn)品。
另一方面,采用新的技術(shù)后,系統(tǒng)開發(fā)的難度大幅下降,新員工經(jīng)過簡單培訓(xùn)就可以開始工作。同時(shí),由于減少了代碼修改的數(shù)量,系統(tǒng)的質(zhì)量也得到了大幅提高。
4 結(jié)束語
在動(dòng)態(tài)領(lǐng)域模型和業(yè)務(wù)流程的動(dòng)態(tài)設(shè)計(jì)方面進(jìn)行了大量的探索和實(shí)踐,發(fā)現(xiàn)這種方法對(duì)大幅提高了ERP系統(tǒng)的設(shè)計(jì)和開發(fā)效率,并有效提升了軟件產(chǎn)品的質(zhì)量。
在業(yè)務(wù)流程設(shè)計(jì)中使用的動(dòng)態(tài)領(lǐng)域建模方法在軟件設(shè)計(jì)中具有很強(qiáng)的通用性,可以推廣到其他類似的系統(tǒng)中,具有較高的理論和應(yīng)用價(jià)值。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.lukmueng.com/
本文標(biāo)題:ERP系統(tǒng)中基于動(dòng)態(tài)領(lǐng)域模型的業(yè)務(wù)流程管理BPM
本文網(wǎng)址:http://www.lukmueng.com/html/consultation/1081967597.html