两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

流程引擎中進行數(shù)據(jù)存取的系統(tǒng)的制作方法

文檔序號:6378069閱讀:303來源:國知局
專利名稱:流程引擎中進行數(shù)據(jù)存取的系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于流程引擎數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種流程引擎中進行數(shù)據(jù)存取的系統(tǒng)。
背景技術(shù)
現(xiàn)在流程產(chǎn)品在流程流轉(zhuǎn)過程中過于需要保存過程數(shù)據(jù)用于后續(xù)線條、節(jié)點計算的時候往往采用調(diào)用java代碼、執(zhí)行數(shù)據(jù)庫等繁瑣的方式來存儲變量,在后續(xù)線條、節(jié)點上又通過上述復(fù)雜方法獲取回變量值,這樣的做法會大大降低開發(fā)效率,加大出錯機率,并且有些時候只是開發(fā)人員只是想臨時記錄下某個變量值,在后續(xù)的節(jié)點上使用,并不希望將這些數(shù)據(jù)持久化?,F(xiàn)有技術(shù)需要保存流程變量需要在流程設(shè)計器里配置相應(yīng)的java、sql代碼把變 量存儲到數(shù)據(jù)庫中,這種方法只對于需要持久化的變量有效,但是只是臨時保存在下面節(jié)點或者線條使用的時候就需要存放在數(shù)據(jù)庫中使用完了再刪除這樣的實現(xiàn)方法對于開發(fā)人員要求太高很容易出錯。大大流程引擎的使用簡易度,同時加大了流程的設(shè)計開發(fā)時間。在流程的流轉(zhuǎn)中常常需要用一些變量存放一些計算信息返回的信息供下面的節(jié)點或者線條使用,怎樣才能很方便的記錄流程的計算信息并且在后面的節(jié)點或者線條上方便的使用這就是本專利要解決的問題。本發(fā)明因此而來。

發(fā)明內(nèi)容
本發(fā)明目的在于提供一種流程引擎中進行數(shù)據(jù)存取的系統(tǒng),解決了現(xiàn)有技術(shù)中記錄流程的計算信息難以在后面的節(jié)點或者線條上方便的使用等問題。為了解決現(xiàn)有技術(shù)中的這些問題,本發(fā)明提供的技術(shù)方案是—種流程引擎中進行數(shù)據(jù)存取的系統(tǒng),其特征在于所述系統(tǒng)包括數(shù)據(jù)初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用于發(fā)現(xiàn)瞬間變量數(shù)據(jù),然后進行提供臨時存儲、獲取瞬間變量數(shù)據(jù),所述持久化變量處理模塊用于發(fā)現(xiàn)持久化變量數(shù)據(jù),然后進行提供臨時存儲、獲取持久化變量數(shù)據(jù);所述變量類型判斷模塊用于根據(jù)變量數(shù)據(jù)的數(shù)據(jù)特征進行判斷該變量數(shù)據(jù)為瞬間變量數(shù)據(jù)還是持久化變量數(shù)據(jù);所述數(shù)據(jù)初始化配置模塊用于在流程引擎中初始化變量數(shù)據(jù)的值。優(yōu)選的,所述系統(tǒng)還包括持久化變量數(shù)據(jù)庫,當變量類型判斷模塊判斷變量數(shù)據(jù)為持久化變量數(shù)據(jù)時,流程引擎將持久化變量數(shù)據(jù)和對應(yīng)的持久化變量名存入持久化變量數(shù)據(jù)庫中。本發(fā)明大大簡化了變量數(shù)據(jù)的存儲和取出過程,流程設(shè)計人員可以使用很簡單的語句完成對流程變量的保存和獲取,非專業(yè)人員頁可以參與其中設(shè)計流程,大大提高了流程設(shè)計的友好度。在本發(fā)明技術(shù)方案中,可以使用這樣的簡單語句存取變量,例如保存方法${瞬態(tài)變量}=”提交人”;而獲取方法${瞬態(tài)變量},這樣可以使開發(fā)人員在流程設(shè)計的時候很方便的存取變量數(shù)據(jù)(瞬態(tài)、持久化),比起現(xiàn)有產(chǎn)品在流程設(shè)計的時候配置大量語句去實現(xiàn)變量的記錄,數(shù)據(jù)處理大大簡化。本發(fā)明技術(shù)方案中變量數(shù)據(jù)用戶需要在使用前配置變量的數(shù)據(jù)類型、是否持久化。相對于現(xiàn)有技術(shù)中的方案,本發(fā)明的優(yōu)點是本發(fā)明通過在流程設(shè)計器中配置Sql來存儲流程變量,通過在流程設(shè)計器中擴展java代碼來保存數(shù)據(jù)變量,通過瞬態(tài)、持久化變量處理模塊的分別處理,可以使開發(fā)人員在流程設(shè)計的時候很方便的存取變量數(shù)據(jù)(瞬態(tài)、持久化)。


下面結(jié)合附圖及實施例對本發(fā)明作進一步描述
圖I為本發(fā)明流程引擎中進行數(shù)據(jù)存取的系統(tǒng)進行數(shù)據(jù)存取的流程原理圖。
具體實施例方式以下結(jié)合具體實施例對上述方案做進一步說明。應(yīng)理解,這些實施例是用于說明本發(fā)明而不限于限制本發(fā)明的范圍。實施例中采用的實施條件可以根據(jù)具體廠家的條件做進一步調(diào)整,未注明的實施條件通常為常規(guī)實驗中的條件。實施例如圖I所示,本實施例流程引擎中進行數(shù)據(jù)存取的系統(tǒng),包括數(shù)據(jù)初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用于發(fā)現(xiàn)瞬間變量數(shù)據(jù),然后進行提供臨時存儲、獲取瞬間變量數(shù)據(jù),所述持久化變量處理模塊用于發(fā)現(xiàn)持久化變量數(shù)據(jù),然后進行提供臨時存儲、獲取持久化變量數(shù)據(jù);所述變量類型判斷模塊用于根據(jù)變量數(shù)據(jù)的數(shù)據(jù)特征進行判斷該變量數(shù)據(jù)為瞬間變量數(shù)據(jù)還是持久化變量數(shù)據(jù);所述數(shù)據(jù)初始化配置模塊用于在流程引擎中初始化變量數(shù)據(jù)的值。為了能夠方便的使用流程變量,首先需要配置變量瞬態(tài)變量
<fixflow:DataVariable id=”瞬態(tài)變量” dataTy.pe=”java.iang,String” ><fix flow: exp res s ion xsi: type=" fixfiow: Expression " name="瞬態(tài)變量” >默認值 </fixflo w: expression〉
<fixf Io>v: documentationxsi:type=”fixflow:Dociime!Uation”>^ 明文檔 </11\[10、' :(10<11111611|3 0011>
</fixflow:Data¥ariable>持久變量<fixfIow: Data Variable id="持久變量” dataType=”java.lang.String”is Persisten ce=" tr ii e">
<fixf!ow: express ion xsi: type=" fixflovv: Expression " name=” 持久變量”>默認值〈/fixflow: expression〉
<fi\flow: documentationxsi:type=,,fixflow:Documentation">i^ 明文檔 </fixflow: documentation〉
</fi\flovv:DataVariable>以上是數(shù)據(jù)變量XML格式在定義數(shù)據(jù)變量的時候需要注明是否可以持久化。定義好名稱之后就可以在流程引擎中使用變量了。瞬態(tài)變量實現(xiàn)過程 I.在流程中對數(shù)據(jù)變量做出更改執(zhí)行表達式${瞬態(tài)變量}=12.這時變量引擎發(fā)現(xiàn)$ {瞬態(tài)變量}這個變量發(fā)生更改便將$ {瞬態(tài)變量}的值記錄在變量引擎3.在后面的線條或者節(jié)點上通過$ {瞬態(tài)變量}表達式取值.4.變量引擎發(fā)現(xiàn)流程在通過${瞬態(tài)變量}取值的時候,發(fā)現(xiàn)是瞬態(tài)變量則直接到變量引擎的環(huán)境中去獲取值,當發(fā)現(xiàn)變量引擎中如果沒有注冊過${瞬態(tài)變量}則會去從配置文件獲取默認值配置的值。持久化變量實現(xiàn)過程在流程中對數(shù)據(jù)變量做出更改執(zhí)行表達式${持久變量} =22.這時變量引擎發(fā)現(xiàn)$ {持久變量}這個變量發(fā)生更改便將$ {瞬態(tài)變量}的值記錄在變量引擎3.瞬態(tài)變量和持久化變量在賦值的時候都是將值放在變量引擎中存儲,并不是直接存儲到數(shù)據(jù)庫。4.在后面的線條或者節(jié)點上通過$ {持久變量}表達式取值.5.變量引擎發(fā)現(xiàn)流程在通過${持久變量}取值的時候,發(fā)現(xiàn)是持久變量則直接到變量引擎的環(huán)境中去獲取值,如果沒在變量引擎中獲取到值的時候則直接去數(shù)據(jù)庫查找,如果數(shù)據(jù)也沒有則直接通過配置的默認值獲取值。6.持久化變量在流程實例保存的時候才會最終保存到數(shù)據(jù)中,瞬態(tài)變量在這次操作結(jié)束后則直接釋放不存儲。本實施例中流程引擎容器其實是一個java中的線程副本,里邊可以存儲這一次請求中的數(shù)據(jù),在線程副本中我們存放了變量的Map用來存取數(shù)據(jù)變量。當請求結(jié)束的時候持久化變量會從Map中被保存到數(shù)據(jù)庫,瞬態(tài)的直接被系統(tǒng)清空掉。持久化變量通過JAVA對象序列化技術(shù)存儲在數(shù)據(jù)庫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) 瞬態(tài)變量的存取是通過表達式引擎實現(xiàn)的,當對變量$ {瞬態(tài)變量}進行賦值的時候,例如${瞬態(tài)變量}=1,則就將向流程容器中注冊一個名字叫做“瞬態(tài)變量”的變量記錄他的值為“I”。這個變量實際是 存儲在一個javaMap對象中,Key為瞬態(tài)變量;Value為“1”,取出的過程就是使用${瞬態(tài)變量},當系統(tǒng)發(fā)現(xiàn)在使用${}時會去瞬態(tài)變量的Map中查找Key為”瞬態(tài)變量”的值。而整個過程都是在一次請求的環(huán)境中(java線程副本)完成的當這次請求結(jié)束之后數(shù)據(jù)也將自動消失。持久化變量的使用存取過程是跟瞬態(tài)變量一致的,只是持久化變量在流程引擎這次請求結(jié)束后保存到數(shù)據(jù)庫,過程是這樣的跟瞬態(tài)變量一致,持久化變量在賦值之后也先會被存儲在Map中當這次流程請求結(jié)束后,引擎會遍歷一個持久化變量的維護數(shù)據(jù)并通過定義在維護數(shù)據(jù)中的變量Key去Map中尋找數(shù)據(jù)找到的話則將他保存到數(shù)據(jù)庫中。在獲取的時候先會去Map中尋找是否有值,沒有的話則直接去數(shù)據(jù)中尋找找到的話放置在Map中。人工任務(wù)是工作流中的一個節(jié)點流程圖中所展現(xiàn)的是人工任務(wù)完成之后對變量做的一個操作過程。在使用變量前,先需要對變量進行一個創(chuàng)建配置過程,要先定義變量的名稱、類型、是否需要持久化、以及變量的默認值。配置好了這些值變量才能使用。名稱為變量使用時的名字,類型標識這個變量的數(shù)據(jù)類型,是否需要持久化定義了變量是否是一個可持久化的變量,默認值定義了變量在第一次使用的時候里邊的值。在流程的表達式配置框中,可以使用如下語句獲取變量${數(shù)據(jù)變量};賦值變量$ {數(shù)據(jù)變量} =1、$ {數(shù)據(jù)變量}=,,測試數(shù)據(jù)”。在定義文件中有一個交isPersistence的屬性標識了變量是否需要持久化?!磃ixflow:DataVa;riable id=〃 持久變量 〃dataType=〃java. lang.String〃isPersistence=〃true〃>。瞬態(tài)變量處理模塊會判斷語句中是是否使用了變量操作,如果有則將變量賦值或者從流程容器中獲取變量的值,同時管理者所有的瞬態(tài)變量。持久化變量處理模塊也會判斷語句中是否使用了變量操作,如果有則將變量賦值或者從流程容器中獲取變量的值,與瞬態(tài)模塊不同持久模塊會在線程副本將要結(jié)束的時候(這次流程請求結(jié)束)會將流程容器里的持久化變量獲取出來保存到數(shù)據(jù)庫供下次使用。通過設(shè)置瞬態(tài)變量和持久化變量分別進行獲取和存儲,可以使用很簡單的語句就可以保存數(shù)據(jù)、獲取數(shù)據(jù),大大降低了開發(fā)難度,降低了錯誤率。上述實例只為說明本發(fā)明的技術(shù)構(gòu)思及特點,其目的在于讓熟悉此項技術(shù)的人是能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,并不能以此限制本發(fā)明的保護范圍。凡根據(jù)本發(fā)明精神實質(zhì)所做的等效變換或修飾,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種流程引擎中進行數(shù)據(jù)存取的系統(tǒng),其特征在于所述系統(tǒng)包括數(shù)據(jù)初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用于發(fā)現(xiàn)瞬間變量數(shù)據(jù),然后進行提供臨時存儲、獲取瞬間變量數(shù)據(jù),所述持久化變量處理模塊用于發(fā)現(xiàn)持久化變量數(shù)據(jù),然后進行提供臨時存儲、獲取持久化變量數(shù)據(jù);所述變量類型判斷模塊用于根據(jù)變量數(shù)據(jù)的數(shù)據(jù)特征進行判斷該變量數(shù)據(jù)為瞬間變量數(shù)據(jù)還是持久化變量數(shù)據(jù);所述數(shù)據(jù)初始化配置模塊用于在流程引擎中初始化變量數(shù)據(jù)的值。
2.根據(jù)權(quán)利要求I所述的流程引擎中進行數(shù)據(jù)存取的系統(tǒng),其特征在于所述系統(tǒng)還包括持久化變量數(shù)據(jù)庫,當變量類型判斷模塊判斷變量數(shù)據(jù)為持久化變量數(shù)據(jù)時,流程引擎將持久化變量數(shù)據(jù)和對應(yīng)的持久化變量名存入持久化變量數(shù)據(jù)庫中。
全文摘要
本發(fā)明公開了一種流程引擎中進行數(shù)據(jù)存取的系統(tǒng),其特征在于所述系統(tǒng)包括數(shù)據(jù)初始化配置模塊、瞬間變量處理模塊、持久化變量處理模塊和變量類型判斷模塊,所述瞬間變量處理模塊用于發(fā)現(xiàn)瞬間變量數(shù)據(jù),然后進行提供臨時存儲、獲取瞬間變量數(shù)據(jù),所述持久化變量處理模塊用于發(fā)現(xiàn)持久化變量數(shù)據(jù),然后進行提供臨時存儲、獲取持久化變量數(shù)據(jù);所述變量類型判斷模塊用于根據(jù)變量數(shù)據(jù)的數(shù)據(jù)特征進行判斷該變量數(shù)據(jù)為瞬間變量數(shù)據(jù)還是持久化變量數(shù)據(jù);所述數(shù)據(jù)初始化配置模塊用于在流程引擎中初始化變量數(shù)據(jù)的值。該系統(tǒng)通過瞬態(tài)、持久化變量處理模塊的分別處理,可以使開發(fā)人員在流程設(shè)計的時候很方便的存取變量數(shù)據(jù)(瞬態(tài)、持久化)。
文檔編號G06F17/30GK102880472SQ20121037140
公開日2013年1月16日 申請日期2012年9月28日 優(yōu)先權(quán)日2012年9月28日
發(fā)明者姜楠, 夏幫國 申請人:方正國際軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
青阳县| 克拉玛依市| 烟台市| 长子县| 遵义市| 石渠县| 永寿县| 海伦市| 古蔺县| 盐山县| 兰州市| 安远县| 封丘县| 琼海市| 溆浦县| 新密市| 山阳县| 永年县| 专栏| 高陵县| 通渭县| 塔城市| 达孜县| 古田县| 县级市| 长宁区| 吴忠市| 饶平县| 温宿县| 和龙市| 高邑县| 彰武县| 吉水县| 蒲江县| 逊克县| 壶关县| 澄江县| 鲁山县| 大余县| 饶河县| 名山县|