專利名稱:可個(gè)性化定制業(yè)務(wù)流程的工作流引擎的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種可個(gè)性化定制業(yè)務(wù)流程的工作流引擎。
背景技術(shù):
在當(dāng)今政府機(jī)關(guān)企事業(yè)單位的運(yùn)作過程中,由于各種規(guī)范化管理概念的引入,各 機(jī)關(guān)企事業(yè)單位的運(yùn)作過程越來越明顯的體現(xiàn)為信息流、資金流、物流、價(jià)值流等合理的流 動(dòng);這些流動(dòng)越合理則往往人員分工越具體,人員間合作越緊密,這種合作的體現(xiàn)形式必然 是一個(gè)或多個(gè)完整而高效的工作流程,因此,可以說工作流無處不在。
但是傳統(tǒng)的管理類軟件要么是軟件開發(fā)商針對(duì)大部分政府機(jī)關(guān)企事業(yè)單位的管 理流程提取共性設(shè)計(jì)而成,要么是軟件開發(fā)商針對(duì)某個(gè)客戶的具體需求個(gè)性化定制而成。 這兩種形式的管理類軟件都有其不可回避的缺點(diǎn),共性系統(tǒng)往往客戶花錢購買來之后發(fā)現(xiàn) 與本身的個(gè)性化需求有著或多或少的沖突,還是需要軟件開發(fā)商針對(duì)其個(gè)性化需求進(jìn)行二 次開發(fā),這樣的開發(fā)又需要投入大量的財(cái)力物力;而個(gè)性系統(tǒng)雖然滿足了單個(gè)客戶的個(gè)性 化需求,但這種個(gè)性化的定制隨之帶來的是高額的開發(fā)費(fèi)用和維護(hù)成本。而且這兩種方式 都無法應(yīng)對(duì)一種情況一旦客戶的業(yè)務(wù)流程發(fā)生變化,可能會(huì)導(dǎo)致后續(xù)的多次開發(fā)和維護(hù)。
導(dǎo)致上述現(xiàn)象的原因就是傳統(tǒng)的管理類軟件中幾乎所有的業(yè)務(wù)流程系統(tǒng)都是將 管理業(yè)務(wù)邏輯和軟件控制邏輯捆綁在一起,使得一旦客戶的業(yè)務(wù)邏輯發(fā)生變更,將全面的 影響到軟件系統(tǒng)的控制邏輯,因而必須修改大量源代碼甚至重新開發(fā)。發(fā)明內(nèi)容
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種可個(gè)性化定制業(yè)務(wù)流程的工作 流引擎,該工作流引擎有利于分離軟件系統(tǒng)的控制邏輯和業(yè)務(wù)邏輯,實(shí)現(xiàn)在無需修改控制 邏輯或源代碼的前提下定制個(gè)性化的業(yè)務(wù)流程。
為實(shí)現(xiàn)上述目的,本發(fā)明的技術(shù)方案是一種可個(gè)性化定制業(yè)務(wù)流程的工作流引 擎,包括開始單元、執(zhí)行單元模板和結(jié)束單元,所述工作流引擎基于令牌流方式實(shí)現(xiàn),所述 執(zhí)行單元模板包括人工任務(wù)單元、分支單元、匯聚單元、自動(dòng)執(zhí)行單元、子流程單元和條件 判斷單元;所述分支單元用于處理并行分支任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到分支單 元時(shí),所述分支單元判定后續(xù)路徑的生成情況,然后根據(jù)后續(xù)路徑的條數(shù)產(chǎn)生相應(yīng)的子令 牌;所述匯聚單元與所述分支單元配對(duì)使用,用于匯聚分支任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)分支單 元中的子令牌到達(dá)匯聚單元時(shí),所述匯聚單元判斷所述子令牌對(duì)應(yīng)的流程父令牌的其它子 令牌是否都已到達(dá)了匯聚單元,是則取出對(duì)應(yīng)的流程父令牌,然后銷毀所述子令牌,并驅(qū)動(dòng) 所述流程父令牌流轉(zhuǎn)到匯聚單元并從所述匯聚單元往下流轉(zhuǎn),否則銷毀所述子令牌;所述子流程單元用于生成一個(gè)或多個(gè)子流程,其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到子 流程單元時(shí),所述子流程單元根據(jù)設(shè)定的子流程數(shù)相應(yīng)的創(chuàng)建一個(gè)或多個(gè)子令牌,并驅(qū)動(dòng)子令牌在對(duì)應(yīng)的子流程中流轉(zhuǎn);當(dāng)有子流程結(jié)束時(shí),判斷其它子流程是否都已結(jié)束,即判斷其它子流程上的子令牌是否都已經(jīng)銷毀,是則驅(qū)動(dòng)流程父令牌往下流轉(zhuǎn),否則僅銷毀已結(jié)束子流程上的子令牌,不做其它操作;
所述條件判斷單元用于配置流轉(zhuǎn)規(guī)則以及根據(jù)流轉(zhuǎn)規(guī)則從多條后續(xù)路徑中選擇滿足流轉(zhuǎn)條件的一條進(jìn)行任務(wù)流轉(zhuǎn),需與規(guī)則引擎配合使用,所述條件判斷單元的實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到條件判斷單元時(shí),所述條件判斷單元取出預(yù)先配置的判斷規(guī)則并傳給規(guī)則引擎,以對(duì)各條后續(xù)路徑是否滿足流轉(zhuǎn)條件進(jìn)行邏輯計(jì)算,然后根據(jù)規(guī)則引擎的計(jì)算返回結(jié)果選擇滿足流轉(zhuǎn)條件的后續(xù)路徑進(jìn)行流轉(zhuǎn);
所述自動(dòng)執(zhí)行單元用于執(zhí)行后臺(tái)數(shù)據(jù)操作或調(diào)用外系統(tǒng)的接口,需要預(yù)先配置任務(wù)執(zhí)行需調(diào)用的程序,其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到自動(dòng)執(zhí)行單元時(shí),所述自動(dòng)執(zhí)行單元調(diào)用并執(zhí)行相應(yīng)的程序;所述自動(dòng)執(zhí)行單元設(shè)有一個(gè)是否自動(dòng)執(zhí)行的屬性,當(dāng)該屬性為true時(shí),執(zhí)行完相應(yīng)的程序后流程令牌直接流轉(zhuǎn)到下一單元,否則流程令牌將在所述自動(dòng)執(zhí)行單元等待外界驅(qū)動(dòng)才能往下流轉(zhuǎn);
所述人工任務(wù)單元用于生成并執(zhí)行需要執(zhí)行人員完成一定的動(dòng)作才能往下流轉(zhuǎn)的人工任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到人工任務(wù)單元時(shí),所述人工任務(wù)單元調(diào)用任務(wù)管理器產(chǎn)生相應(yīng)的人工任務(wù),此時(shí)流程令牌停在當(dāng)前單元直至人工任務(wù)完成后再繼續(xù)往下流轉(zhuǎn)。與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是1、分離了軟件系統(tǒng)的控制邏輯和業(yè)務(wù)邏輯,使得業(yè)務(wù)邏輯的變更對(duì)于控制邏輯透明。2、利用本發(fā)明的工作流引擎開發(fā)的軟件系統(tǒng)可以根據(jù)具體業(yè)務(wù)需求量身定制個(gè)性化的業(yè)務(wù)流程,而不用修改控制邏輯,甚至無需修改源代碼。3、提供靈活、豐富的標(biāo)準(zhǔn)開發(fā)接口,使得開發(fā)人員能采用自己習(xí)慣的開發(fā)工具在該平臺(tái)上進(jìn)行定制和擴(kuò)充模塊。4、提供對(duì)所有主流數(shù)據(jù)庫的支持以及對(duì)數(shù)據(jù)的強(qiáng)大容錯(cuò)能力。
圖1是本發(fā)明實(shí)施例的工作流引擎的框架圖。
具體實(shí)施例方式本發(fā)明可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,如圖1所示,包括開始單元、執(zhí)行單元模板和結(jié)束單元,所述工作流引擎基于令牌流方式實(shí)現(xiàn),所述執(zhí)行單元模板包括人工任務(wù)單元、分支單元、匯聚單元、自動(dòng)執(zhí)行單元、子流程單元和條件判斷單元;
所述分支單元用于處理并行分支任務(wù),該單元不需要人工干預(yù),其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到分支單元時(shí),所述分支單元判定后續(xù)路徑的生成情況,然后根據(jù)后續(xù)路徑的條數(shù)產(chǎn)生相應(yīng)的子令牌。而流程父令牌此時(shí)還在所述分支單元,只是其狀態(tài)是不可流轉(zhuǎn)的,分支單元是需要和匯聚單元配套使用的,即要一一對(duì)應(yīng)。所述匯聚單元與所述分支單元配對(duì)使用,用于匯聚分支任務(wù),該單元也不需要人工干預(yù),其實(shí)現(xiàn)邏輯為當(dāng)分支單元中的子令牌到達(dá)匯聚單元時(shí),所述匯聚單元判斷所述子令牌對(duì)應(yīng)的流程父令牌的其它子令牌(即所述子令牌的兄弟令牌)是否都已到達(dá)了匯聚單元,是則通過所述子令牌取出對(duì)應(yīng)的流程父令牌,然后銷毀所述子令牌,并驅(qū)動(dòng)所述流程父 令牌流轉(zhuǎn)到匯聚單元并從所述匯聚單元往下流轉(zhuǎn),否則銷毀所述子令牌。
所述子流程單元用于生成一個(gè)或多個(gè)子流程,也是通過子令牌的方式實(shí)現(xiàn),該單 元也是一個(gè)不需要人工干預(yù)的環(huán)節(jié),其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到子流程單元時(shí),所 述子流程單元根據(jù)設(shè)定的子流程數(shù)相應(yīng)的創(chuàng)建一個(gè)或多個(gè)子令牌,并驅(qū)動(dòng)子令牌在對(duì)應(yīng)的 子流程中流轉(zhuǎn);當(dāng)有子流程結(jié)束時(shí),判斷對(duì)應(yīng)的兄弟子流程是否都已結(jié)束,即判斷其它子流 程上的子令牌是否都已經(jīng)銷毀,是則驅(qū)動(dòng)流程父令牌往下流轉(zhuǎn),否則僅銷毀已結(jié)束子流程 上的子令牌,不做其它操作。
所述條件判斷單元,即路由判斷,此單元也不需要人工干預(yù),但需要配置好路由規(guī) 貝U。所述條件判斷單元用于配置流轉(zhuǎn)規(guī)則以及根據(jù)流轉(zhuǎn)規(guī)則從多條后續(xù)路徑中選擇滿足流 轉(zhuǎn)條件的一條進(jìn)行任務(wù)流轉(zhuǎn),需與規(guī)則引擎配合使用,所述條件判斷單元的實(shí)現(xiàn)邏輯為當(dāng) 流程令牌執(zhí)行到條件判斷單元時(shí),所述條件判斷單元取出預(yù)先配置的判斷規(guī)則并將所述判 斷規(guī)則傳給規(guī)則引擎,以對(duì)各條后續(xù)路徑是否滿足流轉(zhuǎn)條件進(jìn)行邏輯計(jì)算,然后根據(jù)規(guī)則 引擎的計(jì)算返回結(jié)果選擇滿足流轉(zhuǎn)條件的后續(xù)路徑進(jìn)行流轉(zhuǎn)。如對(duì)于有A、B、C三條后續(xù)路 徑的情況,條件判斷單元將流轉(zhuǎn)規(guī)則傳給規(guī)則引擎計(jì)算,首先判斷后續(xù)路徑A是否滿足流 轉(zhuǎn)條件,是則沿后續(xù)路徑A流轉(zhuǎn),路徑B、C不作判斷,否則繼續(xù)計(jì)算后續(xù)路徑B、C是否滿足 流轉(zhuǎn)條件。
所述自動(dòng)執(zhí)行單元用于執(zhí)行后臺(tái)數(shù)據(jù)操作或調(diào)用外系統(tǒng)的接口,也不需要人工干 預(yù),但需要預(yù)先配置任務(wù)執(zhí)行需調(diào)用的程序,其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到自動(dòng)執(zhí)行單 元時(shí),所述自動(dòng)執(zhí)行單元調(diào)用并執(zhí)行相應(yīng)的程序;所述自動(dòng)執(zhí)行單元設(shè)有一個(gè)是否自動(dòng)執(zhí) 行的屬性,當(dāng)該屬性為true時(shí),執(zhí)行完相應(yīng)的程序后流程令牌直接流轉(zhuǎn)到下一單元,否則 流程令牌將在所述自動(dòng)執(zhí)行單元等待外界驅(qū)動(dòng)才能往下流轉(zhuǎn),這種外界驅(qū)動(dòng)通常表現(xiàn)為程 序的執(zhí)行結(jié)果,比如外系統(tǒng)接口的返回?cái)?shù)據(jù)等。
所述人工任務(wù)單元用于生成并執(zhí)行需要執(zhí)行人員完成一定的動(dòng)作才能往下流轉(zhuǎn) 的人工任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到人工任務(wù)單元時(shí),所述人工任務(wù)單元調(diào)用任 務(wù)管理器產(chǎn)生相應(yīng)的人工任務(wù),此時(shí)流程令牌停在當(dāng)前單元直至人工任務(wù)完成后再繼續(xù)往 下流轉(zhuǎn)。
人工任務(wù)一般是單一任務(wù),但也有特殊情況就是會(huì)簽或多實(shí)例任務(wù),當(dāng)人工任務(wù) 單元中配置需要會(huì)簽時(shí),將會(huì)根據(jù)執(zhí)行人員的數(shù)量產(chǎn)生對(duì)應(yīng)數(shù)目的人工任務(wù),但它不一定 需要所有任務(wù)都完成才驅(qū)動(dòng)流程令牌執(zhí)行,只需要滿足驅(qū)動(dòng)的條件即可驅(qū)動(dòng)令牌流轉(zhuǎn),如 任務(wù)完成百分比達(dá)到50%或者任務(wù)完成達(dá)到3個(gè)時(shí)即可驅(qū)動(dòng)流程令牌流轉(zhuǎn),這些會(huì)簽流轉(zhuǎn) 條件可以預(yù)先予以配置。
在本發(fā)明的人工任務(wù)單元中,擴(kuò)展了兩種單元,一種為多實(shí)例單元,另一種為會(huì)簽 單元。多實(shí)例單元其實(shí)為會(huì)簽單元的一種特殊形式,在實(shí)際的應(yīng)用中,該種多實(shí)例單元多與 子流程單元共存,用以生成不定數(shù)量的子流程,待所有子流程都完成后父流程才能繼續(xù)流 轉(zhuǎn)。而會(huì)簽單元比較容易理解,在各種管理類系統(tǒng)中,需要上級(jí)審批和會(huì)簽的功能大范圍存 在,所以本發(fā)明設(shè)計(jì)了這種單元,同時(shí)可以對(duì)會(huì)簽規(guī)則進(jìn)行設(shè)定,根據(jù)百分比、具體數(shù)目來 指定會(huì)簽結(jié)束并往下流轉(zhuǎn)的條件。
通常在管理類系統(tǒng)的建設(shè)中,都需要納入對(duì)執(zhí)行人員的執(zhí)行時(shí)間的考核要求,以提高執(zhí)行人員工作效率,因此,本發(fā)明的工作流引擎也設(shè)計(jì)實(shí)現(xiàn)了一與人工任務(wù)單元配合使用的時(shí)限考核模塊,用于在人工任務(wù)單元上配置相應(yīng)的考核時(shí)限,以對(duì)人工任務(wù)的執(zhí)行時(shí)間進(jìn)行考核。其中還可配置是否把節(jié)假日、下班時(shí)間等剔除出考核時(shí)限。而對(duì)于考核時(shí)限的計(jì)算大致包含兩種方式
I)時(shí)間點(diǎn)。時(shí)間點(diǎn)即某個(gè)時(shí)刻,在人工任務(wù)單元上配置相應(yīng)的考核時(shí)限,當(dāng)流程執(zhí)行到該單元時(shí),任務(wù)管理器會(huì)根據(jù)配置的考核時(shí)限計(jì)算出該任務(wù)完成的時(shí)間點(diǎn)。當(dāng)系統(tǒng)時(shí)間到達(dá)該時(shí)刻時(shí),如果業(yè)務(wù)上有配置如預(yù)警或告警等的動(dòng)作,會(huì)觸發(fā)相應(yīng)的提示功能。2)歷時(shí)。歷時(shí)表示該單元從創(chuàng)建出來后經(jīng)歷了多長的時(shí)間后超時(shí),同樣的,系統(tǒng)根據(jù)單元?jiǎng)?chuàng)建時(shí)間加上這個(gè)時(shí)長計(jì)算出超時(shí)時(shí)間點(diǎn),當(dāng)系統(tǒng)時(shí)間到達(dá)該時(shí)刻時(shí),如果業(yè)務(wù)上有配置如預(yù)警或告警等的動(dòng)作,會(huì)觸發(fā)相應(yīng)的提示功能。當(dāng)然如果無需對(duì)執(zhí)行時(shí)間進(jìn)行考核,也可不配置考核時(shí)限模塊。上述任務(wù)管理器主要是配合人工任務(wù)單元使用,用于根據(jù)人工任務(wù)單元配置信息來進(jìn)行人工任務(wù)的創(chuàng)建、分配以及流程驅(qū)動(dòng)的判斷等,并結(jié)合考核時(shí)限模塊對(duì)人工任務(wù)的執(zhí)行時(shí)間進(jìn)行計(jì)算和考核。它的實(shí)現(xiàn)邏輯其實(shí)已經(jīng)融入到人工任務(wù)單元的實(shí)現(xiàn)邏輯、考核時(shí)限、規(guī)則引擎中了。上述規(guī)則引擎用于計(jì)算各種復(fù)雜的邏輯條件,規(guī)則引擎支持的規(guī)則表達(dá)方式有邏輯表達(dá)式,比如A>B等,其中A和B都為條件變量名稱;腳本語言(BSH腳本語言)以及JAVA類。腳本語言和JAVA類都是為了滿足個(gè)性化的復(fù)雜規(guī)則需求而設(shè)計(jì)的。規(guī)則引擎主要用于判斷后續(xù)單元是否需要?jiǎng)?chuàng)建,它作用于人工任務(wù)、條件、分支、子流程單元。如人工任務(wù)后續(xù)有多條路徑可以選擇,但只能執(zhí)行其中的一條路徑,此時(shí)就需要配置相應(yīng)的規(guī)則,也可不配置規(guī)則,由人工判斷執(zhí)行哪條路徑。規(guī)則引擎實(shí)現(xiàn)了如下幾種方式來判斷路徑走向
I)邏輯表達(dá)式
根據(jù)已有的業(yè)務(wù)數(shù)據(jù)判斷,如審核是否通過等來計(jì)算結(jié)果。從實(shí)現(xiàn)來說,通常將頁面或者后臺(tái)的某個(gè)變量值與某個(gè)固定值進(jìn)行邏輯計(jì)算得出true或者false,來判斷路徑的走向。比如設(shè)置邏輯表達(dá)式為param>l,貝U頁面或后臺(tái)就需要對(duì)變量param進(jìn)行賦值,該值將與I進(jìn)行比較大小,得出true還是false的結(jié)果。2)腳本語言
腳本語言,本發(fā)明實(shí)施例使用BSH作為腳本語言,便于修改。使用腳本語言主要考慮復(fù)雜業(yè)務(wù)邏輯或規(guī)則改動(dòng)較頻繁的情況,因?yàn)槟_本語言修改后可實(shí)時(shí)生效,這樣就無需重啟流程引擎即可達(dá)到想要的效果。配置的BSH腳本需要返回一個(gè)result變量,流程引擎將根據(jù)該變量的值來判斷流程的走向。3) JAVA 方法
配置JAVA方法其實(shí)是對(duì)腳本語言的一種補(bǔ)充,在應(yīng)用過程中較少用到。它的實(shí)現(xiàn)方式為通過繼承相應(yīng)的接口,實(shí)現(xiàn)接口中的邏輯來判斷,最終也需要返回一個(gè)結(jié)果值給規(guī)則引擎來判定后續(xù)的流程走向,此種方法主要用于改動(dòng)不是很頻繁但業(yè)務(wù)邏輯非常復(fù)雜的情況。以上是本發(fā)明的較佳實(shí)施例,凡依本發(fā)明技術(shù)方案所作的改變,所產(chǎn)生的功能作用未超出本發(fā)明技術(shù)方案的范圍時(shí),均屬于本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,包括開始單元、執(zhí)行單元模板和結(jié)束單元,其特征在于所述工作流引擎基于令牌流方式實(shí)現(xiàn),所述執(zhí)行單元模板包括人工任務(wù)單元、分支單元、匯聚單元、自動(dòng)執(zhí)行單元、子流程單元和條件判斷單元; 所述分支單元用于處理并行分支任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到分支單元時(shí),所述分支單元判定后續(xù)路徑的生成情況,然后根據(jù)后續(xù)路徑的條數(shù)產(chǎn)生相應(yīng)的子令牌; 所述匯聚單元與所述分支單元配對(duì)使用,用于匯聚分支任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)分支單元中的子令牌到達(dá)匯聚單元時(shí),所述匯聚單元判斷所述子令牌對(duì)應(yīng)的流程父令牌的其它子令牌是否都已到達(dá)了匯聚單元,是則取出對(duì)應(yīng)的流程父令牌,然后銷毀所述子令牌,并驅(qū)動(dòng)所述流程父令牌流轉(zhuǎn)到匯聚單元并從所述匯聚單元往下流轉(zhuǎn),否則銷毀所述子令牌; 用于生成一個(gè)或多個(gè)子流程,其實(shí)現(xiàn)邏輯為當(dāng)流程父令牌執(zhí)行到子流程單元時(shí),所述子流程單元根據(jù)設(shè)定的子流程數(shù)相應(yīng)的創(chuàng)建一個(gè)或多個(gè)子令牌,并驅(qū)動(dòng)子令牌在對(duì)應(yīng)的子流程中流轉(zhuǎn);當(dāng)有子流程結(jié)束時(shí),判斷其它子流程是否都已結(jié)束,即判斷其它子流程上的子令牌是否都已經(jīng)銷毀,是則驅(qū)動(dòng)流程父令牌往下流轉(zhuǎn),否則僅銷毀已結(jié)束子流程上的子令牌,不做其它操作; 所述條件判斷單元用于配置流轉(zhuǎn)規(guī)則以及根據(jù)流轉(zhuǎn)規(guī)則從多條后續(xù)路徑中選擇滿足流轉(zhuǎn)條件的一條進(jìn)行任務(wù)流轉(zhuǎn),需與規(guī)則引擎配合使用,所述條件判斷單元的實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到條件判斷單元時(shí),所述條件判斷單元取出預(yù)先配置的判斷規(guī)則并傳給規(guī)則引擎,以對(duì)各條后續(xù)路徑是否滿足流轉(zhuǎn)條件進(jìn)行邏輯計(jì)算,然后根據(jù)規(guī)則引擎的計(jì)算返回結(jié)果選擇滿足流轉(zhuǎn)條件的后續(xù)路徑進(jìn)行流轉(zhuǎn); 用于執(zhí)行后臺(tái)數(shù)據(jù)操作或調(diào)用外系統(tǒng)的接口,需要預(yù)先配置任務(wù)執(zhí)行需調(diào)用的程序,其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到自動(dòng)執(zhí)行單元時(shí),所述自動(dòng)執(zhí)行單元調(diào)用并執(zhí)行相應(yīng)的程序;所述自動(dòng)執(zhí)行單元設(shè)有一個(gè)是否自動(dòng)執(zhí)行的屬性,當(dāng)該屬性為true時(shí),執(zhí)行完相應(yīng)的程序后流程令牌直接流轉(zhuǎn)到下一單元,否則流程令牌將在所述自動(dòng)執(zhí)行單元等待外界驅(qū)動(dòng)才能往下流轉(zhuǎn); 所述人工任務(wù)單元用于生成并執(zhí)行需要執(zhí)行人員完成一定的動(dòng)作才能往下流轉(zhuǎn)的人工任務(wù),其實(shí)現(xiàn)邏輯為當(dāng)流程令牌執(zhí)行到人工任務(wù)單元時(shí),所述人工任務(wù)單元調(diào)用任務(wù)管理器產(chǎn)生相應(yīng)的人工任務(wù),此時(shí)流程令牌停在當(dāng)前單元直至人工任務(wù)完成后再繼續(xù)往下流轉(zhuǎn)。
2.根據(jù)權(quán)利要求1所述的可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,其特征在于還設(shè)有一與人工任務(wù)單元配合使用的時(shí)限考核模塊,用于在人工任務(wù)單元上配置相應(yīng)的考核時(shí)限,以對(duì)人工任務(wù)的執(zhí)行時(shí)間進(jìn)行考核。
3.根據(jù)權(quán)利要求2所述的可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,其特征在于所述任務(wù)管理器用于根據(jù)人工任務(wù)單元配置信息來進(jìn)行人工任務(wù)的創(chuàng)建、分配以及流程驅(qū)動(dòng)的判斷,并結(jié)合考核時(shí)限模塊對(duì)人工任務(wù)的執(zhí)行時(shí)間進(jìn)行計(jì)算和考核。
4.根據(jù)權(quán)利要求1所述的可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,其特征在于所述規(guī)則引擎用于計(jì)算各種邏輯條件,判斷后續(xù)單元是否需要?jiǎng)?chuàng)建,規(guī)則引擎支持的規(guī)則表達(dá)方式有邏輯表達(dá)式,腳本語言以及JAVA類。
全文摘要
本發(fā)明涉及一種可個(gè)性化定制業(yè)務(wù)流程的工作流引擎,包括開始單元、執(zhí)行單元模板和結(jié)束單元,該工作流引擎基于令牌流方式實(shí)現(xiàn),執(zhí)行單元模板包括人工任務(wù)、分支、匯聚、自動(dòng)執(zhí)行、子流程和條件判斷等單元,分支單元用于處理分支任務(wù),匯聚單元用于匯聚分支任務(wù),子流程單元用于生成一個(gè)或多個(gè)子流程,條件判斷單元用于配置流轉(zhuǎn)規(guī)則以及根據(jù)流轉(zhuǎn)規(guī)則從多條后續(xù)路徑中選擇一條進(jìn)行任務(wù)流轉(zhuǎn),自動(dòng)執(zhí)行單元用于執(zhí)行后臺(tái)數(shù)據(jù)操作或調(diào)用外系統(tǒng)的接口,人工任務(wù)單元用于生成并執(zhí)行需要執(zhí)行人員完成某些動(dòng)作才能往下流轉(zhuǎn)的人工任務(wù)。該工作流引擎有利于分離軟件系統(tǒng)的控制邏輯和業(yè)務(wù)邏輯,實(shí)現(xiàn)在無需修改控制邏輯或源代碼的前提下定制個(gè)性化的業(yè)務(wù)流程。
文檔編號(hào)G06Q10/06GK102999816SQ20121051354
公開日2013年3月27日 申請(qǐng)日期2012年12月5日 優(yōu)先權(quán)日2012年12月5日
發(fā)明者林富欽, 鄭生華, 張航, 陳春 申請(qǐng)人:福建郵科通信技術(shù)有限公司