專利名稱:一種在辦公自動化中基于規(guī)則約束的自適應(yīng)流程方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)應(yīng)用技術(shù),具體地說是一種辦公自動化中自適應(yīng)流程的實(shí)現(xiàn)方法。
2、技術(shù)背景在辦公自動化領(lǐng)域的公文審批中,存在會簽、加簽、跳轉(zhuǎn)、回退、指定審批人等需求。會簽指增加當(dāng)前節(jié)點(diǎn)的審批人;加簽,指在當(dāng)前節(jié)點(diǎn)之前或者之后增加一個新的節(jié)點(diǎn);跳轉(zhuǎn)指跳過后續(xù)的某一些節(jié)點(diǎn);回退指回退到上一步和回退到起始位置;指定審批人,指表單提交時,指定下一個審批節(jié)點(diǎn)的審批人員。這些需求,可以歸納為自適應(yīng)工作流的應(yīng)用。
自適應(yīng)工作流,在業(yè)務(wù)流程建模語言BPMN(Business Process Modeling Notation)是AdHoc類型的流程,但僅是圖形化方面的標(biāo)準(zhǔn),沒有執(zhí)行方面的內(nèi)容。國外的工作流產(chǎn)品大部分不支持這種運(yùn)行方式,極少數(shù)工作流產(chǎn)品能夠有限支持,但是需要開發(fā)人員寫大量的代碼來實(shí)現(xiàn)。國內(nèi)部分工作流產(chǎn)品支持這樣的方式,支持的方式是用戶打開流程設(shè)計器重新設(shè)計流程,用戶一般缺少相關(guān)知識,產(chǎn)品缺少有效的修改驗(yàn)證,修改之后因?yàn)榱鞒棠0宀灰粯記]有辦法進(jìn)行流程的統(tǒng)計分析,這違背了流程管理的初衷;還有一種方式是將可能改變的各種情況都考慮到,并增加一些額外的流程節(jié)點(diǎn),當(dāng)出現(xiàn)這些情況時再根據(jù)預(yù)案的內(nèi)容進(jìn)行調(diào)整,這種方式不夠靈活,因?yàn)榱鞒淘O(shè)計者無法預(yù)見到所有意外情況,當(dāng)出現(xiàn)沒有預(yù)見到的情況出現(xiàn)時就無法處理了。這兩種方式都不適合國內(nèi)辦公自動化的領(lǐng)域。
3、發(fā)明內(nèi)容本發(fā)明提供一種滿足需求、足夠靈活、方便修改和驗(yàn)證的方法。這種方法在流程規(guī)則和業(yè)務(wù)規(guī)則的約束下,對于流程的模板進(jìn)行修改,修改的流程模板獨(dú)立存儲,在流程運(yùn)行時通過合并算法對原模板和修改后的模板進(jìn)行合并,從而達(dá)到流程的自適應(yīng)。
流程規(guī)則指自適應(yīng)流程需要避免出現(xiàn)流程死鎖、不可達(dá)的結(jié)構(gòu)性沖突,對自適應(yīng)的流程進(jìn)行結(jié)構(gòu)性檢查。業(yè)務(wù)規(guī)則的定義是處理人的權(quán)限、處理人的職位、流程的緊急程度,比如擁有權(quán)限的用戶可以改變流程,處理人可以添加相同職位的人員一起會簽,緊急的公文可以越級審批。
本發(fā)明的在辦公自動化中基于規(guī)則約束的自適應(yīng)流程的方法是在流程規(guī)則和業(yè)務(wù)規(guī)則的約束下,允許為流程模板添加附加模板,此模板對原流程模板進(jìn)行擴(kuò)充和修改,并與原模板分開存放。在流程運(yùn)行時通過合并算法對原模板和附加的模板進(jìn)行合并,且流程的實(shí)例按照合并后的模板運(yùn)行,從而達(dá)到流程的自適應(yīng)。為流程模板添加附加模板的過程中,設(shè)置附加信息的有效期、有效次數(shù),超過有效期或者有效運(yùn)行次數(shù)。因?yàn)楦郊幽0搴驮鞒棠0迨歉綦x存儲的,只有在運(yùn)行時才通過合并算法形成修改后的模板,并只服務(wù)于運(yùn)行時的當(dāng)前的流程實(shí)例,所以運(yùn)行時改變的流程模板跟流程的運(yùn)行記錄進(jìn)行關(guān)聯(lián),只會影響到當(dāng)前流程實(shí)例,不影響同樣流程模板的其他流程,且也不進(jìn)行持續(xù)化存儲,從而控制了流程變化的影響范圍,實(shí)現(xiàn)了運(yùn)行時動態(tài)的改變流程運(yùn)行方式。具體的,在將要運(yùn)行到已經(jīng)修改過的節(jié)點(diǎn)時,從數(shù)據(jù)庫中查詢原來的流程模板和處于有效狀態(tài)的修改后的信息,通過合并算法進(jìn)行流程模板的合并,合并之后的流程跟流程模板在格式上沒有區(qū)別,符合國際規(guī)范和標(biāo)準(zhǔn),流程運(yùn)行引擎可以解析(如圖1)。
圖1是普通工作流處理流程示意圖;圖2是自適應(yīng)工作流處理流程示意圖;圖3是節(jié)點(diǎn)信息合并示意圖;圖4是增加節(jié)點(diǎn)合并示意圖;圖5是跳轉(zhuǎn)節(jié)點(diǎn)合并示意圖。
5、實(shí)施方式本發(fā)明的一種在辦公自動化中基于規(guī)則約束的自適應(yīng)流程方法,是在流程規(guī)則和業(yè)務(wù)規(guī)則的約束下,允許為流程模板添加附加模板,此模板對原流程模板進(jìn)行擴(kuò)充和修改,并與原模板分開存放。在流程運(yùn)行時通過合并算法對原模板和附加的模板進(jìn)行合并,且流程的實(shí)例按照合并后的模板運(yùn)行,從而達(dá)到流程的自適應(yīng)。為流程模板添加附加模板的過程中,設(shè)置附加信息的有效期、有效次數(shù),超過有效期或者有效運(yùn)行次數(shù)。因?yàn)楦郊幽0搴驮鞒棠0迨歉綦x存儲的,只有在運(yùn)行時才通過合并算法形成修改后的模板,并只服務(wù)于運(yùn)行時的當(dāng)前的流程實(shí)例,所以運(yùn)行時改變的流程模板跟流程的運(yùn)行記錄進(jìn)行關(guān)聯(lián),只會影響到當(dāng)前流程實(shí)例,不影響同樣流程模板的其他流程,且也不進(jìn)行持續(xù)化存儲,從而控制了流程變化的影響范圍,實(shí)現(xiàn)了運(yùn)行時動態(tài)的改變流程運(yùn)行方式。具體的,在將要運(yùn)行到已經(jīng)修改過的節(jié)點(diǎn)時,從數(shù)據(jù)庫中查詢原來的流程模板和處于有效狀態(tài)的修改后的信息,通過合并算法進(jìn)行流程模板的合并,合并之后的流程跟流程模板在格式上沒有區(qū)別,符合國際規(guī)范和標(biāo)準(zhǔn),流程運(yùn)行引擎可以解析。
流程規(guī)則指自適應(yīng)流程需要避免出現(xiàn)流程死鎖、不可達(dá)的結(jié)構(gòu)性沖突,對自適應(yīng)的流程進(jìn)行結(jié)構(gòu)性檢查。業(yè)務(wù)規(guī)則的定義是處理人的權(quán)限、處理人的職位、流程的緊急程度,比如擁有權(quán)限的用戶可以改變流程,處理人可以添加相同職位的人員一起會簽,緊急的公文可以越級審批。
在本發(fā)明的方法中流程合并算法包括1)修改節(jié)點(diǎn)合并;2)增加節(jié)點(diǎn)合并;3)跳轉(zhuǎn)節(jié)點(diǎn)合并;1)修改節(jié)點(diǎn)合并;假如原節(jié)點(diǎn)為A1,修改后的節(jié)點(diǎn)為A2,合并后的節(jié)點(diǎn)為A3,修改模板存儲了節(jié)點(diǎn)A2。合并原節(jié)點(diǎn)A1時,需要對比A1和A2的屬性,假如節(jié)點(diǎn)中某個屬性為P1,A1.P1的值為V1,A2.P1的值為V2,如果V2為空,則A3.P1=V1;如果V2不為空,則A3.P1=V2;因?yàn)镻1可能不是簡單類型,而是一個復(fù)雜的對象,因此,需要采用遞歸算法逐一比較,最后合并為A3,用A3替換A1;
2)增加節(jié)點(diǎn)合并假如A和B是流程的兩個節(jié)點(diǎn),TA-B是A->B時連接線;現(xiàn)在需在A和B之間增加一個節(jié)點(diǎn)C,修改模板存儲從節(jié)點(diǎn)A后面增加節(jié)點(diǎn)C,首先分別增加連接線TA-C和TC-B,再刪除連接線TA-B,這樣,整個流程就改變?yōu)锳->C->B;再復(fù)雜的情況,比如A、B、C是流程的三個節(jié)點(diǎn),存在TA-B、TA-C這兩條分支,表達(dá)式為A->B|C,在A的后面增加一個節(jié)點(diǎn)D,首先增加TA-C、TD-B、TD-C,然后刪除TA-B、TA-C,這樣就變?yōu)锳->D->B|C。在合并過程中,A到B|C的分支為“或”分支(實(shí)際可能存在兩種類型的分支And或Xor,And表示之后的分支全部被激活,Xor表示有條件的激活后繼分支中的一條),需要將A上定義的分支類型剪切到D上,將TA-B、TA-C上的條件以及條件類型屬性復(fù)制到TD-B、TD-C上;3)跳轉(zhuǎn)節(jié)點(diǎn)合并假如A、B、C是流程的三個節(jié)點(diǎn),連接線TA-B、TB-C,流程為A->B->C;現(xiàn)在需要從A跳過B直接轉(zhuǎn)到C,修改模板將記錄從挑出節(jié)點(diǎn)和跳入節(jié)點(diǎn);首先需要增加TA-C,再刪除TA-B、TB-C以及節(jié)點(diǎn)B;更為復(fù)雜的情況,因?yàn)榱鞒坦?jié)點(diǎn)和他們之間的連接線構(gòu)成了一個圖,而且增加了運(yùn)行方式,在跳轉(zhuǎn)合并時,是否會導(dǎo)致流程不可達(dá)、死鎖以及業(yè)務(wù)數(shù)據(jù)的混亂,因此,需要重點(diǎn)考慮。舉例流程為A->B&C->D->E(A到B&C存在“與”分支),流程運(yùn)行到B和C兩個節(jié)點(diǎn)?,F(xiàn)在如果進(jìn)行C->E的跳轉(zhuǎn),流程會創(chuàng)建E,如果B也進(jìn)行B->E的跳轉(zhuǎn),也會創(chuàng)建E,這樣E及其后續(xù)節(jié)點(diǎn)會被執(zhí)行兩遍,造成了業(yè)務(wù)數(shù)據(jù)的混亂。同樣是上面的流程,正常執(zhí)行到了E,如果執(zhí)行E->B的跳轉(zhuǎn),B繼續(xù)執(zhí)行,則導(dǎo)致了流程的不可達(dá),因?yàn)镈的匯合類型為“與”,要求前導(dǎo)遷移全部執(zhí)行完畢才能創(chuàng)建D,而上述的情況永遠(yuǎn)也無法激活TC-D的遷移。
在增加節(jié)點(diǎn)合并算法中表達(dá)式A->B|C中的“|”,表示B和C是“或”的關(guān)系,“或”關(guān)系由A的分支類型來指定,而且TA-B和TA-C上需要定義選擇B和C的條件。在任意節(jié)點(diǎn)跳轉(zhuǎn)合并算法中表達(dá)式A->B&C中的“&”,表示B和C是“與”的關(guān)系,由A的分支類型來決定。
6、實(shí)施實(shí)例通過流程設(shè)計器,設(shè)計流程模板,通過任務(wù)列表中的修改節(jié)點(diǎn)、增加節(jié)點(diǎn)和跳轉(zhuǎn)的功能添加附加模板。流程合并的工作,工作流引擎會按照5實(shí)施方式的算法的進(jìn)行合并。
如公文審批中的會簽、指定審批人需要使用修改節(jié)點(diǎn)合并算法實(shí)現(xiàn);加簽需要使用簡單增加節(jié)點(diǎn)合并算法;跳轉(zhuǎn)、回退需要使用跳轉(zhuǎn)節(jié)點(diǎn)合并算法。如跳轉(zhuǎn)功能,首先操作人需要有可以跳轉(zhuǎn)的權(quán)限,之后通過任務(wù)列表中的跳轉(zhuǎn)功能打開跳轉(zhuǎn)設(shè)置頁面。通過有向圖的可達(dá)性驗(yàn)證算法,篩選出當(dāng)前節(jié)點(diǎn)可以安全跳轉(zhuǎn)的節(jié)點(diǎn),操作人選擇希望跳轉(zhuǎn)的節(jié)點(diǎn),最后執(zhí)行當(dāng)前活動推動流程的運(yùn)轉(zhuǎn),流程就會跳轉(zhuǎn)到設(shè)置好的節(jié)點(diǎn)。
辦公自動化產(chǎn)品中的審批流已經(jīng)實(shí)施了這種方法,通過這種方法,滿足了公文流轉(zhuǎn)過程中的靈活修改流程模板的要求。山東省國資委項(xiàng)目和中國信息研究所科技部項(xiàng)目中已經(jīng)成功實(shí)施了該產(chǎn)品。
權(quán)利要求
1.一種在辦公自動化中基于規(guī)則約束的自適應(yīng)流程方法,其特征在于,該方法是在流程規(guī)則和業(yè)務(wù)規(guī)則的約束下,允許為流程模板添加附加模板,此模板對原流程模板進(jìn)行擴(kuò)充和修改,并與原模板分開存放,在流程運(yùn)行時,通過合并算法對原模板和附加的模板進(jìn)行合并,且流程的實(shí)例按照合并后的模板運(yùn)行,從而達(dá)到流程的自適應(yīng),流程模板添加附加模板的過程中,設(shè)置附加信息的有效期、有效次數(shù),超過有效期或者有效運(yùn)行次數(shù),只有在運(yùn)行時才通過合并算法形成修改后的模板,并只服務(wù)于運(yùn)行時的當(dāng)前的流程實(shí)例,運(yùn)行時改變的流程模板跟流程的運(yùn)行記錄進(jìn)行關(guān)聯(lián),只會影響到當(dāng)前流程實(shí)例,不影響同樣流程模板的其他流程,且也不進(jìn)行持續(xù)化存儲,從而控制了流程變化的影響范圍,實(shí)現(xiàn)了運(yùn)行時動態(tài)的改變流程運(yùn)行方式,在將要運(yùn)行到已經(jīng)修改過的節(jié)點(diǎn)時,從數(shù)據(jù)庫中查詢原來的流程模板和處于有效狀態(tài)的修改后的信息,通過合并算法進(jìn)行流程模板的合并,合并之后的流程跟流程模板在格式上相同,符合國際規(guī)范和標(biāo)準(zhǔn),不會影響流程流程引擎的運(yùn)行邏輯。
2.根據(jù)權(quán)利要求1所述自適應(yīng)流程方法,其特征在于流程模板的合并算法如下合并算法分為1)修改節(jié)點(diǎn)合并;2)增加節(jié)點(diǎn)合并;3)跳轉(zhuǎn)節(jié)點(diǎn)合并;1)修改節(jié)點(diǎn)合并假如原節(jié)點(diǎn)為A1,修改后的節(jié)點(diǎn)為A2,合并后的節(jié)點(diǎn)為A3,修改模板存儲了節(jié)點(diǎn)A2。合并原節(jié)點(diǎn)A1時,需要對比A1和A2的屬性,假如節(jié)點(diǎn)中某個屬性為P1,A1.P1的值為V1,A2.P1的值為V2,如果V2為空,則A3.P1=V1;如果V2不為空,則A3.P1=V2;因?yàn)镻1可能不是簡單類型,而是一個復(fù)雜的對象,因此,需要采用遞歸算法逐一比較,最后合并為A3,用A3替換A1;2)增加節(jié)點(diǎn)合并假如A和B是流程的兩個節(jié)點(diǎn),TA-B是A->B的連接線;現(xiàn)在需在A和B之間增加一個節(jié)點(diǎn)C,修改模板存儲從節(jié)點(diǎn)A后面增加節(jié)點(diǎn)C,首先分別增加連接線TA-C和TC-B,再刪除連接線TA-B,這樣,整個流程就改變?yōu)锳->C->B;再復(fù)雜的情況,比如A、B、C是流程的三個節(jié)點(diǎn),存在TA-B、TA-C這兩條分支,表達(dá)式為A->B|C,在A的后面增加一個節(jié)點(diǎn)D,首先增加TA-D、TD-B、TD-C,然后刪除TA-B、TA-C,這樣就變?yōu)锳->D->B|C。在合并過程中,A到B|C的分支為“或”分支(實(shí)際可能存在兩種類型的分支And或Xor,And表示之后的分支全部被激活,Xor表示有條件的激活后繼分支中的一條),需要將A上定義的分支類型剪切到D上,將TA-B、TA-C上的條件以及條件類型屬性復(fù)制到TD-B、TD-C上;3)跳轉(zhuǎn)節(jié)點(diǎn)合并假如A、B、C是流程的三個節(jié)點(diǎn),連接線TA-B、TB-C,流程為A->B->C;現(xiàn)在需要從A跳過B直接轉(zhuǎn)到C,修改模板將記錄從挑出節(jié)點(diǎn)和跳入節(jié)點(diǎn);首先需要增加TA-C,再刪除TA-B、TB-C以及節(jié)點(diǎn)B;更為復(fù)雜的情況,因?yàn)榱鞒坦?jié)點(diǎn)和他們之間的連接線構(gòu)成了一個圖,而且增加了運(yùn)行方式,在跳轉(zhuǎn)合并時,是否會導(dǎo)致流程不可達(dá)、死鎖以及業(yè)務(wù)數(shù)據(jù)的混亂,因此,需要重點(diǎn)考慮。舉例流程為A->B&C->D->E(A到B&C存在“與”分支),流程運(yùn)行到B和C兩個節(jié)點(diǎn)?,F(xiàn)在如果進(jìn)行C->E的跳轉(zhuǎn),流程會創(chuàng)建E,如果B也進(jìn)行B->E的跳轉(zhuǎn),也會創(chuàng)建E,這樣E及其后續(xù)節(jié)點(diǎn)會被執(zhí)行兩遍,造成了業(yè)務(wù)數(shù)據(jù)的混亂。同樣是上面的流程,正常執(zhí)行到了E,如果執(zhí)行E->B的跳轉(zhuǎn),B繼續(xù)執(zhí)行,則導(dǎo)致了流程的不可達(dá),因?yàn)镈的匯合類型為“與”,要求前導(dǎo)遷移全部執(zhí)行完畢才能創(chuàng)建D,而上述的情況永遠(yuǎn)也無法激活TC-D的遷移。
3.根據(jù)權(quán)利要求2所述自適應(yīng)流程方法方法,其特征在于,在表達(dá)式A->B|C中的“|”,表示B和C是“或”的關(guān)系,“或”關(guān)系由A的屬性來指定,而且TA-B和TA-C上需要定義選擇B和C的條件)。
4.根據(jù)權(quán)利要求1所述自適應(yīng)流程方法規(guī)則,其特征在于流程規(guī)則指自適應(yīng)流程需要避免出現(xiàn)流程死鎖、不可達(dá)的結(jié)構(gòu)性沖突,對自適應(yīng)的流程進(jìn)行結(jié)構(gòu)性檢查;業(yè)務(wù)規(guī)則的定義是處理人的權(quán)限、處理人的職位、流程的緊急程度等,比如只有擁有相關(guān)權(quán)限的用戶可以改變流程,處理人可以添加相同職位的人員一起會簽,緊急的公文可以越級審批等。
全文摘要
一種在辦公自動化中基于規(guī)則約束的自適應(yīng)流程方法,該方法是在流程規(guī)則和業(yè)務(wù)規(guī)則的約束下,允許為流程模板添加附加模板,此模板對原流程模板進(jìn)行擴(kuò)充和修改,并與原模板分開存放。在流程運(yùn)行時通過合并算法對原模板和附加的模板進(jìn)行合并,且流程的實(shí)例按照合并后的模板運(yùn)行,從而達(dá)到流程的自適應(yīng)。為流程模板添加附加模板的過程中,設(shè)置附加信息的有效期、有效次數(shù),超過有效期或者有效運(yùn)行次數(shù)。因?yàn)楦郊幽0搴驮鞒棠0迨歉綦x存儲的,只有在運(yùn)行時才通過合并算法形成修改后的模板,并只服務(wù)于運(yùn)行時的當(dāng)前的流程實(shí)例,所以運(yùn)行時改變的流程模板跟流程的運(yùn)行記錄進(jìn)行關(guān)聯(lián),只會影響到當(dāng)前流程實(shí)例,不影響同樣流程模板的其他流程,且也不進(jìn)行持續(xù)化存儲,從而控制了流程變化的影響范圍,實(shí)現(xiàn)了運(yùn)行時動態(tài)的改變流程運(yùn)行方式。
文檔編號G06F17/30GK101051364SQ200710015728
公開日2007年10月10日 申請日期2007年5月10日 優(yōu)先權(quán)日2007年5月10日
發(fā)明者李海波, 朱金晨, 孫立新 申請人:浪潮集團(tuán)山東通用軟件有限公司