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