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