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