流程引擎中進行數據存取的系統的製作方法
2023-06-24 16:16:06 1
專利名稱:流程引擎中進行數據存取的系統的製作方法
技術領域:
本發明屬於流程引擎數據處理技術領域,具體涉及一種流程引擎中進行數據存取的系統。
背景技術:
現在流程產品在流程流轉過程中過於需要保存過程數據用於後續線條、節點計算的時候往往採用調用java代碼、執行資料庫等繁瑣的方式來存儲變量,在後續線條、節點上又通過上述複雜方法獲取回變量值,這樣的做法會大大降低開發效率,加大出錯機率,並且有些時候只是開發人員只是想臨時記錄下某個變量值,在後續的節點上使用,並不希望將這些數據持久化。現有技術需要保存流程變量需要在流程設計器裡配置相應的java、sql代碼把變 量存儲到資料庫中,這種方法只對於需要持久化的變量有效,但是只是臨時保存在下面節點或者線條使用的時候就需要存放在資料庫中使用完了再刪除這樣的實現方法對於開發人員要求太高很容易出錯。大大流程引擎的使用簡易度,同時加大了流程的設計開發時間。在流程的流轉中常常需要用一些變量存放一些計算信息返回的信息供下面的節點或者線條使用,怎樣才能很方便的記錄流程的計算信息並且在後面的節點或者線條上方便的使用這就是本專利要解決的問題。本發明因此而來。
發明內容
本發明目的在於提供一種流程引擎中進行數據存取的系統,解決了現有技術中記錄流程的計算信息難以在後面的節點或者線條上方便的使用等問題。為了解決現有技術中的這些問題,本發明提供的技術方案是—種流程引擎中進行數據存取的系統,其特徵在於所述系統包括數據初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用於發現瞬間變量數據,然後進行提供臨時存儲、獲取瞬間變量數據,所述持久化變量處理模塊用於發現持久化變量數據,然後進行提供臨時存儲、獲取持久化變量數據;所述變量類型判斷模塊用於根據變量數據的數據特徵進行判斷該變量數據為瞬間變量數據還是持久化變量數據;所述數據初始化配置模塊用於在流程引擎中初始化變量數據的值。優選的,所述系統還包括持久化變量資料庫,當變量類型判斷模塊判斷變量數據為持久化變量數據時,流程引擎將持久化變量數據和對應的持久化變量名存入持久化變量資料庫中。本發明大大簡化了變量數據的存儲和取出過程,流程設計人員可以使用很簡單的語句完成對流程變量的保存和獲取,非專業人員頁可以參與其中設計流程,大大提高了流程設計的友好度。在本發明技術方案中,可以使用這樣的簡單語句存取變量,例如保存方法${瞬態變量}=」提交人」;而獲取方法${瞬態變量},這樣可以使開發人員在流程設計的時候很方便的存取變量數據(瞬態、持久化),比起現有產品在流程設計的時候配置大量語句去實現變量的記錄,數據處理大大簡化。本發明技術方案中變量數據用戶需要在使用前配置變量的數據類型、是否持久化。相對於現有技術中的方案,本發明的優點是本發明通過在流程設計器中配置Sql來存儲流程變量,通過在流程設計器中擴展java代碼來保存數據變量,通過瞬態、持久化變量處理模塊的分別處理,可以使開發人員在流程設計的時候很方便的存取變量數據(瞬態、持久化)。
下面結合附圖及實施例對本發明作進一步描述
圖I為本發明流程引擎中進行數據存取的系統進行數據存取的流程原理圖。
具體實施例方式以下結合具體實施例對上述方案做進一步說明。應理解,這些實施例是用於說明本發明而不限於限制本發明的範圍。實施例中採用的實施條件可以根據具體廠家的條件做進一步調整,未註明的實施條件通常為常規實驗中的條件。實施例如圖I所示,本實施例流程引擎中進行數據存取的系統,包括數據初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用於發現瞬間變量數據,然後進行提供臨時存儲、獲取瞬間變量數據,所述持久化變量處理模塊用於發現持久化變量數據,然後進行提供臨時存儲、獲取持久化變量數據;所述變量類型判斷模塊用於根據變量數據的數據特徵進行判斷該變量數據為瞬間變量數據還是持久化變量數據;所述數據初始化配置模塊用於在流程引擎中初始化變量數據的值。為了能夠方便的使用流程變量,首先需要配置變量瞬態變量
默認值 </fixflo w: expression〉
v: documentationxsi:type=」fixflow:Dociime!Uation」>^ 明文檔 </11\[10、' :(10
持久變量
默認值〈/fixflow: expression〉
i^ 明文檔 </fixflow: documentation〉
以上是數據變量XML格式在定義數據變量的時候需要註明是否可以持久化。定義好名稱之後就可以在流程引擎中使用變量了。瞬態變量實現過程 I.在流程中對數據變量做出更改執行表達式${瞬態變量}=12.這時變量引擎發現$ {瞬態變量}這個變量發生更改便將$ {瞬態變量}的值記錄在變量引擎3.在後面的線條或者節點上通過$ {瞬態變量}表達式取值.4.變量引擎發現流程在通過${瞬態變量}取值的時候,發現是瞬態變量則直接到變量引擎的環境中去獲取值,當發現變量引擎中如果沒有註冊過${瞬態變量}則會去從配置文件獲取默認值配置的值。持久化變量實現過程在流程中對數據變量做出更改執行表達式${持久變量} =22.這時變量引擎發現$ {持久變量}這個變量發生更改便將$ {瞬態變量}的值記錄在變量引擎3.瞬態變量和持久化變量在賦值的時候都是將值放在變量引擎中存儲,並不是直接存儲到資料庫。4.在後面的線條或者節點上通過$ {持久變量}表達式取值.5.變量引擎發現流程在通過${持久變量}取值的時候,發現是持久變量則直接到變量引擎的環境中去獲取值,如果沒在變量引擎中獲取到值的時候則直接去資料庫查找,如果數據也沒有則直接通過配置的默認值獲取值。6.持久化變量在流程實例保存的時候才會最終保存到數據中,瞬態變量在這次操作結束後則直接釋放不存儲。本實施例中流程引擎容器其實是一個java中的線程副本,裡邊可以存儲這一次請求中的數據,在線程副本中我們存放了變量的Map用來存取數據變量。當請求結束的時候持久化變量會從Map中被保存到資料庫,瞬態的直接被系統清空掉。持久化變量通過JAVA對象序列化技術存儲在資料庫FIXFL0W_RUN_VARIABLE表中表的格式如下PR0CESSINSTANCE_ID VARCHAR2(64BYTE);VARIABLE_KEY VARCHAR2(64BYTE); VARIABLE_VALUE BLOB (這個欄位用來存儲變量值);
VARIABLE_CLASSNAME VARCHAR2(64BYTE);TASKINSTANCE_IDVARCHAR2(64BYTE);T0KEN_ID VARCHAR2(64BYTE);N0DE_ID VARCHAR2(512BYTE) 瞬態變量的存取是通過表達式引擎實現的,當對變量$ {瞬態變量}進行賦值的時候,例如${瞬態變量}=1,則就將向流程容器中註冊一個名字叫做「瞬態變量」的變量記錄他的值為「I」。這個變量實際是 存儲在一個javaMap對象中,Key為瞬態變量;Value為「1」,取出的過程就是使用${瞬態變量},當系統發現在使用${}時會去瞬態變量的Map中查找Key為」瞬態變量」的值。而整個過程都是在一次請求的環境中(java線程副本)完成的當這次請求結束之後數據也將自動消失。持久化變量的使用存取過程是跟瞬態變量一致的,只是持久化變量在流程引擎這次請求結束後保存到資料庫,過程是這樣的跟瞬態變量一致,持久化變量在賦值之後也先會被存儲在Map中當這次流程請求結束後,引擎會遍歷一個持久化變量的維護數據並通過定義在維護數據中的變量Key去Map中尋找數據找到的話則將他保存到資料庫中。在獲取的時候先會去Map中尋找是否有值,沒有的話則直接去數據中尋找找到的話放置在Map中。人工任務是工作流中的一個節點流程圖中所展現的是人工任務完成之後對變量做的一個操作過程。在使用變量前,先需要對變量進行一個創建配置過程,要先定義變量的名稱、類型、是否需要持久化、以及變量的默認值。配置好了這些值變量才能使用。名稱為變量使用時的名字,類型標識這個變量的數據類型,是否需要持久化定義了變量是否是一個可持久化的變量,默認值定義了變量在第一次使用的時候裡邊的值。在流程的表達式配置框中,可以使用如下語句獲取變量${數據變量};賦值變量$ {數據變量} =1、$ {數據變量}=,,測試數據」。在定義文件中有一個交isPersistence的屬性標識了變量是否需要持久化。〈fixflow:DataVa;riable id=〃 持久變量 〃dataType=〃java. lang.String〃isPersistence=〃true〃>。瞬態變量處理模塊會判斷語句中是是否使用了變量操作,如果有則將變量賦值或者從流程容器中獲取變量的值,同時管理者所有的瞬態變量。持久化變量處理模塊也會判斷語句中是否使用了變量操作,如果有則將變量賦值或者從流程容器中獲取變量的值,與瞬態模塊不同持久模塊會在線程副本將要結束的時候(這次流程請求結束)會將流程容器裡的持久化變量獲取出來保存到資料庫供下次使用。通過設置瞬態變量和持久化變量分別進行獲取和存儲,可以使用很簡單的語句就可以保存數據、獲取數據,大大降低了開發難度,降低了錯誤率。上述實例只為說明本發明的技術構思及特點,其目的在於讓熟悉此項技術的人是能夠了解本發明的內容並據以實施,並不能以此限制本發明的保護範圍。凡根據本發明精神實質所做的等效變換或修飾,都應涵蓋在本發明的保護範圍之內。
權利要求
1.一種流程引擎中進行數據存取的系統,其特徵在於所述系統包括數據初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用於發現瞬間變量數據,然後進行提供臨時存儲、獲取瞬間變量數據,所述持久化變量處理模塊用於發現持久化變量數據,然後進行提供臨時存儲、獲取持久化變量數據;所述變量類型判斷模塊用於根據變量數據的數據特徵進行判斷該變量數據為瞬間變量數據還是持久化變量數據;所述數據初始化配置模塊用於在流程引擎中初始化變量數據的值。
2.根據權利要求I所述的流程引擎中進行數據存取的系統,其特徵在於所述系統還包括持久化變量資料庫,當變量類型判斷模塊判斷變量數據為持久化變量數據時,流程引擎將持久化變量數據和對應的持久化變量名存入持久化變量資料庫中。
全文摘要
本發明公開了一種流程引擎中進行數據存取的系統,其特徵在於所述系統包括數據初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用於發現瞬間變量數據,然後進行提供臨時存儲、獲取瞬間變量數據,所述持久化變量處理模塊用於發現持久化變量數據,然後進行提供臨時存儲、獲取持久化變量數據;所述變量類型判斷模塊用於根據變量數據的數據特徵進行判斷該變量數據為瞬間變量數據還是持久化變量數據;所述數據初始化配置模塊用於在流程引擎中初始化變量數據的值。該系統通過瞬態、持久化變量處理模塊的分別處理,可以使開發人員在流程設計的時候很方便的存取變量數據(瞬態、持久化)。
文檔編號G06F17/30GK102880472SQ20121037140
公開日2013年1月16日 申請日期2012年9月28日 優先權日2012年9月28日
發明者姜楠, 夏幫國 申請人:方正國際軟體有限公司