CN105447626A - 一种工作流变量存储方法及装置、读取方法及装置 - Google Patents
一种工作流变量存储方法及装置、读取方法及装置 Download PDFInfo
- Publication number
- CN105447626A CN105447626A CN201510771030.7A CN201510771030A CN105447626A CN 105447626 A CN105447626 A CN 105447626A CN 201510771030 A CN201510771030 A CN 201510771030A CN 105447626 A CN105447626 A CN 105447626A
- Authority
- CN
- China
- Prior art keywords
- variable
- storage
- instance
- extension columns
- workflow
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种工作流变量存储方法与装置,其将变量仅存储到流程实例变量表中。如果未存储变量实例修改了变量,不会直接将修改后的变量更新到流程实例变量表中,而是以预设格式暂存到未存储变量实例对应的实例表中的变量扩展列中。通过该存储方法和装置,使得在查询变量时,无需查询整个流程实例变量表,避免了对流程实例变量表的频繁操作,减轻了数据库的压力。同时,由于变量仅存储在流程实例变量表中,相较于现有技术,该方法和装置降低了变量的存储空间,同时保证了变量的一致性,提高了变量的访问性能。此外,本发明还提供了一种工作流变量的读取方法和装置。
Description
技术领域
本发明涉及工作流技术领域,尤其涉及一种工作流变量存储方法及装置以及工作流变量的读取方法及装置。
背景技术
工作流(Workflow)是指业务过程的部分或整体在计算机应用环境下的自动化。其是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。其表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
工作流是针对工作中具有固定程序的常规活动而提出的一个概念。通过将工作活动分解成定义良好的任务、角色、规则和过程来进行执行和监控,达到提高生产组织水平和工作效率的目的。工作流技术为企业更好地实现经营目标提供了先进的手段。
目前,工作流技术是一项飞速发展的技术,其能够为企业应用提供业务流程建模、管理和控制功能。工作流系统和业务系统的结合不仅仅是实例信息与业务数据之间的关联,其还包括很多变量的关联。其中,在工作流技术中,变量常被用于定义传输线条件、业务系统交换数据以及业务活动参与者等。因此,在工作流技术中,变量的存储方式将直接影响工作流引擎的性能以及工作流与业务的结合。
任意一个工作流在流程运行过程中均会产生三个操作级别上的实例,其分别为流程实例、节点实例和工作项。其中,节点实例从属于流程实例,工作项从属于节点实例。当前已知的变量存储方法主要有两种:
第一种、流程实例、节点实例和工作项中均存储变量数据:
这种变量存储方式虽然变量数据的存储逻辑比较清晰,各个实例获取相关变量数据的方法比较简单,但是由于同一变量数据存储在三个实例中,导致变量数据的存储占用过多的存储空间,而且,由于每一实例都有可能修改变量数据,如此也会导致在不同实例中存储的同一变量数据不一致。
第二种、仅在流程实例中存储变量数据:
这种变量存储方式虽然能够克服第一种存储方式中占用存储空间过多和变量数据不一致的问题,但是,由于流程实例、节点实例和工作项都有可能获取或修改变量,这些获取或修改操作均需要访问存储在数据库中的流程实例变量表,因而,这种方式会频繁地访问数据库,给数据库造成很大的压力。
发明内容
有鉴于此,本发明的第一方面提供了一种工作流变量的存储方法和装置,以降低变量数据占用的存储空间,保证变量数据的一致性,同时,减小数据库的压力。
基于本发明的第一方面,本发明的第二方面提供了一种工作流变量的读取方法和装置。
为了解决上述技术问题,本发明采用了如下技术方案:
一种工作流变量的存储方法,包括:
当工作流触发时,流程实例变量表存储所有变量;
在流程实例运行过程中,判断未存储变量实例是否修改了变量,如果是,将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
待所述未存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
一种工作流变量的读取方法,所述变量按照上述实施例所述的方法存储,所述读取方法包括:
获取未存储变量实例对应的实例表的变量扩展列;
判断所述变量扩展列中是否存在变量,如果是,读取存在于所述变量扩展列中的变量。
一种工作流变量存储装置,包括:
第一存储单元,用于当工作流触发时,流程实例变量表存储所有变量;
第一判断单元,用于在流程实例运行过程中,判断未存储变量实例是否修改了变量;
第二存储单元,用于当第一判断单元的判断结果为是时,将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
第一更新单元,用于待所述为存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
一种工作流变量读取装置,所述变量按照上述实施例所述的方法存储,所述读取装置包括:
第一获取单元,用于获取未存储变量实例对应的实例表的变量扩展列;
第四判断单元,用于判断所述变量扩展列中是否存在变量;
第一读取单元,用于当所述第四判断单元的判断结果为是时,读取存在于所述变量扩展列中的变量。
相较于现有技术,本发明具有以下有益效果:
通过以上技术方案可知,本发明提供的工作流变量的存储方法中,将变量仅存储到流程实例变量表中,而在节点实例和工作项中不存储变量。如果未存储变量实例修改了变量,不会直接将修改后的变量更新到流程实例变量表中,而是以预设格式暂存到该未存储变量实例对应的实例表的变量扩展列中。
通过本发明提供的工作流变量存储方法,无论是增加变量,还是修改变量值,都可以通过一个变量扩展列暂存,使得在查询变量时,无需查询整个流程实例变量表,避免了对流程实例变量表的频繁操作,减轻了数据库的压力。同时,由于变量仅存储在流程实例变量表中,相较于现有技术中同时在流程实例变量表、节点实例表和工作项表中存储变量的方法,本发明提供的方法降低了变量的存储空间,同时保证了变量的一致性,提高了变量的访问性能。
附图说明
为了清楚地理解本发明的具体实施方式,下面将描述本发明的具体实施方式时用到的附图作一简要说明。显而易见地,这些附图仅是本发明的部分实施例,本领域技术人员在未付出创造性劳动的前提下,还可以获得其它附图。
图1是本发明实施例一提供的工作流变量存储方法流程示意图;
图2是本发明实施例二提供的工作流变量存储方法流程示意图;
图3是本发明实施例三提供的工作流变量存储方法流程示意图;
图4是本发明实施例四提供的一种工作流变量读取方法流程示意图;
图5是本发明实施例四提供的另一种工作流变量读取方法流程示意图;
图6是本发明实施例五提供的工作流变量存储装置结构示意图;
图7是本发明实施例六提供的工作流变量读取装置结构示意图。
具体实施方式
为使本发明的发明目的、技术手段和技术效果更加清楚、完整,下面结合附图对本发明的具体实施方式进行描述。
需要说明的是,本发明实施例提供的工作流变量的存储方法主要针对在流程运行过程中,发生改变的变量的存储方法。在本发明实施例中,发生改变的变量也可以称为差异化变量。需要说明的是,发生改变的变量可以为新增加的变量,也可以为变量值发生变化的变量,也可以是仅执行了修改变量操作,而变量值没有发生变化的变量。
为了降低变量数据占用的存储空间,保证变量数据的一致性,同时减小数据库的压力,本发明提供的工作流变量的存储方法的核心思想是:仅存储一份变量,并且设定该变量与流程实例关联。当未存储变量实例修改了某些变量后,不会将该已经修改的变量直接存储到变量表中,而是暂存到各自对应的实例表中,在执行完相应的任务后,将存储的已经发生变化的变量更新到变量表中。
由于任意一个工作流通常包括流程实例、节点实例和工作项三个实例。为了实现本发明提供的工作流变量的存储方法,首先介绍本发明实施例中用到的存储结构。本发明实施例主要涉及以下几种存储结构:流程实例表、流程实例变量表、节点实例表和工作项表。
为了实现流程实例与变量的关联,本发明将流程实例表与流程实例变量表关联。作为一个具体实施方式,流程实例表与流程实例变量表可以通过外键实现关联。
表1示出了本发明实施例采用的流程实例变量表的结构示意图。如表1所示,流程实例变量表包括流程实例名称即流程实例ID、变量名称和变量值。在流程实例变量表中存储有所有变量,并且,在本发明实施例中,所有变量仅存储在流程实例变量表中。
表1
流程实例名称 | 变量名称 | 变量值 |
节点实例表如表2所示,为了能够将节点实例修改的变量暂存在节点实例中,该节点实例表除了包括节点实例名称外,还包括一列变量扩展列。该变量扩展列可以用于存储节点实例中已经修改的变量。
表2
节点实例名称 | …… | 节点实例变量扩展列 |
工作项表如表3所示,为了能够将工作项修改的变量暂存在工作项中,该工作项表除了包括工作项名称为,还包括一列变量扩展列,该变量扩展列可以用于存储工作项中已经修改的变量。
表3
工作项名称 | …… | 工作项变量扩展列 |
需要说明的是,表2和表3所示的节点实例表和工作项表中,是以变量扩展列为例来说明的。实际上,作为节点实例和工作项的另一种存储结构,也可以将变量扩展列替换为变量扩展行。在该变量扩展行内存储已经修改的变量。如此,同样能够达到本发明的发明目的。
基于上述实施例提供的存储结构,本发明实施例提供了一种工作流变量的存储方法。具体参见实施例一。
实施例一
图1是本发明实施例提供的工作项变量的存储方法流程示意图。如图1所示,该方法包括以下步骤:
S101、触发工作流。
S102、当工作流触发时,流程实例变量表存储所有变量。
S103、在流程实例运行过程中,判断未存储变量实例是否修改了变量,如果是,执行步骤S104:
需要说明的是,在本发明实施例中,判断未存储变量实例是否修改了变量,实际上为判断未存储变量实例操作级别上是否修改了变量。然而由于变量为未存储变量实例的一个属性,修改变量时,只需执行修改变量操作,具体地,只需调用saveVariable()接口,也就相当于未存储变量实例修改了自身的变量属性。所以,可以将未存储变量实例操作级别上是否修改了变量认为是未存储变量实例修改了变量。
需要说明的是,在本发明实施例中,修改变量包括增加新的变量和/或修改原有变量值。而且,只要执行了修改变量操作,不管修改前后的变量值是否发生变化,均认为该变量为变量值被修改的变量。
S104、将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
在本发明实施例中,预设格式可以为JSON格式(JavaScriptObjectNotation,轻量级的数据交换格式)、xml格式或无格式字符串。然而,xml格式字符串冗余较多,不适合key-value格式数据的存储,无格式字符串没有任何格式,字符串解释时不方便。
S105、待所述为存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
以上为本发明实施例提供的工作流变量存储方法的具体实施方式。通过本发明提供的工作流变量存储方法,无论是增加变量,还是修改变量值,都可以通过一个变量扩展列在暂存,使得在查询变量时,无需查询整个流程实例变量表,避免了对流程实例变量表的频繁操作,减轻了数据库的压力。同时,由于变量仅存储在流程实例变量表中,相较于现有技术中同时在流程实例变量表、节点实例表和工作项表中存储变量的方法,本发明提供的方法降低了变量的存储空间,同时保证了变量的一致性,提高了变量的访问性能。
需要说明的是,在上述实施例中,所述未存储变量实例可以为节点实例,也可以为工作项,下面分别以节点实例和工作项为例说明上述实施例的工作流变量存储的方法的具体实施方式。
首先参见未存储变量实例为节点实例时的工作流变量存储方法的具体实施方式。具体参见实施例二。
实施例二
下面结合附图对本发明实施例二提供的工作流变量的存储方法的具体实施方式进行描述。
图2是本发明实施例提供的工作流变量的存储方法流程示意图。如图2所示,该方法包括以下步骤:
S201、触发工作流。
S202、当工作流触发时,流程实例表存储流程实例信息,流程实例变量表存储所有变量,节点实例表存储节点实例信息,工作项表存储工作项信息:
需要说明的是,在本发明实施例中,当一个工作流触发时,流程实例表存储流程实例信息,流程实例变量表存储所有变量,节点实例表存储节点实例信息,工作项表存储工作项信息。需要说明的是,节点实例信息和工作项信息均不存储在对应表格的变量扩展列或扩展行中。另外,为了实现工作流系统与业务系统之间的数据传递和工作流系统引擎解析变量,需要将变量与流程实例关联起来,所以,在本发明实施例中,将流程实例表与流程实例变量表关联起来。
S203、判断节点实例是否修改了变量,如果是,执行步骤S204,如果否,执行步骤S206:
需要说明的是,在本发明实施例中,判断节点实例是否修改了变量,实际上为判断节点实例操作级别上是否修改了变量。然而由于变量为节点实例的一个属性,修改变量时,只需执行修改变量操作,具体地,只需调用saveVariable()接口,也就相当于节点实例修改了自身的变量属性。所以,可以将节点实例操作级别上是否修改了变量认为是节点实例修改了变量。
需要说明的是,在本发明实施例中,修改变量包括增加新的变量和/或修改原有变量值。而且,只要执行了修改变量操作,不管修改前后的变量值是否发生变化,均认为该变量为变量值被修改的变量。
S204、将修改后的变量以预设格式存储到该节点变量扩展列中:
在本发明实施例中,预设格式可以为JSON格式(JavaScriptObjectNotation,轻量级的数据交换格式)、xml格式或无格式字符串。然而,xml格式字符串冗余较多,不适合key-value格式数据的存储,无格式字符串没有任何格式,字符串解释时不方便。
S205、待执行完节点实例对应的任务后,将流程实例变量表中的对应变量更新为存储到所述节点实例扩展列中的修改后的变量:
S206、判断工作项是否修改了变量,如果是,执行步骤S207:
判断工作项是否修改了变量,实际上为判断工作项操作级别上是否修改了变量。然而由于变量为节点实例的一个属性,修改变量时,只需执行修改变量操作,具体地,只需调用saveVariable()接口,也就相当于工作项修改了自身的变量属性。所以,可以将工作项操作级别上是否修改了变量认为是工作项修改了变量。
需要说明的是,在本发明实施例中,修改变量包括增加新的变量和/或修改原有变量值。而且,只要执行了修改变量操作,不管修改前后的变量值是否发生变化,均认为该变量为变量值被修改的变量。
S207、将修改后的变量以预设格式存储到所述工作项变量扩展列中:
在本发明实施例中,预设格式可以为JSON格式(JavaScriptObjectNotation,轻量级的数据交换格式)、xml格式或无格式字符串。
S208、待执行完工作项对应的任务后,将流程实例变量表中的对应变量更新为存储到所述工作项扩展列中的修改后的变量。
以上为本发明实施例一提供的工作流变量的存储方法的具体实施方式。
通过本发明提供的工作流变量存储方法,无论是增加变量,还是修改变量值,都可以通过一个变量扩展列暂存,使得在查询变量时,无需查询整个流程实例变量表,避免了对流程实例变量表的频繁操作,减轻了数据库的压力。同时,由于变量仅存储在流程实例变量表中,相较于现有技术中同时在流程实例变量表、节点实例表和工作项表中存储变量的方法,本发明提供的方法降低了变量的存储空间,同时保证了变量的一致性,提高了变量的访问性能。
作为本发明的另一实施方式,上述实施例所述的未存储变量实例也可以为工作项,此时,工作流变量的存储方法的具体实现方式如下述实施例三所述。
实施例三
需要说明的是,实施例三与实施例二有诸多相似之处,为了简要起见,本发明实施例仅对其不同之处进行着重描述,其相似之处请参见实施例二的相关描述。
图3是本发明实施例三提供的工作流变量的存储方法的流程示意图。如图3所示,该方法包括以下步骤:
步骤S301至步骤S302与实施例一中的步骤S201至步骤S202相同,为了简要起见,在此不再详细描述,详细信息参见实施例二的相关描述。
S303、判断工作项是否修改了变量,如果是,执行步骤S304。
S304、将修改后的变量以预设格式存储到所述工作项变量扩展列中。
S305、待执行完工作项对应的任务后,将流程实例变量表中的对应变量更新为存储到所述工作项扩展列中的修改后的变量。
需要说明的是,步骤S303至步骤S305的具体实现方式与实施例二的步骤S206至S208相同,为了简要起见,在此不再详细描述。
需要说明的是,流程实例、节点实例和工作项分别为工作流的流程运行过程中的不同操作级别上的实例。其中,流程实例为最高操作级别上的实例,节点实例从属于流程实例,而工作项从属于节点实例。由于工作项从属于节点实例,工作项上的变量修改一定会先于节点实例上的变量修改,因此,工作项上的变量值一定为最新的变量值。所以,在本发明实施例中,先判断工作项是否修改了变量后,无需再判断节点实例是否修改了变量。因此,该实施例提供的存储方法除了具有实施例一的有益效果以外,还能够达到存储更简便的效果。
基于上述实施例提供的工作流变量存储方法,相应地,本发明还提供了一种工作流变量的读取方法。具体参见实施例四。
实施例四
需要说明的是,实施例四读取的变量是以实施例一至三任一实施例所述的存储方法存储的。图4是本发明实施例四提供的工作流变量的读取方法流程示意图。如图4所示,该方法包括以下步骤:
S401、获取未存储变量实例对应的实例表的变量扩展列。
S402、判断所述变量扩展列中是否存在变量,如果是,执行步骤S403。
S403、读取存在于所述变量扩展列中的变量。
上述所述的未存储变量实例可以为工作项。也可以为节点实例。当未存储变量实例为工作项时,上述所述的读取方法的具体实施方式如图5所示。图5是当未存储变量实例为工作项时,工作流变量读取方法的流程示意图。如图5所示,该方法包括以下步骤:
S501、获取工作项变量扩展列。
S502、判断所述工作项变量扩展列中是否存在变量,如果是,执行步骤S503;如果否,执行步骤S504。
S503、读取存在于所述工作项变量扩展列中的变量。
S504、获取节点实例变量扩展列。
S505、判断所述节点实例变量扩展列中是否存在变量,如果是,执行步骤S506,如果否,执行步骤S507。
S506、读取存在于所述节点实例扩展列中的变量。
S507、获取流程实例变量表。
S508、从所述流程实例变量表中读取变量。
以上为本发明实施例四提供的工作流变量读取方法的具体实施方式。
需要说明的是,采用实施例一至实施例三中的任一实施例所述的的变量存储方法,就决定了变量的读取可以采用“就近原则”的方式。即:工作项读取变量数据时,先从其变量扩展列上读取,如果变量扩展列中存储有变量,则变量的值一定为最新的,不再需要从其它地方获取。如果没有,则从其所属的节点实例的变量扩展列上读取。如果节点实例变量扩展列上没有,则从其所属的流程实例变量表中读取。同样,节点实例读取变量数据时,从节点实例变量扩展列上读取。如果没有,则从其所属的流程实例变量表中读取。采用这种“就近原则”的读取方式,即保证了获取的变量数据为最新的,同时也降低了数据库的访问成本,提高了查找变量数据的效率。
基于上述实施例一至三提供的工作流变量存储方法,本发明实施例还提供了工作流变量存储装置,具体参见实施例五。
实施例五
图6是本发明实施例五提供的工作流变量存储装置结构示意图。如图6所示,该方法包括以下单元:
第一存储单元61,用于当工作流触发时,流程实例变量表存储所有变量;
第一判断单元62,用于在流程实例运行过程中,判断未存储变量实例是否修改了变量;
第二存储单元63,用于当第一判断单元的判断结果为是时,将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
第一更新单元64,用于待所述为存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
作为本发明的一个具体实施例,所述未存储变量实例为工作项。
作为本发明的另一个具体实施例,所述未存储变量实例为节点实例。
当所述存储变量实例为节点实例时,
第一判断单元62用于在流程实例运行过程中,判断节点实例是否修改了变量;
第二存储单元63,用于当第一判断单元的判断结果为是时,将修改后的变量以预设格式存储到所述节点实例表的节点实例变量扩展列中;
第一更新单元64,用于待所述节点实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述节点实例变量扩展列中的修改后的变量。
此外,当所述存储变量实例为节点实例时,所述装置还可以包括:
第二判断单元65,用于当所述第一判断单元的判断结果为否时,判断工作项是否修改了变量;
第三存储单元66,用于当第二判断判断的判断结果为是时,将修改后的变量以预设格式存储到工作项表中的工作项变量扩展列中;
第二更新单元67,用于将所述流程实例变量表中的对应变量更新为存储到所述工作项扩展列中的修改后的变量。
基于上述实施例四提供的工作流变量读取方法,本发明还提供了一种工作流变量读取装置,具体参见实施例六。
实施例六
图7是本发明实施例六提供的工作流变量存储装置结构示意图,如图7所示,该装置包括以下单元:
第一获取单元71,用于获取未存储变量实例对应的实例表的变量扩展列;
第四判断单元72,用于判断所述变量扩展列中是否存在变量;
第一读取单元73,用于当所述第四判断单元的判断结果为是时,读取存在于所述变量扩展列中的变量。
作为本发明的一个具体实施例,所述未存储变量实例为工作项,也可以为节点实例。
当所述未存储变量实例为工作项时,
第一获取单元71用于获取工作项表中的工作项变量扩展列;
第四判断单元72用于判断工作项变量扩展列中是否存在变量;
第一读取单元73用于当所述第四判断单元74的判断结果为是时,读取工作项变量扩展列中的变量。
另外,当所述未存储变量实例为工作项时,所述装置还可以包括:
第二获取单元74,用于当所述第四判断单元72的判断结果为否时,获取节点实例变量扩展列;
第五判断单元75,用于判断节点实例变量扩展列中是否存在变量;
第二读取单元76,用于当所述第五判断单元75的判断结果为是时,读取存在于所述节点实例扩展列中的变量;
第三获取单元77,用于当所述第五判断单元75的判断结果为否时,获取流程实例变量表;
第三读取单元78,用于从所述流程实例变量表中读取变量。
以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制。虽然本发明以较佳实施例揭露如上,然而并非用以限定本发明。任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (14)
1.一种工作流变量的存储方法,其特征在于,所述方法包括:
当工作流触发时,流程实例变量表存储所有变量;
在流程实例运行过程中,判断未存储变量实例是否修改了变量,如果是,将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
待所述未存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
2.根据权利要求1所述的方法,其特征在于,所述未存储变量实例为工作项或节点实例。
3.根据权利要求2所述的方法,其特征在于,当所述未存储变量实例为节点实例时,所述判断未存储变量实例是否修改了变量,还包括:
如果否,判断工作项是否修改了变量,如果是,将修改后的变量以预设格式存储到工作项表中的工作项变量扩展列中;
将所述流程实例变量表中的对应变量更新为存储到所述工作项扩展列中的修改后的变量。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述预设格式为JSON格式、xml格式字符串或无格式字符串。
5.根据权利要求1-3任一项所述的方法,其特征在于,修改变量包括:增加新的变量和/或修改原有变量值。
6.一种工作流变量的读取方法,其特征在于,所述变量按照权利要求1-5任一项所述的方法存储,所述读取方法包括:
获取未存储变量实例对应的实例表的变量扩展列;
判断所述变量扩展列中是否存在变量,如果是,读取存在于所述变量扩展列中的变量。
7.根据权利要求6所述的方法,其特征在于,所述未存储变量实例为工作项或节点实例。
8.根据权利要求7所述的方法,其特征在于,当所述未存储变量实例为工作项时,所述判断所述变量扩展列中是否存在变量,还包括:
如果否,获取节点实例变量扩展列;
判断所述节点实例变量扩展列中是否存在变量,如果是,读取存在于所述节点实例扩展列中的变量;如果否,获取流程实例变量表;
从所述流程实例变量表中读取变量。
9.一种工作流变量存储装置,其特征在于,包括:
第一存储单元,用于当工作流触发时,流程实例变量表存储所有变量;
第一判断单元,用于在流程实例运行过程中,判断未存储变量实例是否修改了变量;
第二存储单元,用于当第一判断单元的判断结果为是时,将修改后的变量以预设格式存储到所述未存储变量实例对应的实例表的变量扩展列中;
第一更新单元,用于待所述为存储变量实例的任务执行结束后,将所述流程实例变量表中的对应变量更新为存储到所述变量扩展列中的修改后的变量。
10.根据权利要求9所述的装置,其特征在于,所述未存储变量实例为工作项或节点实例。
11.根据权利要求10所述的装置,其特征在于,当所述未存储变量实例为节点实例时,所述装置还包括:
第二判断单元,用于当所述第一判断单元的判断结果为否时,判断工作项是否修改了变量;
第三存储单元,用于当第二判断判断的判断结果为是时,将修改后的变量以预设格式存储到工作项表中的工作项变量扩展列中;
第二更新单元,用于将所述流程实例变量表中的对应变量更新为存储到所述工作项扩展列中的修改后的变量。
12.一种工作流变量读取装置,其特征在于,所述变量按照权利要求1-5任一项所述的方法存储,所述读取装置包括:
第一获取单元,用于获取未存储变量实例对应的实例表的变量扩展列;
第四判断单元,用于判断所述变量扩展列中是否存在变量;
第一读取单元,用于当所述第四判断单元的判断结果为是时,读取存在于所述变量扩展列中的变量。
13.根据权利要求12所述的装置,其特征在于,所述未存储变量实例为工作项。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二获取单元,用于当所述第四判断单元的判断结果为否时,获取节点实例变量扩展列;
第五判断单元,用于判断节点实例变量扩展列中是否存在变量;
第二读取单元,用于当所述第五判断单元的判断结果为是时,读取存在于所述节点实例扩展列中的变量;
第三获取单元,用于当所述第五判断单元的判断结果为否时,获取流程实例变量表;
第三读取单元,用于从所述流程实例变量表中读取变量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510771030.7A CN105447626A (zh) | 2015-11-12 | 2015-11-12 | 一种工作流变量存储方法及装置、读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510771030.7A CN105447626A (zh) | 2015-11-12 | 2015-11-12 | 一种工作流变量存储方法及装置、读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447626A true CN105447626A (zh) | 2016-03-30 |
Family
ID=55557774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510771030.7A Pending CN105447626A (zh) | 2015-11-12 | 2015-11-12 | 一种工作流变量存储方法及装置、读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447626A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010049712A1 (en) * | 2000-06-03 | 2001-12-06 | International Business Machines Corporation | Archiving in workflow management systems |
US20030018698A1 (en) * | 2001-07-18 | 2003-01-23 | Abraham Maurice Haman | Apparatus and method for workflow |
CN102043625A (zh) * | 2010-12-22 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流运行方法及系统 |
CN102831122A (zh) * | 2011-06-15 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 工作流表的数据保存方法、查询方法及装置 |
CN103559574A (zh) * | 2013-10-28 | 2014-02-05 | 东软集团股份有限公司 | 一种工作流操作方法及系统 |
-
2015
- 2015-11-12 CN CN201510771030.7A patent/CN105447626A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010049712A1 (en) * | 2000-06-03 | 2001-12-06 | International Business Machines Corporation | Archiving in workflow management systems |
US20030018698A1 (en) * | 2001-07-18 | 2003-01-23 | Abraham Maurice Haman | Apparatus and method for workflow |
CN102043625A (zh) * | 2010-12-22 | 2011-05-04 | 中国农业银行股份有限公司 | 一种工作流运行方法及系统 |
CN102831122A (zh) * | 2011-06-15 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 工作流表的数据保存方法、查询方法及装置 |
CN103559574A (zh) * | 2013-10-28 | 2014-02-05 | 东软集团股份有限公司 | 一种工作流操作方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402992B (zh) | 一种分布式NewSQL数据库系统和全文检索建立方法 | |
CN110472068A (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
CN103714097A (zh) | 一种访问数据库的方法和装置 | |
CN106407360B (zh) | 一种数据的处理方法及装置 | |
CN106294776A (zh) | 一种数据处理方法及装置 | |
CN105989015B (zh) | 一种数据库扩容方法和装置以及访问数据库的方法和装置 | |
CN109766337B (zh) | 树形结构数据的存储方法、电子设备、存储介质及系统 | |
CN112764874B (zh) | 一种基于cmdb配置管理系统的虚拟机服务器信息采集方法 | |
CN102915344B (zh) | 一种sql语句处理方法及装置 | |
CN103793475A (zh) | 一种分布式文件系统数据迁移的方法 | |
CN102654863A (zh) | 一种实时数据库历史数据组织管理方式 | |
CN104598652B (zh) | 一种数据库查询方法及装置 | |
CN108182198B (zh) | 存储先进控制器运行数据的控制装置和读取方法 | |
CN115408546A (zh) | 一种时序数据管理方法、装置、设备及存储介质 | |
CN105677805A (zh) | 一种利用protobuf的数据存储、读取方法及装置 | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
CN103793401B (zh) | 建立多个数据库表的共享索引的方法及装置 | |
EP3832477A1 (en) | Efficient storage method for time series data | |
CN108959391B (zh) | 展现数据库集群架构图的设备、系统、方法、存储介质 | |
US11080332B1 (en) | Flexible indexing for graph databases | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN104794567A (zh) | 一种基于HBase的传染病数据管理方法 | |
CN105447626A (zh) | 一种工作流变量存储方法及装置、读取方法及装置 | |
CN110489401A (zh) | 一种数据库对象的部署方法及装置 | |
CN109542860A (zh) | 基于hdfs的业务数据管理方法、终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |