CN102880472B - 流程引擎中进行数据存取的系统 - Google Patents
流程引擎中进行数据存取的系统 Download PDFInfo
- Publication number
- CN102880472B CN102880472B CN201210371404.2A CN201210371404A CN102880472B CN 102880472 B CN102880472 B CN 102880472B CN 201210371404 A CN201210371404 A CN 201210371404A CN 102880472 B CN102880472 B CN 102880472B
- Authority
- CN
- China
- Prior art keywords
- variable
- data
- persistence
- engine
- transient state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000002688 persistence Effects 0.000 claims abstract description 62
- 230000001052 transient effect Effects 0.000 claims abstract description 42
- 238000012545 processing Methods 0.000 claims abstract description 22
- 230000014509 gene expression Effects 0.000 claims description 7
- 230000008859 change Effects 0.000 claims description 6
- 238000000034 method Methods 0.000 abstract description 39
- 230000008569 process Effects 0.000 abstract description 31
- 238000013461 design Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种流程引擎中进行数据存取的系统,其特征在于所述系统包括数据初始化配置模块、瞬间变量处理模块、持久化变量处理模块和变量类型判断模块,所述瞬间变量处理模块用于发现瞬间变量数据,然后进行提供临时存储、获取瞬间变量数据,所述持久化变量处理模块用于发现持久化变量数据,然后进行提供临时存储、获取持久化变量数据;所述变量类型判断模块用于根据变量数据的数据特征进行判断该变量数据为瞬间变量数据还是持久化变量数据;所述数据初始化配置模块用于在流程引擎中初始化变量数据的值。该系统通过瞬态、持久化变量处理模块的分别处理,可以使开发人员在流程设计的时候很方便的存取变量数据(瞬态、持久化)。
Description
技术领域
本发明属于流程引擎数据处理技术领域,具体涉及一种流程引擎中进行数据存取的系统。
背景技术
现在流程产品在流程流转过程中过于需要保存过程数据用于后续线条、节点计算的时候往往采用调用java代码、执行数据库等繁琐的方式来存储变量,在后续线条、节点上又通过上述复杂方法获取回变量值,这样的做法会大大降低开发效率,加大出错机率,并且有些时候只是开发人员只是想临时记录下某个变量值,在后续的节点上使用,并不希望将这些数据持久化。
现有技术需要保存流程变量需要在流程设计器里配置相应的java、sql代码把变量存储到数据库中,这种方法只对于需要持久化的变量有效,但是只是临时保存在下面节点或者线条使用的时候就需要存放在数据库中使用完了再删除这样的实现方法对于开发人员要求太高很容易出错。大大流程引擎的使用简易度,同时加大了流程的设计开发时间。
在流程的流转中常常需要用一些变量存放一些计算信息返回的信息供下面的节点或者线条使用,怎样才能很方便的记录流程的计算信息并且在后面的节点或者线条上方便的使用这就是本专利要解决的问题。本发明因此而来。
发明内容
本发明目的在于提供一种流程引擎中进行数据存取的系统,解决了现有技术中记录流程的计算信息难以在后面的节点或者线条上方便的使用等问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种流程引擎中进行数据存取的系统,其特征在于所述系统包括数据初始化配置模块、瞬间变量处理模块、持久化变量处理模块和变量类型判断模块,所述瞬间变量处理模块用于发现瞬间变量数据,然后进行提供临时存储、获取瞬间变量数据,所述持久化变量处理模块用于发现持久化变量数据,然后进行提供临时存储、获取持久化变量数据;所述变量类型判断模块用于根据变量数据的数据特征进行判断该变量数据为瞬间变量数据还是持久化变量数据;所述数据初始化配置模块用于在流程引擎中初始化变量数据的值。
优选的,所述系统还包括持久化变量数据库,当变量类型判断模块判断变量数据为持久化变量数据时,流程引擎将持久化变量数据和对应的持久化变量名存入持久化变量数据库中。
本发明大大简化了变量数据的存储和取出过程,流程设计人员可以使用很简单的语句完成对流程变量的保存和获取,非专业人员页可以参与其中设计流程,大大提高了流程设计的友好度。
在本发明技术方案中,可以使用这样的简单语句存取变量,例如保存方法:${瞬态变量}=”提交人”;而获取方法:${瞬态变量},这样可以使开发人员在流程设计的时候很方便的存取变量数据(瞬态、持久化),比起现有产品在流程设计的时候配置大量语句去实现变量的记录,数据处理大大简化。
本发明技术方案中变量数据用户需要在使用前配置变量的数据类型、是否持久化。
相对于现有技术中的方案,本发明的优点是:
本发明通过在流程设计器中配置Sql来存储流程变量,通过在流程设计器中扩展java代码来保存数据变量,通过瞬态、持久化变量处理模块的分别处理,可以使开发人员在流程设计的时候很方便的存取变量数据(瞬态、持久化)。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明流程引擎中进行数据存取的系统进行数据存取的流程原理图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
如图1所示,本实施例流程引擎中进行数据存取的系统,包括数据初始化配置模块、瞬间变量处理模块、持久化变量处理模块和变量类型判断模块,所述瞬间变量处理模块用于发现瞬间变量数据,然后进行提供临时存储、获取瞬间变量数据,所述持久化变量处理模块用于发现持久化变量数据,然后进行提供临时存储、获取持久化变量数据;所述变量类型判断模块用于根据变量数据的数据特征进行判断该变量数据为瞬间变量数据还是持久化变量数据;所述数据初始化配置模块用于在流程引擎中初始化变量数据的值。
为了能够方便的使用流程变量,首先需要配置变量:
瞬态变量:
持久变量:
以上是数据变量XML格式在定义数据变量的时候需要注明是否可以持久化。定义好名称之后就可以在流程引擎中使用变量了。
瞬态变量实现过程:
1.在流程中对数据变量做出更改执行表达式${瞬态变量}=1
2.这时变量引擎发现${瞬态变量}这个变量发生更改便将${瞬态变量}的值记录在变量引擎
3.在后面的线条或者节点上通过${瞬态变量}表达式取值.
4.变量引擎发现流程在通过${瞬态变量}取值的时候,发现是瞬态变量则直接到变量引擎的环境中去获取值,当发现变量引擎中如果没有注册过${瞬态变量}则会去从配置文件获取默认值配置的值。
持久化变量实现过程:
在流程中对数据变量做出更改执行表达式${持久变量}=2
2.这时变量引擎发现${持久变量}这个变量发生更改便将${瞬态变量}的值记录在变量引擎
3.瞬态变量和持久化变量在赋值的时候都是将值放在变量引擎中存储,并不是直接存储到数据库。
4.在后面的线条或者节点上通过${持久变量}表达式取值.
5.变量引擎发现流程在通过${持久变量}取值的时候,发现是持久变量则直接到变量引擎的环境中去获取值,如果没在变量引擎中获取到值的时候则直接去数据库查找,如果数据也没有则直接通过配置的默认值获取值。
6.持久化变量在流程实例保存的时候才会最终保存到数据中,瞬态变量在这次操作结束后则直接释放不存储。
本实施例中流程引擎容器其实是一个java中的线程副本,里边可以存储这一次请求中的数据,在线程副本中我们存放了变量的Map用来存取数据变量。当请求结束的时候持久化变量会从Map中被保存到数据库,瞬态的直接被系统清空掉。
持久化变量通过JAVA对象序列化技术存储在数据库FIXFLOW_RUN_VARIABLE表中表的格式如下:
PROCESSINSTANCE_IDVARCHAR2(64BYTE);
VARIABLE_KEYVARCHAR2(64BYTE);
VARIABLE_VALUEBLOB(这个字段用来存储变量值);
VARIABLE_CLASSNAMEVARCHAR2(64BYTE);
TASKINSTANCE_IDVARCHAR2(64BYTE);
TOKEN_IDVARCHAR2(64BYTE);
NODE_IDVARCHAR2(512BYTE)。
瞬态变量的存取是通过表达式引擎实现的,当对变量${瞬态变量}进行赋值的时候,例如:${瞬态变量}=1,则就将向流程容器中注册一个名字叫做“瞬态变量”的变量记录他的值为“1”。这个变量实际是存储在一个javaMap对象中,Key为瞬态变量;Value为“1”,取出的过程就是使用${瞬态变量},当系统发现在使用${}时会去瞬态变量的Map中查找Key为”瞬态变量”的值。而整个过程都是在一次请求的环境中(java线程副本)完成的当这次请求结束之后数据也将自动消失。
持久化变量的使用存取过程是跟瞬态变量一致的,只是持久化变量在流程引擎这次请求结束后保存到数据库,过程是这样的:跟瞬态变量一致,持久化变量在赋值之后也先会被存储在Map中当这次流程请求结束后,引擎会遍历一个持久化变量的维护数据并通过定义在维护数据中的变量Key去Map中寻找数据找到的话则将他保存到数据库中。
在获取的时候先会去Map中寻找是否有值,没有的话则直接去数据中寻找找到的话放置在Map中。
人工任务是工作流中的一个节点流程图中所展现的是人工任务完成之后对变量做的一个操作过程。在使用变量前,先需要对变量进行一个创建配置过程,要先定义变量的名称、类型、是否需要持久化、以及变量的默认值。配置好了这些值变量才能使用。
名称为变量使用时的名字,类型标识这个变量的数据类型,是否需要持久化定义了变量是否是一个可持久化的变量,默认值定义了变量在第一次使用的时候里边的值。
在流程的表达式配置框中,可以使用如下语句:
获取变量:${数据变量};
赋值变量:${数据变量}=1、${数据变量}=”测试数据”。
在定义文件中有一个交isPersistence的属性标识了变量是否需要持久化。<fixflow:DataVariableid="持久变量"dataType="java.lang.String"isPersistence="true">。
瞬态变量处理模块会判断语句中是是否使用了变量操作,如果有则将变量赋值或者从流程容器中获取变量的值,同时管理者所有的瞬态变量。持久化变量处理模块也会判断语句中是否使用了变量操作,如果有则将变量赋值或者从流程容器中获取变量的值,与瞬态模块不同持久模块会在线程副本将要结束的时候(这次流程请求结束)会将流程容器里的持久化变量获取出来保存到数据库供下次使用。通过设置瞬态变量和持久化变量分别进行获取和存储,可以使用很简单的语句就可以保存数据、获取数据,大大降低了开发难度,降低了错误率。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (6)
1.一种流程引擎中进行数据存取的系统,其特征在于所述系统包括数据初始化配置模块、瞬间变量处理模块、持久化变量处理模块、变量类型判断模块和变量引擎,所述瞬间变量处理模块用于发现瞬间变量数据,然后进行提供临时存储、获取瞬间变量数据,所述持久化变量处理模块用于发现持久化变量数据,然后进行提供临时存储、获取持久化变量数据;所述变量类型判断模块用于根据变量数据的数据特征进行判断该变量数据为瞬间变量数据还是持久化变量数据;所述数据初始化配置模块用于在流程引擎中初始化变量数据的值;所述变量引擎,当在流程引擎中对瞬态变量/持久化变量做出更改时,变量引擎发现瞬态变量/持久化变量变化,并记录变化内容;
当变量引擎发现流程引擎在对持久化变量进行取值时,发现是持久化变量时则直接到变量引擎的环境中去获取值;如果没在变量引擎中获取到值的时候则直接去数据库查找;
当变量引擎发现流程引擎在对瞬态变量取值,如发现是瞬态变量则直接到变量引擎的环境中去获取值;当发现变量引擎中如果没有注册过瞬态变量,则会去从配置文件获取默认值配置的值。
2.根据权利要求1所述的流程引擎中进行数据存取的系统,其特征在于所述系统还包括持久化变量数据库,当变量类型判断模块判断变量数据为持久化变量数据时,流程引擎将持久化变量数据和对应的持久化变量名存入持久化变量数据库中。
3.根据权利要求1所述的流程引擎中进行数据存取的系统,其特征在于所述瞬态变量和持久化变量在赋值的时候均将值放在变量引擎中存储。
4.根据权利要求1所述的流程引擎中进行数据存取的系统,其特征在于所述持久化变量在流程引擎实例化保存的时候保存到数据中,瞬态变量在操作结束后则直接释放。
5.根据权利要求1所述的流程引擎中进行数据存取的系统,其特征在于所述瞬态变量的存取是通过表达式引擎实现。
6.根据权利要求1所述的流程引擎中进行数据存取的系统,其特征在于所述变量在使用前,先对变量进行一个创建配置过程,要先定义变量的名称、类型、是否需要持久化、以及变量的默认值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371404.2A CN102880472B (zh) | 2012-09-28 | 2012-09-28 | 流程引擎中进行数据存取的系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371404.2A CN102880472B (zh) | 2012-09-28 | 2012-09-28 | 流程引擎中进行数据存取的系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102880472A CN102880472A (zh) | 2013-01-16 |
CN102880472B true CN102880472B (zh) | 2016-01-27 |
Family
ID=47481811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371404.2A Active CN102880472B (zh) | 2012-09-28 | 2012-09-28 | 流程引擎中进行数据存取的系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880472B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216906A (zh) * | 2007-12-29 | 2008-07-09 | 中国建设银行股份有限公司 | 一种流程控制方法及一种流程引擎 |
CN101640694A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 生成简单对象访问协议消息的方法及流程引擎 |
CN101751356A (zh) * | 2008-12-18 | 2010-06-23 | 国际商业机器公司 | 用于改进直接存储器存取传送效率的方法、系统和装置 |
CN101789092A (zh) * | 2009-01-22 | 2010-07-28 | 国际商业机器公司 | 业务流程管理方法协同工作的系统和方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8091019B2 (en) * | 2009-01-22 | 2012-01-03 | International Business Machines Corporation | Supporting variable data structures and constant data structures in a hardware-based extensible markup language (XML) post processing engine (PPE) |
-
2012
- 2012-09-28 CN CN201210371404.2A patent/CN102880472B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216906A (zh) * | 2007-12-29 | 2008-07-09 | 中国建设银行股份有限公司 | 一种流程控制方法及一种流程引擎 |
CN101640694A (zh) * | 2008-07-30 | 2010-02-03 | 国际商业机器公司 | 生成简单对象访问协议消息的方法及流程引擎 |
CN101751356A (zh) * | 2008-12-18 | 2010-06-23 | 国际商业机器公司 | 用于改进直接存储器存取传送效率的方法、系统和装置 |
CN101789092A (zh) * | 2009-01-22 | 2010-07-28 | 国际商业机器公司 | 业务流程管理方法协同工作的系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102880472A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108536761B (zh) | 报表数据查询方法及服务器 | |
CN104573115B (zh) | 支持多类型数据库操作的集成接口的实现方法及系统 | |
JP6118515B2 (ja) | 連想メモリ更新のためのシステム | |
US20120174194A1 (en) | Role setting apparatus, and role setting method | |
Qin et al. | A strategy for raster-based geocomputation under different parallel computing platforms | |
CN106844682B (zh) | 数据交换方法、装置及系统 | |
US20080028333A1 (en) | Method and system for portable data aggregation | |
CN106611037A (zh) | 用于分布式图计算的方法与设备 | |
WO2016076906A1 (en) | Testing insecure computing environments using random data sets generated from characterizations of real data sets | |
CN107484003B (zh) | 电视列表数据局部刷新方法、存储介质、电子设备及系统 | |
EP2965492B1 (en) | Selection of data storage settings for an application | |
Dou et al. | Scientific workflow design 2.0: Demonstrating streaming data collections in Kepler | |
CN112463986A (zh) | 信息存储的方法及装置 | |
CN103778239A (zh) | 一种多数据库数据管理方法及系统 | |
CN106557307A (zh) | 业务数据的处理方法及处理系统 | |
CN109992956A (zh) | 容器的安全策略的处理方法和相关装置 | |
KR101790766B1 (ko) | 데이터의 검색 방법, 장치 및 단말기 | |
JP2006216027A (ja) | 同じアイテムを表すデータ構造間で生データを転送するメカニズム | |
CN106844369A (zh) | 对象化sql语句构造方法及装置 | |
US10032204B2 (en) | System and method for synthetic ideation | |
CN105637542B (zh) | 信息处理装置及信息处理方法 | |
CN107729330A (zh) | 获取数据集的方法和装置 | |
CN106161516A (zh) | 用于存储数据的方法、装置以及系统 | |
US11023465B2 (en) | Cross-asset data modeling in multi-asset databases | |
CN102880472B (zh) | 流程引擎中进行数据存取的系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |