企業為適應市場的快速變化,滿足用戶的個性化需求,要求在產品設計過程中進行廣泛的信息交換和建立快速傳輸機制。而傳統產品管理數據(PDM)系統的工作流管理是針對特定業務定制開發的,流程是基于靜態過程定義的,表達能力有局限,靈活性較差,當業務流程發生變化時,整個系統均發生重大的調整,很難適應企業的發展、滿足企業的要求,也大大地限制了工作流技術的實際應用。
本文通過對PDM系統中工作流動態變化的研究,提出了一種基于工作實例的實現方法,該方法可以實現流程的動態變化,減少重復工作,提高工作流運行效率。
1 工作流管理
1.1 工作流定義
工作流是規劃一個項日的各個活動,確定各活動的先后順序和相互關系、各個活動的起始和終止條件,設定各活動要達到的目標,制定活動的執行者和所用資源以及完成活動的期限等。一個工作流可以用一個二元組來表示,即W(A,C),其中,A= {a1,a2,…}為工作流中的各個活動,在工作流模型中表現為節點;C={C1,C2,...}為各個活動間的次序關系,在工作流模型中表現為節點問的連接線。每個活動節點a又可以表示為一個四元組(t1,e,c,t2),其中,t1為活動的相關任務;e為活動的執行者;c為活動的起始和終止條件;t2為活動的執行時間。每個連接線c可表示為一個三元組(s,ns,ne,其巾,s為連接線的狀態;ns為連接線的起點;ne為連接線的終點。
1.2 PDM系統中的工作流管理
工作流管理在PDM系統中的主要目的是將一個具體的工作分解成多個任務、角色,通過一定的規則和過程,約束這個任務的執行和監控,以提高企業生產經營管理水平。PDM系統中的工作流管理主要是產品設計審批流程的管理。系統預先指定產品審批設計流程,定義工作流程階段的數量和名稱,根據工作習慣指派工作流任務,確定各個工作階段的先后次序及對應的設計審批人員、角色及時間等。
產品研發過程是一個大量的繼承、拓展、合并和修改等操作的演化形成產品的過程,該過程中的數據演化是動態的,無法在產品設計之前建立完善的工作流程,開發的執行過程決定下一步的活動方向,因此工作流必須可重構,可擴展,并具有動態性和高度的柔性。
工作流在執行期間有可能發生變化,原因有:①在工作流設計期間由于缺乏認知導致的工作流程規范小完整;②在工作流執行期間發生錯誤或異常。這 都可能導致系統的崩潰、降低服務質量以及產生一系列矛盾等,因此要實現動態的工作流管理,首要解決的問題是要應用動態工作流技術建立一個能夠支持動態編輯修改的工作流模型。而動態工作流技術要解決的核心問題便是流程在執行時的更改和擴展,實現工作流管理在執行層的柔性,它最主要的要求就是工作流中的各個元素(活動、活動的屬性及其活動問的關系)不受定義時的限制。因此,開發出PDM環境下支持流程執行期間工作流的動態管理,滿足企業流程動態變化的需求已成為PDM系統中工作流管理發展的必然。
2 動態工作流研究
2.1 工作流動態變化的判定
工作流的各個活動節點按狀態的不同劃劃分為:就緒提交節點、正在執行節點和已完成節點。在工作流執行期問各節點狀態將發生改變,不同狀態間的轉換如圖1所示。
一個正在執行的工作流程可能發生的動態變化包括:①允許用戶直接跳過尚未開始的活動;②允許某些尚未完全滿足啟動條件的活動啟動;③將2個串行的活動在運行時更改為并行;④在流程中新增或刪除活動節點;⑤對某個活動節點的一些屬性進行修改,改變活動節點間的連接關系等。
圖1 不同節點狀態的變化
對于發生動態變化的流程,判定節點在新流程中是否發生變化,確定節點是否需要重新執行則成了關鍵。為此提出以下5個條件對節點進行依次判斷,當有一個條件不滿足時,節點需要重新執行,這5個條件為:
(1)該節點不是新建節點;
(2)該節點的屬性未發生變化;
(3)該節點的連接關系未發生變化;
(4)該節點的任務已完成;
(5)該節點的前面所有節點已經完成。
其中節點的連接關系分為前置連接關系和后置連接關系。前置連接關系的改變會影響節點的執行,后置連接關系的變化會觸發事件。
根據上述5個判斷條件,歸納出4類節點:基于條件(1)的新增節點;條件(2)和(3)的原始節點;條件(4)的完成節點;條件(5)的跳轉節點。對于節點在新流程中是否需要重新執行,判斷流程如圖2所示。根據節點判斷流程,利用計算機程序化的遞歸遍歷方法即可找出新工作流程中不需要重復執行的活動節點。
圖2 節點判斷流程
2.2 動態工作流的實現
為了解決上述問題,本文提出基于工作實例法的工作流方法。該方法相比其它方法,具有貼合實際需求,能夠處理流程個案,減少實例重復工作,不影響其它共用流程模板實例的執行,自動化程度高,可視化程度強,簡便易懂等特點。該方法主要有4個過程:
(1)建立新工作流模板,該模板以原模板為樣板進行繪制,要求先暫停工作流實例,保存所有的原始數據和過程信息(原流程執行的結果),再對原模板進行編輯修改使之符合新的工作流要求,同時將新的版本號保存在工作流模板庫中。
(2)將原流程的原始數據和過程信息拷貝至新模板中,同時解決該過程中產生的異常和沖突等問題。
(3)標記不需要重新執行的過程節點。利用節點判斷流程來判斷不需新執行的節點,可以從原流程中得到繼承,給予標記。
(4)將新舊模板的信息進行積聚整合,確保工作實例在新模板中能夠順利執行。聚合后原工作流模板不除,以備另用或使其它實例正在運行不受影響。
由上述過程可知,解決遷移過程中的異常和沖突問題是實現流程動態變化的關鍵所在。
2.2.1 異常
新工作流模板在創建時可能存在不完善之處。新模板創建時,創建者沒有對其進行結構分析和性能檢驗,即未對新建工作流模板的活性、有界性、安全性和各種性能指標進行驗證,會產節節被被“死鎖”,不能繼續執行的現象;或實例被“粘住”,進入死循環的現象;或存在實例“不可達”現象等。
繪制可達圖(reachability graph)檢驗用戶定義工作流程的正確性,判斷流程的可達性(無孤島)、活性(無死鎖)等性質。可達圖是一種基于Petri網的有向圖,由節點和箭頭構成。每個節點表示一種可達狀態,箭頭表示一種可能的狀態改變。工作流、Petri網和可達圖的轉換如圖3所示。
圖3 工作流、Petri網和可達圖的轉換
2.2.2 沖突
原模板中的原始數據和過程信息在遷移至新模板中時產生不兼容,即原模板中有的過程節點或屬性在新模板中沒有或者屬性發生改變;原模板中有的連接關系在新模板中沒有或者不同;原模板中的局部流程結構(如串行)在新模板中發生改變(如并行)等。解決該沖突的方法應遵循先分揀、后比對、再遷移的順序。
分揀即從舊模板中篩選出在新模板中依然存在的活動節點和連接關系。節點分揀可以通過節點編號、名稱等具有唯一性標識的屬性加以實現;連接關系的分揀可以通過連接線的起始終止節點和狀態加以實現。
比對即檢查對照已分揀出的節點信息,保存那些依然存在且尚未改變的屬性;通過上述分揀出來的連接關系即為原始的連接關系,保存其相關信息。
遷移即將這些通過分揀和比對的節點、連接關系以及相關信息遷移至新模板中進行保存,以供后續繼承活動的判斷執行。
以一般通用的產品重要零部件審批流程為例,對工作實例法的運用過程進行說明,相關圖如圖4所示(實線方框表示活動已經完成)。
圖4 工作流程
因考慮到設計的通用化和標準化,決定在原工作流程的會簽節點之前新增標準化審核節點,且與審核節點同步,如圖4b所示。運用工作實例法如下:
(1)先中止該工作實例,取出工作流模板(圖4a),在該模板基礎上編輯修改得到新的模板(圖4b),保存給予的新版本號。這一方面可以減少建模的工作量和建模過程中產生的異常錯誤,另一方面為接下來遷移過程中解決異常沖突提供便利。
(2)進行遷移,解決此過程中的異常和沖突等問題。對于異常問題的解決,系統將新建模板的數據模型生成相應的Petri網模型和可達圖,用于驗證模型建立的正確性。將圖4b和圖4c合并得到的層次著色Petri網如圖5所示,可達圖如圖6所示。根據可達圖的判斷定理可知,該新建的工作模板沒有死鎖現象,具有可達性、活性和有界性,新模板有效可用。
圖5 產品設計審批流程Petri網模型
圖6 產品設計審批流程可達圖
對于沖突問題,可以通過設計循環遍歷程序來解決,根據先分揀后比對的準則來完成信息的遷移。實現循環遍歷的方法函數為:
Class Recurrence
{
JudgeNode();////節點遍歷、分揀
JudgeProperty();////屬性遍歷、分揀
Judgeconnection();////連接關系判斷
Infonmtion Transf();////信息遷移
}
(3)完成遷移后,根據節點的判斷流程來標記不需要重新執行的活動,完成繼承。原工作流程已經進行到批準等待階段,對于新的工作流程,通過繼承過程可知,審核及其之前的節點都不需要重新執行,但校對需要觸發一個事件,因其加入了新的后置關系,即讓校對的結果也進入標準化審核節點,讓其與審核同步;會簽工作需要重新執行,因為該節點的前置連接屬性發牛了改變,由原來的因果順序關系變成了并行與關系。
(4)將新模板實例化后重新啟動,則流程會自動從標準化節點開始依次執行。
3 應用實現
在上述研究的基礎上,以VS.NET2005為開發環境,SQLServer2000為數據庫,開發了支持流程動態變化的工作流管理系統,界面如圖7所示。用戶可根據企業的工作習慣,使用可視圖像化的工作流編輯器,建立相應的上作流程。
圖7 工作流編輯器
具體操作為:
(1)在工作流編輯器中建立工作流模型:一方面將建好的模型放入到模型庫中,另一方面將其轉換為數據模型存儲在數據庫中。
(2)系統會自動將數據模型轉換成Petri網模型和可達圖來檢驗用戶定義流程的正確性,判斷流程的可達性、活性等性質,并通過分析找出可能存在的錯誤,給出相應提示以便改正。
(3)將該工作流模型實例化,流程自動啟動。系統通過層次著色Petri網模型確定流程的執行順序,監視流程的執行過程和執行狀態,同時記錄流程狀態演變的過程數據和相關信息。
(4)在工作流運行過程中,若需臨時對其進行修改,暫時中止該工作流程;然后對此模型進行編輯,在判斷無誤后系統自動地將原流程執行過程中的數據和信息遷移繼承到新的流程中,并判斷哪些活動需要重新執行,在此基礎上對流程進行重新編譯繼續執行。
4 結束語
通過對動態工作流的研究與分析,可以提高工作流管理的柔性,使工作流管理系統具有更好的適應動態變化的能力。本文給出了工作流動態變化的判定方法和實現動態上作流的過程步驟,同時給出活動節點是否需要重新執行的削斷流程,實現了工作流在執行過程中的動態變化。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.nttd-wave.com.cn/
本文標題:PDM系統中動態工作流的分析與研究
本文網址:http://m.nttd-wave.com.cn/html/solutions/1401939171.html