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