亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

工作流表的數(shù)據(jù)保存方法、查詢方法及裝置的制作方法

文檔序號:6426370閱讀:267來源:國知局
專利名稱:工作流表的數(shù)據(jù)保存方法、查詢方法及裝置的制作方法
技術(shù)領域
本申請涉及數(shù)據(jù)庫技術(shù)領域,特別是涉及一種工作流表的數(shù)據(jù)保存方法、查詢方法及裝置。
背景技術(shù)
工作流是業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化實現(xiàn),其可以使多個參與者之間按照預定義的規(guī)則自動傳遞文檔、信息或任務,從而實現(xiàn)某個預期的業(yè)務目標。參見圖1,為一種工作流的流程結(jié)構(gòu)示意圖,假設按照公司規(guī)定,員工出差申請借款的金額小于等于5000元,則需要主管審批,主管審批后由財務審批,最后將款項通過銀 行打款到員工的工資卡中;如果員工借款的金額大于5000元,則需要主管審批,主管審批后需要經(jīng)理再次審批,經(jīng)理審批后由財務審批,最后將款項通過銀行打款到員工的工資卡中。其中,如果主管、經(jīng)理或財務中任一方不同意,則需要發(fā)郵件告知員工。在采用現(xiàn)有技術(shù)實現(xiàn)上述工作流設計時,需要采用JBPM3數(shù)據(jù)庫中的三種類型的通用數(shù)據(jù)庫表,包括流程配置類數(shù)據(jù)庫表(共13張),流程運行類數(shù)據(jù)庫表(共11張),角色權(quán)限數(shù)據(jù)庫表(共8張)。另外,針對上述審批流程,需要存儲申請人的IoginId(注冊ID)、申請人角色、申請人組織名稱、申請人組織路徑等業(yè)務信息,針對每個審批任務,需要記錄處理人的IoginID、計劃處理人角色、計劃處理人組織、計劃處理人組織路徑、預約時間、截止日期、接手時間、實際處理人相關(guān)信息等。為了記錄上述信息,需要為審批流程再單獨建立三張業(yè)務相關(guān)數(shù)據(jù)庫表?;谏鲜龅臄?shù)據(jù)庫表設計,在運行相應的工作流時,至少需要關(guān)聯(lián)4張數(shù)據(jù)庫表,并且在工作流運行結(jié)束后,流程運行類數(shù)據(jù)庫表的11張表中都會新增表項數(shù)據(jù)?,F(xiàn)有技術(shù)在實現(xiàn)工作流過程中,由于數(shù)據(jù)庫中的數(shù)據(jù)表數(shù)量較多,因此在進行流程節(jié)點查詢時,需要關(guān)聯(lián)多張數(shù)據(jù)表,導致關(guān)聯(lián)查詢速度較慢;并且由于數(shù)據(jù)表數(shù)量較多,因此在工作流完成時,需要在數(shù)據(jù)表中增加的表項數(shù)量較多,從而降低了工作流性能。

發(fā)明內(nèi)容
本申請實施例提供了一種工作流表的數(shù)據(jù)保存方法、查詢方法及裝置,以解決現(xiàn)有工作流流程中涉及數(shù)據(jù)表數(shù)量較多,導致查詢性能不高的問題。為解決上述技術(shù)問題,本申請實施例提供一種工作流表的數(shù)據(jù)保存方法,是這樣實現(xiàn)的一種工作流表的數(shù)據(jù)保存方法,預先設置工作流表,所述工作流表包括流程定義表、流程實例表和活動實例表,所述方法包括根據(jù)流程名稱查找所述流程定義表,獲取與所述流程名稱對應的流程定義數(shù)據(jù);解析所述流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例;從所述流程實例的起始節(jié)點開始,按照所述流程描述數(shù)據(jù)運行所述流程實例;
其中,在運行所述流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到所述活動實例表中;以及,將運行所述流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到所述流程實例表中,所述流程實例表與所述活動實例表具有相同的流程ID。為解決上述技術(shù)問題,本申請實施例還提供ー種工作流表的數(shù)據(jù)查詢方法,是這樣實現(xiàn)的ー種工作流表的數(shù)據(jù)查詢方法,用于對前述數(shù)據(jù)保存方法所保存的數(shù)據(jù)進行查詢,包括獲取查詢條件,所述查詢條件中包括流程ID和字段滿足條件;根據(jù)所述流程ID關(guān)聯(lián)流程實例表和活動實例表,獲得所述活動實例表中具有所述流程ID的數(shù)據(jù)記錄; 根據(jù)所述字段滿足條件篩選所述數(shù)據(jù)記錄,將篩選出的數(shù)據(jù)記錄作為查詢結(jié)果記求。為解決上述技術(shù)問題,本申請實施例提供ー種工作流表的數(shù)據(jù)保存裝置,是這樣實現(xiàn)的ー種工作流表的數(shù)據(jù)保存裝置,包括預設單元,用于預先設置工作流表,所述工作流表包括流程定義表、流程實例表和活動實例表;查找單元,用于根據(jù)流程名稱查找所述流程定義表,獲取與所述流程名稱對應的流程定義數(shù)據(jù);解析単元,用于解析所述流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例;執(zhí)行單元,用于從所述流程實例的起始節(jié)點開始,按照所述流程描述數(shù)據(jù)運行所述流程實例;保存単元,用于在所述執(zhí)行單元運行所述流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到所述活動實例表中;以及,將運行所述流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到所述流程實例表中,所述流程實例表與所述活動實例表具有相同的流程ID。為解決上述技術(shù)問題,本申請實施例還提供ー種工作流表的數(shù)據(jù)查詢方法,是這樣實現(xiàn)的—種工作流表的數(shù)據(jù)查詢裝置,用于對前述數(shù)據(jù)保存裝置所保存的數(shù)據(jù)進行查詢,包括獲取單元,用于獲取查詢條件,所述查詢條件中包括流程ID和字段滿足條件;關(guān)聯(lián)單元,用于根據(jù)所述流程ID關(guān)聯(lián)流程實例表和活動實例表,獲得所述活動實例表中具有所述流程ID的數(shù)據(jù)記錄;篩選單元,用于根據(jù)所述字段滿足條件篩選所述數(shù)據(jù)記錄,將篩選出的數(shù)據(jù)記錄作為查詢結(jié)果記錄。由上述實施例可以看出,本申請實施例中預先設置流程定義表、流程實例表和活動實例表,根據(jù)流程名稱查找流程定義表,獲取與流程名稱對應的流程定義數(shù)據(jù),解析流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例,從流程實例的起始節(jié)點開始,按照流程描述數(shù)據(jù)運行所述流程實例,在運行流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到所述活動實例表中,以及將運行流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到流程實例表中,流程實例表與活動實例表具有相同的流程ID。本申請實施例在執(zhí)行工作流過程中,僅需涉及四張數(shù)據(jù)表,相應的工作流執(zhí)行的結(jié)果數(shù)據(jù)只需要保存到流程實例表和活動實例表中,因此數(shù)據(jù)記錄保存方便,提高了工作流的運行性能;在后續(xù)基于流程實例表和活動實例表進行數(shù)據(jù)查詢時,也僅需要關(guān)聯(lián)兩張數(shù)據(jù)表,因此關(guān)聯(lián)查詢速度較快,相應提高了系統(tǒng)性能。


為了更清楚地說明本申請實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,對于本領域普通技術(shù)人員而言,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖I為一種工作流的流程結(jié)構(gòu)示意圖; 圖2為本申請工作流表的數(shù)據(jù)保存方法的第一實施例流程圖;圖3為本申請工作流表的數(shù)據(jù)保存方法的第二實施例流程圖;圖4為本申請工作流表的數(shù)據(jù)保存方法的實施例流程圖;圖5為本申請工作流表的數(shù)據(jù)保存裝置的第一實施例框圖;圖6為本申請工作流表的數(shù)據(jù)保存裝置的第二實施例框圖;圖7為本申請工作流表的數(shù)據(jù)查詢裝置的實施例框圖。
具體實施例方式本申請如下實施例提供了一種工作流表的數(shù)據(jù)保存方法、查詢方法及裝置。下面首先結(jié)合圖I描述一下本申請工作流表的數(shù)據(jù)保存實施例中涉及的術(shù)語假設按照公司規(guī)定,員工出差申請借款的金額小于等于5000元,則需要主管審批,主管審批后由財務審批,最后將款項通過銀行打款到員工的工資卡中;如果員工借款的金額大于5000元,則需要主管審批,主管審批后需要經(jīng)理再次審批,經(jīng)理審批后由財務審批,最后將款項通過銀行打款到員工的工資卡中。其中,如果主管、經(jīng)理或財務中任一方不同意,則需要發(fā)郵件告知員工。根據(jù)上述公司內(nèi)部出差借款的流程對應示出圖I中員工出差借款的工作流描述。圖I中,每一個業(yè)務活動定義為一個“節(jié)點”。例如,“財務審批”就是一個節(jié)點,該節(jié)點的完成需要人的參與,定義為任務節(jié)點;“銀行打款”也是一個節(jié)點,該節(jié)點的完成不需要人的參與,定義為自動節(jié)點;“判斷借款金額”也是一個節(jié)點,經(jīng)過該節(jié)點后流程需要進行判斷并根據(jù)判斷結(jié)果進行分支,定義為判斷節(jié)點。圖I中,用于連接節(jié)點的有向箭頭線定義為“有向連接”,表示工作流從一個狀態(tài)通過某種方式進入另一個狀態(tài)。例如,在“財務審批”節(jié)點和“經(jīng)理審批”節(jié)點之間存在一個名為“同意”的有向連接。圖I中,用于描述某一個業(yè)務流程的符號表示定義為“流程定義”,其是由節(jié)點和有向連接組成的靜態(tài)文件。
圖I中,某一次具體業(yè)務請求經(jīng)過的節(jié)點實例定義為“活動實例”。例如,小王計劃2010年10月15日去北京出差,申請借款7000元。小王于2010年10月14上午9點,在系統(tǒng)中提交“出差借款”的申請流程。主管于2010年10月14日上午10點審批,以此類推直至走完所有流程。其中,用于描述“主管審批”這ー活動的為“活動實例”,活動實例包含該活動的開始時間、結(jié)束時間、計劃處理人、實際處理人、預約時間等不同維度的描述信息。圖I中,某一次具體的業(yè)務請求過程中的各個活動實例組成ー個“流程實例”。例如,仍然以小王計劃2010年10月15日去北京出差為例,則在該流程實例中,如果最終審批通過,則整個流程實例包括開始節(jié)點“出差申請”活動實例,主管審批活動實例,判斷借款金額活動實例,經(jīng)理審批活動實例,財務審批活動實例,銀行打款活動實例,結(jié)束節(jié)點活動實例。圖I中,某一次具體的業(yè)務請求過程中,在節(jié)點之間傳遞信息的數(shù)據(jù)定義為“上下文變量實例”,上下文變量實例可以通過(key,value)的對應關(guān)系進行保存,其中key為關(guān)鍵字,value為關(guān)鍵字的屬性值。例如,圖I中判斷借款金額節(jié)點上的金額數(shù)即為該工作流·
現(xiàn)有技術(shù)對工作流表進行保存吋,以任務節(jié)點為例,任務節(jié)點有単獨的任務實例表和泳道實例表,而任務節(jié)點上執(zhí)行的結(jié)果數(shù)據(jù)會保存在流程日志表和流程模塊實例表中;而判斷節(jié)點沒有設置單獨的表,其上執(zhí)行的結(jié)果數(shù)據(jù)會保存到流程日志表和流程模塊實例表中。由于現(xiàn)有工作流中不同類型的節(jié)點保存數(shù)據(jù)的方式有差異,沒有建立統(tǒng)ー的數(shù)據(jù)保存機制。因此,現(xiàn)有技術(shù)在執(zhí)行完ー個工作流后,需要采用大量的數(shù)據(jù)庫表對結(jié)果數(shù)據(jù)進行保存,増加了數(shù)據(jù)庫中工作流表的數(shù)量,且大量工作流表中還可能存儲重復數(shù)據(jù),例如,屬于同一個工作流的各個工作流表中都要保存流程ID、流程版本號等;由于工作流表數(shù)量眾多,因此也相應提高了后續(xù)查詢過程中數(shù)據(jù)表之間的關(guān)聯(lián)難度。本申請實施例僅需要通過流程定義表、流程實例表、活動實例表和上下文變量實例表四張表即可完成工作流的執(zhí)行過程,以及對工作流的結(jié)果數(shù)據(jù)進行保存,后續(xù)查詢過程通常僅需關(guān)聯(lián)流程實例表和活動實例表兩張表即可實現(xiàn)對目標數(shù)據(jù)的查詢。為了使本技術(shù)領域的人員更好地理解本申請實施例中的技術(shù)方案,并使本申請實施例的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖對本申請實施例中技術(shù)方案作進ー步詳細的說明。參見圖2,為本申請工作流表的數(shù)據(jù)保存方法的第一實施例流程圖步驟201 :預先設置工作流表,該工作流表包括流程定義表、流程實例表和活動實例表。與現(xiàn)有技術(shù)相比,本申請實施例定義的工作流表數(shù)量大大減少。其中,本申請實施例僅需ー張流程定義表,而現(xiàn)有技術(shù)中通用的JBPM3工作流解決方案中,從流程功能角度出發(fā)設置的流程定義表為13張。本申請流程定義表可以用bpm_lob表示,其中流程定義數(shù)據(jù)以XML的形式存儲在ー個CLOB類型的字段里。因此,本申請實施例在進行流程定義解析過程中,只需要查詢ー張表即可,該流程定義表的數(shù)據(jù)結(jié)構(gòu)可以如下表I所示表I
權(quán)利要求
1.一種工作流表的數(shù)據(jù)保存方法,其特征在于,預先設置工作流表,所述工作流表包括流程定義表、流程實例表和活動實例表,所述方法包括 根據(jù)流程名稱查找所述流程定義表,獲取與所述流程名稱對應的流程定義數(shù)據(jù); 解析所述流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例; 從所述流程實例的起始節(jié)點開始,按照所述流程描述數(shù)據(jù)運行所述流程實例; 其中,在運行所述流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到所述活動實例表中;以及, 將運行所述流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到所述流程實例表中,所述流程實例表與所述活動實例表具有相同的流程ID。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述流程定義表中的字段包括流程版本、流程名稱、流程定義數(shù)據(jù)、流程定義圖片; 所述流程實例表中的字段包括流程ID、流程名稱、流程實例的開始時間、結(jié)束時間、流程實例申請人、流程實例運行路徑; 所述活動實例表中的字段包括流程ID、活動實例的開始時間、結(jié)束時間、流程節(jié)點執(zhí)行人名稱。
3.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述流程定義數(shù)據(jù)為XML類型數(shù)據(jù); 所述解析所述流程定義數(shù)據(jù)具體為將所述XML類型的流程定義數(shù)據(jù)轉(zhuǎn)換為JAVA對象數(shù)據(jù)。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述按照所述流程描述數(shù)據(jù)運行所述流程實例包括 從所述起始節(jié)點開始,按照流程節(jié)點之間的有向連接的指示,順序從當前流程節(jié)點執(zhí)行到下一個流程節(jié)點,直至結(jié)束節(jié)點。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 預先設置需要保存數(shù)據(jù)記錄的流程節(jié)點的類型; 當所述流程實例運行到每一個流程節(jié)點時,判斷所述流程節(jié)點的類型是否為預先設置的流程節(jié)點的類型; 當判斷結(jié)果為是,則保存在所述流程節(jié)點上生成的活動數(shù)據(jù),否則,不保存在所述流程節(jié)點上生成的活動數(shù)據(jù)。
6.根據(jù)權(quán)利要求I所述的方法,其特征在于,還包括 預先設置上下文變量實例表,用于保存所述流程實例的普通上下文變量,所述普通上下文變量的保存形式為關(guān)鍵字和屬性值的對應關(guān)系,所述關(guān)鍵字包括流程節(jié)點中判斷節(jié)點的判斷值,所述上下文變量實例表與所述流程實例表具有相同的流程ID。
7.根據(jù)權(quán)利要求I所述的方法,其特征在于所述活動實例表以橫表的形式保存所述流程節(jié)點上生成的活動數(shù)據(jù)。
8.一種工作流表的數(shù)據(jù)查詢方法,其特征在于,用于對如權(quán)利要求I至7任意一項所述數(shù)據(jù)保存方法所保存的數(shù)據(jù)進行查詢,包括 獲取查詢條件,該查詢條件中包括流程ID和字段滿足條件; 根據(jù)流程ID關(guān)聯(lián)流程實例表和活動實例表,獲得活動實例表中具有該流程ID的數(shù)據(jù)記錄;根據(jù)字段滿足條件篩選數(shù)據(jù)記錄,將篩選出的數(shù)據(jù)記錄作為查詢結(jié)果記錄。
9.一種工作流表的數(shù)據(jù)保存裝置,其特征在于,包括 預設單元,用于預先設置工作流表,所述工作流表包括流程定義表、流程實例表和活動實例表; 查找單元,用于根據(jù)流程名稱查找所述流程定義表,獲取與所述流程名稱對應的流程定義數(shù)據(jù); 解析單元,用于解析所述流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例; 執(zhí)行單元,用于從所述流程實例的起始節(jié)點開始,按照所述流程描述數(shù)據(jù)運行所述流程實例; 保存單元,用于在所述執(zhí)行單元運行所述流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到所述活動實例表中;以及,將運行所述流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到所述流程實例表中,所述流程實例表與所述活動實例表具有相同的流程ID。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述解析單元具體用于,將XML類型的流程定義數(shù)據(jù)轉(zhuǎn)換為JAVA對象數(shù)據(jù)。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述執(zhí)行單元具體用于,從所述起始節(jié)點開始,按照流程節(jié)點之間的有向連接的指示,順序從當前流程節(jié)點執(zhí)行到下一個流程節(jié)點,直至結(jié)束節(jié)點。
12.根據(jù)權(quán)利要求9所述的裝置,其特征在于,還包括 設置單元,用于預先設置需要保存數(shù)據(jù)記錄的流程節(jié)點的類型; 判斷單元,用于當所述流程實例運行到每一個流程節(jié)點時,判斷所述流程節(jié)點的類型是否為預先設置的流程節(jié)點的類型; 所述保存單元,具體用于當所述判斷單元的判斷結(jié)果為是,則保存在所述流程節(jié)點上生成的活動數(shù)據(jù)。
13.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述預設單元,還用于預先設置上下文變量實例表,用于保存所述流程實例的普通上下文變量,所述普通上下文變量的保存形式為關(guān)鍵字和屬性值的對應關(guān)系,所述關(guān)鍵字包括流程節(jié)點中判斷節(jié)點的判斷值,所述上下文變量實例表與所述流程實例表具有相同的流程ID。
14.一種工作流表的數(shù)據(jù)查詢裝置,其特征在于,用于對如權(quán)利要求9至13任意一項所述數(shù)據(jù)保存裝置所保存的數(shù)據(jù)進行查詢,包括 獲取單元,用于獲取查詢條件,所述查詢條件中包括流程ID和字段滿足條件; 關(guān)聯(lián)單元,用于根據(jù)所述流程ID關(guān)聯(lián)流程實例表和活動實例表,獲得所述活動實例表中具有所述流程ID的數(shù)據(jù)記錄; 篩選單元,用于根據(jù)所述字段滿足條件篩選所述數(shù)據(jù)記錄,將篩選出的數(shù)據(jù)記錄作為查詢結(jié)果記錄。
全文摘要
本申請公開了一種工作流表的數(shù)據(jù)保存方法、查詢方法及裝置,數(shù)據(jù)保存方法包括預先設置工作流表;根據(jù)流程名稱查找流程定義表,獲取與流程名稱對應的流程定義數(shù)據(jù);解析流程定義數(shù)據(jù),根據(jù)解析得到的流程描述數(shù)據(jù)啟動流程實例;從流程實例的起始節(jié)點開始,按照流程描述數(shù)據(jù)運行流程實例;其中,在運行流程實例的過程中,將在流程節(jié)點上生成的活動數(shù)據(jù)作為數(shù)據(jù)記錄保存到活動實例表中;以及,將運行流程實例過程的描述信息作為一條數(shù)據(jù)記錄保存到流程實例表中,流程實例表與活動實例表具有相同的流程ID。本申請工作流執(zhí)行的結(jié)果數(shù)據(jù)只需要保存到流程實例表和活動實例表中,因此數(shù)據(jù)記錄保存方便,提高了工作流的運行性能。
文檔編號G06F17/30GK102831122SQ20111016114
公開日2012年12月19日 申請日期2011年6月15日 優(yōu)先權(quán)日2011年6月15日
發(fā)明者章向明 申請人:阿里巴巴集團控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1