一種可配置工作流的實(shí)現(xiàn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說是一種可配置工作流的實(shí)現(xiàn)方法及系統(tǒng)。
【背景技術(shù)】
[0002]作為實(shí)現(xiàn)企業(yè)信息化的重要底層支撐技術(shù),表單與流程建模是工作流管理應(yīng)用于電子商務(wù)、企業(yè)資源規(guī)劃等信息管理領(lǐng)域中必須解決和無法回避的一個(gè)關(guān)鍵問題。
[0003]現(xiàn)有各業(yè)務(wù)系統(tǒng)中的工作流,是在進(jìn)行詳細(xì)的需求分析之后,將業(yè)務(wù)規(guī)范及處理流程固化在信息系統(tǒng)中的,只是在需要用戶確定流轉(zhuǎn)方向的節(jié)點(diǎn),允許用戶選擇下一節(jié)點(diǎn)處理人。此外,由于涉及節(jié)點(diǎn)間數(shù)據(jù)流轉(zhuǎn)及狀態(tài)轉(zhuǎn)變,難以實(shí)現(xiàn)表單的用戶自定義。
[0004]目前已經(jīng)有基于可配置性的一些嘗試,但通常無法做到全面可配置。工作流與表單系統(tǒng)集成中存在表單顯示元素顯示權(quán)限的控制、工作流變量和表單顯示元素相互映射等問題,這些問題都影響了工作流引擎與表單系統(tǒng)的集成。
[0005]傳統(tǒng)的工作流的開發(fā)及使用方式,存在如下不足:
[0006]①當(dāng)業(yè)務(wù)發(fā)生變更的時(shí)候,常常需要重新進(jìn)行系統(tǒng)需求變更與開發(fā),開發(fā)及維護(hù)成本較高;
[0007]②無法滿足用戶多樣化的業(yè)務(wù)處理要求。
【發(fā)明內(nèi)容】
[0008]為克服上述現(xiàn)有技術(shù)存在的不足,本發(fā)明提供了一種可配置工作流的實(shí)現(xiàn)方法及系統(tǒng),其不僅能夠?qū)崿F(xiàn)表單和工作流的自定義,而且能夠簡(jiǎn)化對(duì)典型流程的設(shè)計(jì)過程,并提高其可復(fù)用性。
[0009]本發(fā)明解決其技術(shù)問題所采取的技術(shù)方案是:一種可配置工作流的實(shí)現(xiàn)方法,其特征是,包括以下過程:
[0010]定義表單模型和工作流模型;
[0011]建立表單模型定義庫和工作流模型定義庫,并將定義的表單模型和工作流模型分別存儲(chǔ)在表單模型定義庫和工作流模型定義庫中;
[0012]建立表單引擎和工作流引擎,所述表單引擎包括表單入口、表單數(shù)據(jù)、表單參數(shù)、權(quán)限控制和表單調(diào)度組件,所述工作流引擎包括節(jié)點(diǎn)訪問、流程數(shù)據(jù)、流程流轉(zhuǎn)、任務(wù)處理和流程調(diào)度組件;
[0013]在表單調(diào)度組件和流程調(diào)度組件之間建立交互接口,進(jìn)行數(shù)據(jù)交互;
[0014]流程調(diào)度組件根據(jù)控制流指令通過交互接口獲取表單數(shù)據(jù)生成流程任務(wù);
[0015]對(duì)生成的流程任務(wù)進(jìn)行處理。
[0016]上述方法中,所述表單引擎用以捕獲客戶端請(qǐng)求,將客戶端提交的請(qǐng)求數(shù)據(jù)根據(jù)表單模型定義進(jìn)行解析、校驗(yàn)和持久化處理。
[0017]上述方法中,所述表單模型和工作流模型的定義采用XML進(jìn)行描述,并在定義XML時(shí)互相協(xié)調(diào)修改對(duì)方的節(jié)點(diǎn)處理規(guī)則。
[0018]上述方法中,所述工作流模型在定義時(shí)結(jié)合具體業(yè)務(wù)規(guī)則并引用指定表單定義中相應(yīng)表單域的值來決定回退條件和前進(jìn)條件,從而使流程引擎在處理表單時(shí)能捕獲表單域的值并決定流轉(zhuǎn)條件以及在某階段是否呈現(xiàn)。
[0019]上述方法中,所述表單數(shù)據(jù)采樣XML描述,表單數(shù)據(jù)的顯示樣式通過XSLT來定義。
[0020]上述方法中,所述對(duì)生成流程任務(wù)進(jìn)行處理的過程包括以下步驟:
[0021]將每個(gè)節(jié)點(diǎn)的業(yè)務(wù)流程定義為元流程,所述元流程包括開始、處理、啟動(dòng)流程和結(jié)束四個(gè)過程;
[0022]查看控制信息,在每個(gè)循環(huán)的開始工作流引擎首先查看控制信息表,如果當(dāng)前沒有用戶發(fā)來的控制信息則進(jìn)入實(shí)例表讀取下一實(shí)例,否則執(zhí)行控制信息表中的工作流控制命令,執(zhí)彳丁完畢后進(jìn)入實(shí)例表;
[0023]查看實(shí)例表獲取當(dāng)前執(zhí)行節(jié)點(diǎn),所有流程實(shí)例按優(yōu)先級(jí)進(jìn)入實(shí)例隊(duì)列中,根據(jù)運(yùn)行情況,獲取應(yīng)處理節(jié)點(diǎn)信息,如果是結(jié)束節(jié)點(diǎn),則結(jié)束當(dāng)前實(shí)例;
[0024]節(jié)點(diǎn)處理操作,首先檢測(cè)當(dāng)前節(jié)點(diǎn)觸發(fā)條件是否達(dá)到,相關(guān)數(shù)據(jù)是否完備,然后按照當(dāng)前節(jié)點(diǎn)處理描述,進(jìn)行節(jié)點(diǎn)操作,如果操作成功則觸發(fā)目標(biāo)節(jié)點(diǎn),并傳送相關(guān)數(shù)據(jù);
[0025]將相關(guān)數(shù)據(jù)信息、交互信息返回給用戶,并更改節(jié)點(diǎn)狀態(tài)和流程實(shí)例隊(duì)列。
[0026]上述方法中,所述流程流轉(zhuǎn)包括基本流轉(zhuǎn)方式、任務(wù)分發(fā)流轉(zhuǎn)方式和任務(wù)合并流轉(zhuǎn)方式,所述基本流轉(zhuǎn)方式為順序流轉(zhuǎn)方式,當(dāng)前節(jié)點(diǎn)的任務(wù)處理完畢后啟動(dòng)下一個(gè)節(jié)點(diǎn)流程;所述任務(wù)分發(fā)流轉(zhuǎn)方式為當(dāng)前節(jié)點(diǎn)任務(wù)完成后進(jìn)入聯(lián)合審批環(huán)節(jié)時(shí),同時(shí)調(diào)用多個(gè)啟動(dòng)流程將下一節(jié)點(diǎn)流程待辦任務(wù)發(fā)送給多個(gè)人進(jìn)行處理;所述任務(wù)合并流轉(zhuǎn)方式就是當(dāng)前節(jié)點(diǎn)任務(wù)為聯(lián)合審批環(huán)節(jié)時(shí),調(diào)用多個(gè)啟動(dòng)流程將待辦任務(wù)發(fā)送給多個(gè)人采用與和或的邏輯關(guān)系進(jìn)行處理。
[0027]本發(fā)明還提供了一種可配置工作流的實(shí)現(xiàn)系統(tǒng),其特征是,包括表單建模工具、工作流建模工具、表單模型定義庫、工作流模型定義庫、表單引擎組件、工作流引擎組件和數(shù)據(jù)庫,所述表單建模工具用以定義表單模型,所述作流建模工具用以定義工作流模型,所述表單模型定義庫用以存儲(chǔ)表單模型,所述工作流模型定義庫用以存儲(chǔ)工作流模型,所述表單引擎用以捕獲客戶端請(qǐng)求,將客戶端提交的請(qǐng)求數(shù)據(jù)根據(jù)表單模型定義進(jìn)行解析、校驗(yàn)和持久化處理,所述工作流引擎通過交互接口與表單引擎進(jìn)行數(shù)據(jù)交互,用以根據(jù)控制流指令獲取表單數(shù)據(jù)生成流程任務(wù),所述數(shù)據(jù)庫用于存儲(chǔ)流程任務(wù)產(chǎn)生的流程實(shí)例數(shù)據(jù)。
[0028]本發(fā)明可配置工作流的實(shí)現(xiàn)系統(tǒng)中,所述表單弓I擎組件包括表單入口、表單數(shù)據(jù)、表單參數(shù)、權(quán)限控制和表單調(diào)度組件。
[0029]本發(fā)明可配置工作流的實(shí)現(xiàn)系統(tǒng)中,所述工作流引擎包括節(jié)點(diǎn)訪問、流程數(shù)據(jù)、流程流轉(zhuǎn)、任務(wù)處理和流程調(diào)度組件。
[0030]本發(fā)明的有益效果是:本發(fā)明綜合了表單引擎和工作流引擎技術(shù),通過對(duì)表單模型定義庫和工作流模型定義庫的配置,實(shí)現(xiàn)了表單與工作流的自定義;本發(fā)明將表單引擎和工作流引擎進(jìn)行分離,并采用松耦合接口方式進(jìn)行表單引擎和工作流引擎之間的數(shù)據(jù)交互;本發(fā)明引入“元流程”的設(shè)計(jì)理念,有效利用了傳統(tǒng)工作流架構(gòu),同時(shí)又保證了流程流轉(zhuǎn)的靈活性。
[0031]本發(fā)明采用集成工作流引擎與表單系統(tǒng)之間的數(shù)據(jù)與業(yè)務(wù)交互,提出了一種低耦合的解決方案,可根據(jù)不同的表單和工作流流程動(dòng)態(tài)配置顯隱權(quán)限屬性和進(jìn)行工作流變量與表單參數(shù)之間的映射,有效地解決了目前現(xiàn)有系統(tǒng)集成中存在的問題。
[0032]本發(fā)明利用“元流程”的應(yīng)用使得流程流轉(zhuǎn)的控制權(quán)從工作流引擎向各功能節(jié)點(diǎn)功能開發(fā)人員手中傾斜,從而提高了復(fù)雜業(yè)務(wù)判斷情況下的流程流轉(zhuǎn),簡(jiǎn)化對(duì)典型流程的設(shè)計(jì)過程,并提高元流程的可復(fù)用性。
【附圖說明】
[0033]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
[0034]圖1是本發(fā)明所述方法的流程圖;
[0035]圖2是本發(fā)明所述系統(tǒng)的結(jié)構(gòu)示意圖;
[0036]圖3是本發(fā)明所述元流程的流程圖;
[0037]圖4是本發(fā)明所述流程流轉(zhuǎn)的流程圖;
[0038]圖5是本發(fā)明所述流程基本流轉(zhuǎn)方式的流程圖;
[0039]圖6是本發(fā)明所述流程任務(wù)分發(fā)流轉(zhuǎn)方式的流程圖;
[0040]圖7是本發(fā)明所述流程任務(wù)合并流轉(zhuǎn)“與”方式的流程圖;
[0041]圖8是本發(fā)明所述流程任務(wù)合并流轉(zhuǎn)“或”方式的流程圖。
【具體實(shí)施方式】
[0042]為能清楚說明本方案的技術(shù)特點(diǎn),下面通過【具體實(shí)施方式】,并結(jié)合其附圖,對(duì)本發(fā)明進(jìn)行詳細(xì)闡述。下文的公開提供了許多不同的實(shí)施例或例子用來實(shí)現(xiàn)本發(fā)明的不同結(jié)構(gòu)。為了簡(jiǎn)化本發(fā)明的公開,下文中對(duì)特定例子的部件和設(shè)置進(jìn)行描述。此外,本發(fā)明可以在不同例子中重復(fù)參考數(shù)字和/或字母。這種重復(fù)是為了簡(jiǎn)化和清楚的目的,其本身不指示所討論各種實(shí)施例和/或設(shè)置之間的關(guān)系。應(yīng)當(dāng)注意,在附圖中所圖示的部件不一定按比例繪制。本發(fā)明省略了對(duì)公知組件和處理技術(shù)及工藝的描述以避免不必要地限制本發(fā)明。
[0043]如圖1所示,本發(fā)明的一種可配置工作流的實(shí)現(xiàn)方法,它包括以下過程:
[0044]定義表單模型和工作流模型;
[0045]建立表單模型定義庫和工作流模型定義庫,并將定義的表單模型和工作流模型分別存儲(chǔ)在表單模型定義庫和工作流模型定義庫中;
[0046]建立表單引擎和工作流引擎,所述表單引擎包括表單入口、表單數(shù)據(jù)、表單參數(shù)、權(quán)限控制和表單調(diào)度組件,所述工作流引擎包括節(jié)點(diǎn)訪問、流程數(shù)據(jù)、流