0 引言
由于現代的企業競爭已經從降低成本和提高質量的競爭進化到如何增加企業的柔性和快速反應性的競爭,人們越來越重視對過程的管理。為了提高競爭力,企業不僅要很好地實現基于過程的管理,而且要保證過程的柔性,因為速度和柔性是贏得競爭的關鍵。現在的企業信息系統主要通過ERP系統來實現。ERP系統一般在一個軟件中實現所有的功能。但是這個軟件是面向功能的,不是基于業務過程構建,因此不能適應企業業務過程的經常變化。而工作流技術和工作流管理系統作為面向過程應用的關鍵技術現在已經逐漸成熟并被廣泛地用于各種信息系統中。它的應用一般有兩種形式,一是作為自治系統(如Lotus Notes,Ultimus workflow等),一是作為其他大型系統的 一部分(如在SAP和Oracle中的工作流系統)。隨著工作流技術的日趨成熟,工作流管理系統已經為業務過程的定義和執行提供了良好的基礎,而工作流技術將繼續發展成為業務操作系統,實現對業務過程的全面管理。
因此,在企業中實施工作流管理勢在必行。實施工作流管理必然要考慮工作流管理系統與ERP系統的關系。考慮企業業務過程的特點,企業中沒有實現電子化的業務流程以及已經實現電子化但需要經常變化的業務流程可以交由工作流管理系統來管理。而目前實現了電子化的這部分過程,一般在ERP系統中來管理。這就需要很好地從)ERP系統中“剝離”出一部分過程,交由工作流系統管理。如何選擇這些過程,以及工作流管理系統與ERP系統的關系則是必須考慮的問題。一般來講,對企業中“業務性”很強的過程(特點是流程經常變化,業務數據少,事務性的工作多(如報銷流程等),由工作流管理系統來實現。此時,作為ERP系統的一部分,工作流管理系統能夠實現對業務過程的有效管理,從而提高業務過程的柔性和快速反應性,使得企業能夠適應市場的經常性變化通過對現有ERP系統的缺點和存在問題的分析,本文給出了一個引入了工作流技術的ERP系統。在工作流管理系統和基于組件開發的基礎上,設計了基于組件的ERP系統體系結構,給出了根據功能把過程中的活動分解為組件的方法,最后詳細討論了支持該系統全生命周期管理的開發和實施方法。
1 工作流管理系統簡介
工作流是業務過程的自動執行,它根據預定義的規則使得文檔、信息或者任務在工作流執行者之間傳遞并幫助活動的執行。業務過程的自動化是在工作流定義中描述的,工作流定義確定了工作流活動、活動之間的相互依賴關系以及用于管理工作流的控制數據。活動是工作流中定義的任務,它形成了過程中的一個邏輯步驟。工作流中活動的依賴關系有兩種,即用于執行的控制關系和用于數據傳遞的信息依賴關系。在工作流建模時,需要指定活動的角色,輸入輸出數據以及時間延遲等信息來描述一個實際的過程。同時,還需要確定活動之間的相互關系以用于過程執行時決定活動的執行順序。現有的工作流建模方法很多,許多工作流模型都是基于Petri網建立,工作流管理聯盟設計了基于XML的建模方法XPDL,有向圖的方法也用來描述過程,其中節點對應著活動而有向邊對應著活動間的關系。在工作流運行之前要建立工作流實例,工作流實例是工作流執行過程的表示,它由工作流管理系統根據工作流模型來生成和管理。通過對工作流實例的執行,工作流管理系統完成對業務過程的運行和管理。
工作流管理系統是一個完整的支持工作流的定義、執行和管理的軟件系統,而該軟件系統的執行順序是根據工作流模型來進行的。工作流管理系統包括工作流過程定義工具、工作流執行服務、管理與監控工具、工作流客戶端和相關應用程序接口等部分,如圖1所示。過程定義是建立工作流的過程,將企業的實際業務過程轉化為計算機可處理的工作流模型。工作流執行服務負責對工作流進行實例化、執行和管理。管理與監控工具負責對工作流的執行進行管理、分析與控制。工作流客戶端負責人機交互,提供工作流執行的接口,幫助完成業務過程的執行。相關應用程序接口負責與應用程序的接口,提供工作流執行時所需要的軟件以協助工作流的正常執行,相關的程序包括ERP系統的COM+或J2EE等軟件組件、文檔管理、表單管理、電子郵件服務、CAD/CAM/CAPP等。
工作流管理系統提供了定義和執行業務過程的基礎,企業ERP統的一部分業務過程可以由工作流管理系統來執行,實現對企業過程的高效管理。工作流中活動對應的功能將由軟件組件來實現。而基于工作流管理系統的這部分系統可以與ERP系統其他部分集成。集成在兩個層次上實現:
(1)在軟件層次的集成:工作流管理系統調用其他軟件工具實現過程的執行。
(2)在數據層的集成:基于工作流的系統與其他信息系統共同訪問一個數據庫,實現數據層的集成。
2 工作流在ERP系統中的應用
2.1現有ERP系統的缺點
傳統ERP系統的設計與開發都是以信息處理和信息集成為中心,面向系統的組織結構來實現各種功能。而這些功能模塊之間的內在聯系都沒有顯式的實現,而是隱含在程序中。而執行流程往往隱藏在復雜的菜單之后,通過用戶不斷地點擊各個菜單來實現業務過程的運轉。系統界面以菜單的形式提交給用戶,而菜單中各個功能之間的內在關聯則無法顯式地提交給用戶,而只能靠軟件說明書或者幫助來指導用戶的操作。新用戶需要專門的培訓才能夠掌握軟件的使用,操作的正確與否也取決于用戶的熟練程度。當前ERP系統多為面向功能的,所以當過程出現變化時系統往往不能適應。ERP的設計者和開發人員通常只是考慮系統的功能而很少考慮軟件的使用流程。如果需要經常改變工作流程的時候就出現了問題:此時需要重新設計、編碼和重新編譯軟件,影響軟件的穩定性。正常的工作會被打擾而且操作人員還需重新熟悉軟件,更重要的是需要重新熟悉隱藏在繁瑣的菜單后面的工作過程。可見,傳統的面向功能的ERP件缺乏對業務流程的
有效支持,軟件的耦合度很大,缺乏靈活性。工作流管理系統是對業務過程進行處理的系統,以過程為中心實現系統的集成,具有靈活、開放的優點。基于工作流系統的開發則強調對業務過程的支持。因此,通過傳統ERP系統與工作流系統的結合,對傳統ERP系統進行改進,可增強ERP系統對業務過程的集成和管理,提高系統的柔性,進而增強和改進ERP系統的功能,更好地適應客戶的需要。
2.2ERP中的工作流應用
為了增強對企業業務過程的有效管理,需要在ERP系統中引入工作流技術。在ERP中,對業務性很強的業務過程用工作流系統來管理,而對于企業中沒有實現電子化的那部分業務過程同樣可以由工作流管理系統來管理。可見工作流系統還包括了一些不屬于ERP功能的過程。為了方便這里不加區分,而把ERP需要工作流系統實現的過程和以前沒有實行電子化的過程統一管理。
工作流包括一組活動以及活動之間的邏輯關系。活動對應著業務過程中的任務,邏輯關系決定了活動的執行順序和活動之間的數據流動關系。工作流執行者負責人工活動的執行,執行時需要一些相應的數據、資源和相關軟件。工作流管理系統本身需要建立在某種軟件組件基礎之上,如J2EE或NET。而ERP系統中的業務過程可以分解成活動,每個活動實現某種特定功能。過程中的活動可以由軟件組件來實現,并根據模型的對應關系把這些軟件組件插入到工作流系統中,運行時由工作流引擎調用。這些活動,或者功能,可以建立在與工作流管理系統相同的組件基礎結構之上。
引入工作流技術的ERP系統結構如圖2所示。底層是操作系統、網絡、數據庫和基礎組件平臺,作為整個系統的基礎結構。在這個基礎結構之上建立ERP系統和工作流管理系統,它們都是建立在同一個平臺之上(J2EE或.NET)。工作流管理系統是管理者,它幫助建立整個企業的業務過程,并且通過管理和監視業務過程的執行來完成ERP系統的一部分功能。工作流中相應活動的功能由軟件組件實現,而這些軟件由工作流管理系統根據過程規則進行觸發。用戶通過工作流客戶端進入系統,在工作流執行服務的支持下,完成系統中業務過程的運轉。工作流管理系統與ERP的其他子系統共同存在,工作流管理系統通過調用相關子系統中的軟件組件來實現相應的功能,同時通過訪問企業數據庫來進行數據交換。通過工作流系統來管理其他子系統中的業務過程,增強了ERP系統對過程的處理能力。而工作流管理系統通過與ERP系統共享底層數據庫以及通過調用實現了相關ERP功能的軟件組件,來實現與其他ERP子系統的緊密集成。
在業務過程中,人工活動由人來控制執行,執行時需要調用相關的應用程序和ERP中的軟件組件,而自動活動由計算機程序來執行,該程序就是在工作流管理系統運行時由工作流引擎觸發的軟件組件。這些軟件組件由ERP系統開發者根據企業建模所得到的過程模型來開發。它們是根據活動的功能設計的,并且在模型中建立活動與這些組件之間的映射關系,在工作流執行時由工作流引擎來調用它們以實現過程的運轉。
2.3面向過程的ERP系統優勢
與面向功能的系統相比,引入了工作流技術以后,ERP系統是面向過程來設計、開發和實施的,這種面向過程的ERP系統具有如下優點:
(1)柔性:過程中活動之間的關系與活動的功能邏輯是分開的。也就是說業務過程與ERP系統的功能可以分別建立。相應的軟件組件可以根據功能來建立,而工作流模型根據業務過程來建立。然后在工作流模型內定義軟件組件和活動之間的對應關系。這種分開做的方式允許ERP應用中的過程模型改變而不影響相關活動的功能,增強了系統的柔性。這也正是企業試圖使用工作流技術的原因。
(2)可重用性:可重用性的優勢是基于工作流的應用自身所具有的。過程中活動的實施與流程是獨立的,并且它們在過程中的使用也是自由的。因此,一個給定的活動可以被用在不同的過程模型中,實現了活動(以及對應的軟件組件)的可重用。
(3)集成性:通過活動之間的控制關系和信息依賴關系,工作流模型能夠把不同的活動集成在一個過程內。而且,由于各個功能模塊是基于組件技術構建,其他異構的信息系統同樣可以被工作流系統集成到過程中來,成為ERP系統的一部分。尤其是與CRM和SCM系統的集成,擴展了ERP的外延。
(4)快速性:通過對過程的管理,能夠實現ERP應用的快速定制和實施,大幅度縮短ERP應用工程的實施周期。
(5)動態性:工作流管理系統能夠動態、實時地提供過程的運行信息,對這些信息的動態分析可以及時給出決策與管理的依據。通過動態修改工作流模型,還可實現動態的BPR。
(6)協調性:工作流管理系統可以全局地協調工作流中各個活動的執行,使得活動的參與者以及相應的軟件工具能夠在工作流執行系統的管理下有機地協調運行,充分利用企業的資源并實現過程的最優化運行。
(7)高效性:工作流技術在流程優化的基礎上,能夠實現業務流程的全部和部分自動化,從而實現業務過程的高效運轉。下面在第3節給出了ERP系統中工作流管理系統的全生命周期管理方法和系統實施步驟。
4 系統實施方法
ERP中工作流管理系統的生命周期可分為4個階段,即需求分析、設計說明、實施描述和運行維護,如圖3所示。在CIMOSA體系結構中模型的生命周期有3個階段。我們在ERP系統的生命周期中加入了運行維護階段。在運行維護階段,企業模型可以進行動態的維護,而且可以方便地實施BPR操作。
在需求分析階段,主要有兩項工作:一是建立工作流模型,一是對所需的組件進行需求分析與設計。建模人員要調查和分析實現ERP系統功能的相關業務過程,并且建立需求分析模型,即通過進行過程定義來建立工作流模型。在此階段要建立模型的4個視圖,即過程圖、組織視圖、資源視圖和信息視圖,這些視圖分別從不同的角度描述了工作流模型。過程視圖是工作流模型的主視圖,它將被工作流管理系統進行調度執行用以完成ERP系統的功能。工作流模型中的活動都將被建立,活動之間的控制關系和信息流動關系都被指定。同時,需要指定過程中負責執行活動的角色以及支持用戶使用的應用程序。而這些應用程序會以軟件組件的形式提供。這些軟件組件本身實現某些功能,并且映射到某個工作流中指定的活動。在需求分析階段要對這些組件進行設計,包括設計它的接口,API和功能。
在設計說明階段,主要是分析和優化在需求分析階段得到的工作流模型。如果必要,重新指定活動的組織和資源,也就是活動的執行者和活動所需要的資源。同樣,活動的輸入輸出信息也可能被重新設定。在此基礎上,設計和開發全部軟件組件。在實施描述階段,通過指定工作流過程中活動與組件的關系,建立起ERP統中完整的工作流管理系統。為了檢測過程中潛在的錯誤和問題,需要進行工作流系統仿真。通過仿真來找出過程的瓶頸,找出任務、角色分配的潛在負載沖突,并進行改進,把修改后的工作流模型保存在模型庫中用于最終的執行。經過仿真檢驗后,所得到的過程模型可以進行實際運行。然后,通過模型的實例化,為工作流過程和活動指定執行者,分配各種資源,同時建立起完整的企業數據庫。于是,整個ERP系統中的過程被工作流系統管理起來。
在運行維護階段,在工作流引擎的管理下,系統中每一個工作流的實例都被很好地管理和控制。同時,過程的時間和成本性能被實時監督,而所得到的運行記錄與歷史記錄一起為企業性能評價提供了支持。這些記錄保證企業有足夠的信息進行BPR的分析與操作。另外,在傳統的面向功能的ERP系統中,很難實現在系統運行時改變系統的模型。而基于過程的模型中卻可以容易地實現,因為:
(1)工作流管理系統本身支持工作流模型的動態修改;
(2)工作流模型和相關的軟件組件是獨立的。這使得我們可以在生命周期的任何階段修改模型。尤其是在運行維護階段,模型可以及時得到改進。模型的動態修改方法如圖4所示。在工作流運行時,借助管理監視工具,管理人員能夠觀察并判斷工作流的執行是否按照模型嚴格進行。如果出現時間約束違反,成本超出預算,活動執行出現問題,操作人員的工作負載超負荷,或者任何性能指標出現違反(時間、成本、質量、服務)的話,管理員可以給出某些建議并且據此改進工作流模型,也就是進行業務過程重組。BPR操作可以離線進行,可以在線進行,然后可以修改并得到更好的工作流模型,同時把對企業的影響降到最低。
4 結論
為了克服當前面向功能的ERP系統結構相對固定以及不能適應經常變化的業務過程的缺點,本文給出了在ERP系統中實施工作流管理的方法。在工作流管理系統和組件開發技術的基礎上,設計了引入工作流技術后的ERP系統結構。設計了相應的過程管理方法以及根據功能把過程分解為組件的方法。詳細討論了這種面向過程的企業信息系統的開發和實施方法。由于工作流管理系統不但能夠有效地控制過程的執行,還能夠進行實時性能分析和BPR 操作,提高了ERP系統對不斷變化的業務過程的管理能力,使企業能夠更好地適應市場的動態變化。另外,這種系統結構提高了ERP的實施速度,而系統的使用也會更加方便,維護則更加靈活。系統的MES部分已經在企業實施,驗證了本文提出的體系結構。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:工作流技術在ERP系統中的應用