一種工作流變量存儲方法及裝置、讀取方法及裝置的制造方法
【技術領域】
[0001] 本發(fā)明設及工作流技術領域,尤其設及一種工作流變量存儲方法及裝置W及工作 流變量的讀取方法及裝置。
【背景技術】
[0002] 工作流(Workflow)是指業(yè)務過程的部分或整體在計算機應用環(huán)境下的自動化。其 是對工作流程及其各操作步驟之間業(yè)務規(guī)則的抽象、概括描述。其表現(xiàn)為參與者對文件、信 息或任務按照規(guī)程采取行動,并令其在參與者之間傳遞。簡單地說,工作流就是一系列相互 銜接、自動進行的業(yè)務活動或任務。
[0003] 工作流是針對工作中具有固定程序的常規(guī)活動而提出的一個概念。通過將工作活 動分解成定義良好的任務、角色、規(guī)則和過程來進行執(zhí)行和監(jiān)控,達到提高生產(chǎn)組織水平和 工作效率的目的。工作流技術為企業(yè)更好地實現(xiàn)經(jīng)營目標提供了先進的手段。
[0004] 目前,工作流技術是一項飛速發(fā)展的技術,其能夠為企業(yè)應用提供業(yè)務流程建模、 管理和控制功能。工作流系統(tǒng)和業(yè)務系統(tǒng)的結合不僅僅是實例信息與業(yè)務數(shù)據(jù)之間的關 聯(lián),其還包括很多變量的關聯(lián)。其中,在工作流技術中,變量常被用于定義傳輸線條件、業(yè)務 系統(tǒng)交換數(shù)據(jù)W及業(yè)務活動參與者等。因此,在工作流技術中,變量的存儲方式將直接影響 工作流引擎的性能W及工作流與業(yè)務的結合。
[0005] 任意一個工作流在流程運行過程中均會產(chǎn)生Ξ個操作級別上的實例,其分別為流 程實例、節(jié)點實例和工作項。其中,節(jié)點實例從屬于流程實例,工作項從屬于節(jié)點實例。當前 已知的變量存儲方法主要有兩種:
[0006] 第一種、流程實例、節(jié)點實例和工作項中均存儲變量數(shù)據(jù):
[0007] 運種變量存儲方式雖然變量數(shù)據(jù)的存儲邏輯比較清晰,各個實例獲取相關變量數(shù) 據(jù)的方法比較簡單,但是由于同一變量數(shù)據(jù)存儲在Ξ個實例中,導致變量數(shù)據(jù)的存儲占用 過多的存儲空間,而且,由于每一實例都有可能修改變量數(shù)據(jù),如此也會導致在不同實例中 存儲的同一變量數(shù)據(jù)不一致。
[000引第二種、僅在流程實例中存儲變量數(shù)據(jù):
[0009] 運種變量存儲方式雖然能夠克服第一種存儲方式中占用存儲空間過多和變量數(shù) 據(jù)不一致的問題,但是,由于流程實例、節(jié)點實例和工作項都有可能獲取或修改變量,運些 獲取或修改操作均需要訪問存儲在數(shù)據(jù)庫中的流程實例變量表,因而,運種方式會頻繁地 訪問數(shù)據(jù)庫,給數(shù)據(jù)庫造成很大的壓力。
【發(fā)明內(nèi)容】
[0010] 有鑒于此,本發(fā)明的第一方面提供了一種工作流變量的存儲方法和裝置,W降低 變量數(shù)據(jù)占用的存儲空間,保證變量數(shù)據(jù)的一致性,同時,減小數(shù)據(jù)庫的壓力。
[0011] 基于本發(fā)明的第一方面,本發(fā)明的第二方面提供了一種工作流變量的讀取方法和 裝置。
[0012]為了解決上述技術問題,本發(fā)明采用了如下技術方案:
[0013] -種工作流變量的存儲方法,包括:
[0014] 當工作流觸發(fā)時,流程實例變量表存儲所有變量;
[0015] 在流程實例運行過程中,判斷未存儲變量實例是否修改了變量,如果是,將修改后 的變量W預設格式存儲到所述未存儲變量實例對應的實例表的變量擴展列中;
[0016] 待所述未存儲變量實例的任務執(zhí)行結束后,將所述流程實例變量表中的對應變量 更新為存儲到所述變量擴展列中的修改后的變量。
[0017] -種工作流變量的讀取方法,所述變量按照上述實施例所述的方法存儲,所述讀 取方法包括:
[0018] 獲取未存儲變量實例對應的實例表的變量擴展列;
[0019] 判斷所述變量擴展列中是否存在變量,如果是,讀取存在于所述變量擴展列中的 變量。
[0020] -種工作流變量存儲裝置,包括:
[0021 ]第一存儲單元,用于當工作流觸發(fā)時,流程實例變量表存儲所有變量;
[0022] 第一判斷單元,用于在流程實例運行過程中,判斷未存儲變量實例是否修改了變 量;
[0023] 第二存儲單元,用于當?shù)谝慌袛鄦卧呐袛嘟Y果為是時,將修改后的變量W預設 格式存儲到所述未存儲變量實例對應的實例表的變量擴展列中;
[0024] 第一更新單元,用于待所述為存儲變量實例的任務執(zhí)行結束后,將所述流程實例 變量表中的對應變量更新為存儲到所述變量擴展列中的修改后的變量。
[0025] -種工作流變量讀取裝置,所述變量按照上述實施例所述的方法存儲,所述讀取 裝置包括:
[0026] 第一獲取單元,用于獲取未存儲變量實例對應的實例表的變量擴展列;
[0027] 第四判斷單元,用于判斷所述變量擴展列中是否存在變量;
[0028] 第一讀取單元,用于當所述第四判斷單元的判斷結果為是時,讀取存在于所述變 量擴展列中的變量。
[0029] 相較于現(xiàn)有技術,本發(fā)明具有W下有益效果:
[0030] 通過W上技術方案可知,本發(fā)明提供的工作流變量的存儲方法中,將變量僅存儲 到流程實例變量表中,而在節(jié)點實例和工作項中不存儲變量。如果未存儲變量實例修改了 變量,不會直接將修改后的變量更新到流程實例變量表中,而是W預設格式暫存到該未存 儲變量實例對應的實例表的變量擴展列中。
[0031 ]通過本發(fā)明提供的工作流變量存儲方法,無論是增加變量,還是修改變量值,都可 W通過一個變量擴展列暫存,使得在查詢變量時,無需查詢整個流程實例變量表,避免了對 流程實例變量表的頻繁操作,減輕了數(shù)據(jù)庫的壓力。同時,由于變量僅存儲在流程實例變量 表中,相較于現(xiàn)有技術中同時在流程實例變量表、節(jié)點實例表和工作項表中存儲變量的方 法,本發(fā)明提供的方法降低了變量的存儲空間,同時保證了變量的一致性,提高了變量的訪 問性能。
【附圖說明】
[0032] 為了清楚地理解本發(fā)明的【具體實施方式】,下面將描述本發(fā)明的【具體實施方式】時用 到的附圖作一簡要說明。顯而易見地,運些附圖僅是本發(fā)明的部分實施例,本領域技術人員 在未付出創(chuàng)造性勞動的前提下,還可W獲得其它附圖。
[0033] 圖1是本發(fā)明實施例一提供的工作流變量存儲方法流程示意圖;
[0034] 圖2是本發(fā)明實施例二提供的工作流變量存儲方法流程示意圖;
[0035] 圖3是本發(fā)明實施例Ξ提供的工作流變量存儲方法流程示意圖;
[0036] 圖4是本發(fā)明實施例四提供的一種工作流變量讀取方法流程示意圖;
[0037] 圖5是本發(fā)明實施例四提供的另一種工作流變量讀取方法流程示意圖;
[0038] 圖6是本發(fā)明實施例五提供的工作流變量存儲裝置結構示意圖;
[0039] 圖7是本發(fā)明實施例六提供的工作流變量讀取裝置結構示意圖。
【具體實施方式】
[0040] 為使本發(fā)明的發(fā)明目的、技術手段和技術效果更加清楚、完整,下面結合附圖對本 發(fā)明的【具體實施方式】進行描述。
[0041] 需要說明的是,本發(fā)明實施例提供的工作流變量的存儲方法主要針對在流程運行 過程中,發(fā)生改變的變量的存儲方法。在本發(fā)明實施例中,發(fā)生改變的變量也可W稱為差異 化變量。需要說明的是,發(fā)生改變的變量可W為新增加的變量,也可W為變量值發(fā)生變化的 變量,也可W是僅執(zhí)行了修改變量操作,而變量值沒有發(fā)生變化的變量。
[0042] 為了降低變量數(shù)據(jù)占用的存儲空間,保證變量數(shù)據(jù)的一致性,同時減小數(shù)據(jù)庫的 壓力,本發(fā)明提供的工作流變量的存儲方法的核屯、思想是:僅存儲一份變量,并且設定該變 量與流程實例關聯(lián)。當未存儲變量實例修改了某些變量后,不會將該已經(jīng)修改的變量直接 存儲到變量表中,而是暫存到各自對應的實例表中,在執(zhí)行完相應的任務后,將存儲的已經(jīng) 發(fā)生變化的變量更新到