CN110717073A - 云流程平台中结合业务数据实现流程查询处理的系统及其方法 - Google Patents

云流程平台中结合业务数据实现流程查询处理的系统及其方法 Download PDF

Info

Publication number
CN110717073A
CN110717073A CN201910948623.4A CN201910948623A CN110717073A CN 110717073 A CN110717073 A CN 110717073A CN 201910948623 A CN201910948623 A CN 201910948623A CN 110717073 A CN110717073 A CN 110717073A
Authority
CN
China
Prior art keywords
service
data
business
query
database
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.)
Granted
Application number
CN201910948623.4A
Other languages
English (en)
Other versions
CN110717073B (zh
Inventor
刘相
王葱权
顾伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Original Assignee
PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by PRIMETON INFORMATION TECHNOLOGY Co Ltd filed Critical PRIMETON INFORMATION TECHNOLOGY Co Ltd
Priority to CN201910948623.4A priority Critical patent/CN110717073B/zh
Publication of CN110717073A publication Critical patent/CN110717073A/zh
Application granted granted Critical
Publication of CN110717073B publication Critical patent/CN110717073B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Abstract

本发明涉及一种云流程平台中结合业务数据实现流程查询处理的系统,包括业务数据定义模块,用于针对每个流程定义单独的业务数据表;业务数据存储变更管理模块,用于创建业务数据库表,将流程上下文数据自动同步到业务数据库表;业务数据查询模块,用于根据提供的基于XML结构的查询语法进行业务查询。本发明还涉及一种实现云流程平台中结合业务数据的流程查询处理方法。采用了本发明的云流程平台中结合业务数据实现流程查询处理的系统及其方法,实现了便捷高效的结合业务数据查询流程、任务的方式,降低结合业务查询开发的复杂度,屏蔽不同数据库之间查询SQL的差异,提升流程业务应用的一致性;另外还具有支撑大中型企业海量数据流程查询的要求等。

Description

云流程平台中结合业务数据实现流程查询处理的系统及其 方法
技术领域
本发明涉及业务流程管理领域,尤其涉及业务查询流程领域,具体是指一种云流程平台中结合业务数据实现流程查询处理的系统及其方法。
背景技术
随着信息化的发展,越来越多的公司采用工作流的方式来实现工作过程的自动化、智能化、整合化。工作流是指“业务过程的部分或整体在计算机应用环境下的自动化”,工作流主要解决的问题是:为了实现某个业务目标,利用计算机在多个参与者之间按某种预定规则自动传递文档、信息或者任务。
云流程平台是采用云中部署流程平台的方式提供大规模、海量的流程支撑能力。在云流程平台中,流程平台与业务应用有两种部署模式:1)嵌入部署模式,指流程平台与业务应用一起部署对外提供服务,两者使用同一个数据源,适用于业务访问量较小的应用场景;2)独立部署模式,指流程平台与应用系统独立部署,两者分别使用不同的数据源,应用系统记录业务数据,流程平台记录流程数据,应用系统可以通过流程平台提供的服务接口查询流程数据,适用于大中型企业的流程支撑,比如金融领域的信贷审批、移动运营商领域的ERP等。
但是在很多实际的流程业务场景查询中,通常都需要业务数据和流程数据的联合查询,流程查询的条件和结果都会包括业务数据。特别是在独立式部署的场景下,结合业务数据实现查询流程、任务的需求,对于提升云流程平台业务易用性非常重要。
针对结合应用系统中的业务数据查询流程、任务的场景中,根据不同的部署架构模式,常见的实现技术有两种:
一、嵌入式部署模式:即业务应用与流程平台部署在一起,两者使用同一个数据源。
在该模式下,因为业务应用的业务数据与流程平台的流程数据在同一个数据源下,通常采用数据库的联合查询来实现。
1)业务应用将业务记录入库,同时在业务表中增加流程实例ID字段;
2)流程平台将流程数据入库;
3)根据指定的业务条件,使用标准的SQL同时查询业务库与流程库;
SQL语句实现:select[要查询的流程实例、任务]from[业务表表名,流程表表名]where[业务表表名.流程实例ID=流程表表名.流程实例ID and业务表表名.业务字段=业务字段条件and...]。
二、独立式部署模式:即业务应用与流程平台独立部署,两者分别使用不同的数据源。
在该模式下,因为业务应用的业务数据与流程平台的流程数据在不同的数据源,通常采用XA(一种两阶段提交的分布式事务)的数据源来实现数据提交;然后分别对业务应用使用的数据库、流程平台使用的数据库分开查询。
1)定义数据源为XA(一种强一致性分布式事务实现方式)数据源;
2)业务应用将业务记录入库,同时在业务表中增加流程实例ID字段;
3)流程平台将流程数据入库;
4)从业务应用的数据库中,根据业务条件查询出流程实例ID;
SQL语句实现:select[流程实例Id]from[业务表表名]where[业务表表名.业务字段=业务字段条件and...];
5)根据步骤4)查询的流程实例ID,再到流程表中查询对应的流程、任务信息;
SQL语句实现:select[要查询的流程实例、任务信息]from[流程表表名]where[流程表表名.流程实例ID=步骤4)查询出的流程实例ID and...]。
以下针对上面的两种方式分析对应的不足:
方案一:
不足1:业务表需要关联流程实例ID,导致业务表与流程表强耦合,降低了系统的移植性;
不足2:开发复杂,开发人员需要了解大量业务应用信息,在进行结合业务应用查询时候,需要从大量无关的业务字段中选择出需要使用的业务字段,并且需要了解不同数据库的SQL语法;
不足3:业务应用与流程平台部署在同一个进程中,两者使用同一个数据源,容易造成数据库瓶颈,适用于业务访问量较小的应用场景,无法满足大中型企业的海量业务流程查询场景。
方案二:
不足1:业务表需要关联流程实例ID,导致业务表与流程表强耦合,降低了系统的移植性;
不足2:开发复杂,开发人员需要了解大量业务应用信息,在进行结合业务应用查询时候,需要从大量无关的业务字段中选择出需要使用的业务字段,并且需要了解不同数据库的SQL语法;
不足3:业务应用与流程平台采用两个数据源,需要多次查询,降低了查询效率;
不足4:由于采用XA的数据源,使用强一致性的事务方案,会导致数据入库性能慢,无法满足大型企业的海量业务场景。
发明内容
本发明的目的是克服了上述现有技术的缺点,提供了一种满足开发难度低、开发效率高、操作简便的云流程平台中结合业务数据实现流程查询处理的系统及其方法。
为了实现上述目的,本发明的云流程平台中结合业务数据实现流程查询处理的系统及其方法如下:
该云流程平台中结合业务数据实现流程查询处理的系统,其主要特点是,所述的系统包括:
业务数据定义模块,用于针对每个流程定义单独的业务数据表,并在运行期存储在流程数据库中;
业务数据存储变更管理模块,与所述的业务数据定义模块相连接,用于创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
业务数据查询模块,与所述的业务数据存储变更管理模块相连接,用于根据提供的基于XML结构的查询语法进行业务查询。
较佳地,所述的业务数据定义模块包括业务查询属性页,与所述的业务数据存储变更管理模块相连接,用于配置需结合业务查询的字段和表。
较佳地,所述的业务数据存储变更管理模块包括:
业务表创建单元,与所述的业务数据定义模块相连接,用于根据定义的业务数据表信息,在对应的数据库中自动生成业务表;
数据同步单元,与所述的业务表创建单元相连接,用于根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将对应的值保存到对应的业务数据表;
业务表转历史单元,与所述的数据同步单元相连接,用于将业务数据表中的数据与流程表数据转入历史库。
该利用上述系统实现云流程平台中结合业务数据的流程查询处理方法,其主要特点是,所述的方法包括以下步骤:
(1)所述的业务数据定义模块针对结合业务查询的场景,在流程定义期针对每个流程定义单独的业务数据表,并在运行期存储在流程平台使用的流程数据库中;
(2)所述的业务数据存储变更管理模块创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
(3)所述的业务数据查询模块根据提供的基于XML结构的查询语法进行业务查询。
较佳地,所述的步骤(2)具体包括以下步骤:
(2.1)所述的业务表创建单元根据业务数据定义模块中定义的业务数据表信息,在流程运行期对应的数据库中自动生成业务表;
(2.2)所述的数据同步单元根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将所述的XPath路径上对应的值保存到对应的业务数据表中;
(2.3)所述的业务表转历史单元将业务数据表中的数据与流程表数据转入历史库中。
较佳地,所述的步骤(2.1)具体包括以下步骤:
(2.1.1)所述的业务表创建单元将流程定义中设置的业务查询表及字段信息的XML文件内容解析为Java对象;
(2.1.2)所述的业务表创建单元根据生成的Java对象生成对应的业务表数据库脚本;
(2.1.3)所述的业务表创建单元为业务表自动增加流程实例ID字段,用以将业务表与流程实例ID关联,同时该字段作为业务表的主键;
(2.1.4)所述的业务表创建单元将生成的业务表的数据库脚本自动执行,在数据库中生成业务表;
(2.1.5)所述的业务表创建单元根据生成的Java对象生成对应的业务历史表数据库脚本;
(2.1.6)所述的业务表创建单元为业务历史表自动增加流程实例ID字段,用以将业务历史表与流程实例ID关联,同时该字段作为该业务历史表的主键;
(2.1.7)所述的业务表创建单元将生成的业务历史表的数据库脚本自动执行,在数据库中生成业务历史表。
较佳地,所述的步骤(2.2)具体包括以下步骤:
(2.2.1)所述的数据同步单元更新流程上下文;
(2.2.2)所述的数据同步单元监听流程上下文数据的变更;
(2.2.3)所述的数据同步单元根据当前操作的流程定义,查找出当前流程对应的业务表、业务表所有的业务字段,以及业务字段对应流程上下文中的XPath;
(2.2.4)所述的数据同步单元根据所有的XPath从流程上下文中取出对应的业务字段值;
(2.2.5)所述的数据同步单元根据字段名和字段值,生成数据库脚本并判断当前流程实例对应的业务表中是否有记录,如果是,则生成更新数据库脚本;否则,则生成新增数据库脚本;
(2.2.6)流程平台执行数据库脚本,并将数据持久化到数据库中。
较佳地,所述的步骤(2.3)具体包括以下步骤:
(2.3.1)所述的业务表转历史单元完成流程实例;
(2.3.2)所述的业务表转历史单元根据流程实例ID查找对应业务记录;
(2.3.3)所述的业务表转历史单元根据查找的业务记录,在业务历史表中增加一条记录;
(2.3.4)所述的业务表转历史单元根据流程实例ID删除业务表记录。
采用了本发明的云流程平台中结合业务数据实现流程查询处理的系统及其方法,由于针对每个流程定义了单独的业务表、并存储在流程平台的数据库中、通过监听流程上下文的变化并自动从流程上下文中抽取对应的业务字段数据实时更新到业务表中、流程执行完成后自动将业务数据转存到业务历史表、提供基于XML格式的业务查询方法,从而实现了便捷高效的结合业务数据查询流程、任务的方式;同时通过业务应用与流程应用的解耦,降低结合业务查询开发的复杂度,提升开发效率,屏蔽不同数据库之间查询SQL的差异,提升流程业务应用的一致性;另外还具有支撑大中型企业海量数据流程查询的要求等。
附图说明
图1为本发明的云流程平台中结合业务数据实现流程查询处理的系统的构成图。
图2为本发明的创建业务数据库表的步骤流程图。
图3为本发明的将流程上下文数据自动同步到业务数据库表的步骤流程图。
图4为本发明的业务表转历史库的步骤流程图。
图5为本发明的金融领域实施例的流程图。
具体实施方式
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
如图1所示,本发明的该云流程平台中结合业务数据实现流程查询处理的系统,其中包括:
业务数据定义模块,用于针对每个流程定义单独的业务数据表,并在运行期存储在流程数据库中;
业务数据存储变更管理模块,与所述的业务数据定义模块相连接,用于创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
业务数据查询模块,与所述的业务数据存储变更管理模块相连接,用于根据提供的基于XML结构的查询语法进行业务查询。
作为本发明的优选实施方式,所述的业务数据定义模块包括业务查询属性页,与所述的业务数据存储变更管理模块相连接,用于配置需结合业务查询的字段和表。
作为本发明的优选实施方式,所述的业务数据存储变更管理模块包括:
业务表创建单元,与所述的业务数据定义模块相连接,用于根据定义的业务数据表信息,在对应的数据库中自动生成业务表;
数据同步单元,与所述的业务表创建单元相连接,用于根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将对应的值保存到对应的业务数据表;
业务表转历史单元,与所述的数据同步单元相连接,用于将业务数据表中的数据与流程表数据转入历史库。
本发明的该利用上述系统实现云流程平台中结合业务数据的流程查询处理方法,其中包括以下步骤:
(1)所述的业务数据定义模块针对结合业务查询的场景,在流程定义期针对每个流程定义单独的业务数据表,并在运行期存储在流程平台使用的流程数据库中;
(2)所述的业务数据存储变更管理模块创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
(2.1)所述的业务表创建单元根据业务数据定义模块中定义的业务数据表信息,在流程运行期对应的数据库中自动生成业务表;
(2.1.1)所述的业务表创建单元将流程定义中设置的业务查询表及字段信息的XML文件内容解析为Java对象;
(2.1.2)所述的业务表创建单元根据生成的Java对象生成对应的业务表数据库脚本;
(2.1.3)所述的业务表创建单元为业务表自动增加流程实例ID字段,用以将业务表与流程实例ID关联,同时该字段作为业务表的主键;
(2.1.4)所述的业务表创建单元将生成的业务表的数据库脚本自动执行,在数据库中生成业务表;
(2.1.5)所述的业务表创建单元根据生成的Java对象生成对应的业务历史表数据库脚本;
(2.1.6)所述的业务表创建单元为业务历史表自动增加流程实例ID字段,用以将业务历史表与流程实例ID关联,同时该字段作为该业务历史表的主键;
(2.1.7)所述的业务表创建单元将生成的业务历史表的数据库脚本自动执行,
在数据库中生成业务历史表;
(2.2)所述的数据同步单元根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将所述的XPath路径上对应的值保存到对应的业务数据表中;
(2.2.1)所述的数据同步单元更新流程上下文;
(2.2.2)所述的数据同步单元监听流程上下文数据的变更;
(2.2.3)所述的数据同步单元根据当前操作的流程定义,查找出当前流程对应的业务表、业务表所有的业务字段,以及业务字段对应流程上下文中的XPath;
(2.2.4)所述的数据同步单元根据所有的XPath从流程上下文中取出对应的业务字段值;
(2.2.5)所述的数据同步单元根据字段名和字段值,生成数据库脚本并判断当前流程实例对应的业务表中是否有记录,如果是,则生成更新数据库脚本;否则,
则生成新增数据库脚本;
(2.2.6)流程平台执行数据库脚本,并将数据持久化到数据库中;
(2.3)所述的业务表转历史单元将业务数据表中的数据与流程表数据转入历史库中;
(2.3.1)所述的业务表转历史单元完成流程实例;
(2.3.2)所述的业务表转历史单元根据流程实例ID查找对应业务记录;
(2.3.3)所述的业务表转历史单元根据查找的业务记录,在业务历史表中增加一条记录;
(2.3.4)所述的业务表转历史单元根据流程实例ID删除业务表记录;
(3)所述的业务数据查询模块根据提供的基于XML结构的查询语法进行业务查询。
本发明的具体实施方式中,涉及一种云流程平台中结合业务数据实现查询流程的方法,其中包括开发期对流程定义业务查询表、业务查询字段、以及业务查询字段与流程上下文中的XPath的映射关系;运行期对配置的业务查询表、业务查询字段及业务查询字段与流程上下文中的XPath的映射关系进行解析,并实时监听流程上下文的创建、设置、更新,将对应的流程上下文数据实时更新到业务表中,将业务数据与对应的流程实例建立关联;使用期提供对开发人员结构友好的XML格式的查询语法。采用该种结构的云流程平台中结合业务数据实现查询流程的方法,业务开发人员避免了大量的代码开发,通过简单的配置使的开发结合业务数据查询流程的过程更加直观、简单和高效,快捷方便,系统运行效率较高,降低了开发维护的成本,在流程领域具有更广泛的适用范围。
本发明涉及业务流程管理领域,特别涉及业务流程管理中结合业务查询流程领域,具体是指云流程平台中结合业务数据实现查询流程的方法。
本发明针对云流程平台中结合业务数据实现查询流程的场景,主要实现以下目的:通过将流程数据与业务数据自动整合的模式,减少开发复杂度,提升开发效率;通过提供XML结构的业务化查询方式,屏蔽不同的数据库差异,让用户快速便利获取结合业务查询的流程数据。业务应用开发的业务表不再关联流程实例,将业务应用与流程解耦,提升业务应用的移植性。通过将需要查询的业务数据通过冗余的方式与流程数据整合在一起的方式,在支持独立式部署的基础上实现同数据源的跨库查询,支持大中型企业海量流程数据查询要求。
本发明分为业务数据定义模块、业务数据存储变更管理模块、业务数据查询模块。
业务数据定义模块是在流程定义中增加业务数据表的绑定,主要涉及绑定业务表名,业务表字段信息(字段名、数据类型、数据长度、描述信息、对应流程上下文数据区的XPath路径),用来维护流程定义与对应的业务表之间的关系。业务数据存储变更管理模块首先根据业务数据定义模块中定义的业务数据表信息,在流程运行期在流程平台对应的数据库中自动生成业务表(如果业务表已经存在,则忽略);同时流程平台会自动监听流程上下文数据的变更并自动同步到业务数据表中,具体形式为流程执行期间会传入的流程需要的业务上下文信息,该模块根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,自动将该XPath路径上对应的值保存到对应的业务数据表中;在流程执行完毕后,业务数据表中的数据与流程表数据一起转入历史库中,提升流程平台的执行效率。业务数据查询模块主要提供了一套基于XML结构的业务化的查询语法,包括and(并且)、or(或)、expr(简单条件表达式),和多种操作符,支持业务化的便捷查询流程、任务数据。
下面将详细描述业务数据定义模块、业务数据存储变更管理模块、业务数据查询模块。
一、业务数据定义模块:
针对云平台中结合业务查询的场景,不再使用业务应用中的业务表,在流程定义期针对每个流程定义单独的业务数据表,并在运行期存储在流程平台使用的流程数据库中。在流程定义上新增结合业务查询属性页,在该页面配置该流程下需要结合业务查询的字段以及表等基本信息。
结合业务查询属性页具体属性字段说明如下表:
属性字段 描述
业务表名 流程定义绑定的业务表对应的表名
字段名 业务表字段的名称
数据类型 业务表字段对应的数据类型,支持String、Int、Long、Date、Decimal
数据长度 业务表字段的长度
XPath 业务表字段对应流程上下文中的XPath路径
描述信息 业务表字段的描述信息
结合业务查询属性在流程定义中对应的Schema描述如下表:
Figure BDA0002225022770000091
二:业务数据存储变更管理模块
业务数据存储变更管理模块主要提供3部分功能:
1)首先根据业务数据定义模块中定义的业务数据表信息,在流程运行期在流程平台对应的数据库中自动生成业务表(如果业务表已经存在,则忽略);
2)在流程运行期,流程平台会自动监听流程上下文数据的变更并自动同步到业务数据表中,具体形式为流程执行期间会传入的流程需要的业务上下文信息,该模块根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,自动将该XPath路径上对应的值保存到对应的业务数据表中;
3)在流程执行完毕后,业务数据表中的数据与流程表数据一起转入历史库中,提升流程平台的执行效率。
以下分别说明:
1)创建业务数据库表:根据定义的结合业务查询属性信息,操作的步骤如图2所示。
步骤说明:
步骤1:将流程定义中设置的业务查询表及字段信息的XML文件内容解析为Java对象;
步骤2:根据生成的Java对象生成对应的业务表数据库脚本;生成的数据库脚本示例如下:
CREATE TABLE[业务表名称](
[业务表字段1][业务表字段1类型][业务表字段1长度],
[业务表字段2][业务表字段2类型][业务表字段2长度],
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
步骤3:为业务表自动增加流程实例ID字段,用以将业务表与流程实例ID关联,同时该字段作为该业务表的主键;添加流程实例ID后,数据库脚本示例如下:
CREATE TABLE[业务表名称](
PROCESSINSTID decimal(20,0)DEFAULT'0'NOT NULL,
[业务表字段1][业务表字段1类型][业务表字段1长度],
[业务表字段2][业务表字段2类型][业务表字段2长度],
PRIMARY KEY(PROCESSINSTID))ENGINE=InnoDB DEFAULT CHARSET=utf8;
步骤4:将步骤3中生成的业务表的数据库脚本自动执行,在数据库中生成业务表;
步骤5:根据生成的Java对象生成对应的业务历史表数据库脚本;生成的数据库脚本示例如下:
CREATE TABLE[业务表名称_History](
[业务表字段1][业务表字段1类型][业务表字段1长度],
[业务表字段2][业务表字段2类型][业务表字段2长度],
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
步骤6:为业务历史表自动增加流程实例ID字段,用以将业务历史表与流程实例ID关联,同时该字段作为该业务历史表的主键;添加流程实例ID后,数据库脚本示例如下:
CREATE TABLE[业务表名称_History](
PROCESSINSTID decimal(20,0)DEFAULT'0'NOT NULL,
[业务表字段1][业务表字段1类型][业务表字段1长度],
[业务表字段2][业务表字段2类型][业务表字段2长度],
PRIMARY KEY(PROCESSINSTID))ENGINE=InnoDB DEFAULT CHARSET=utf8;
步骤7:将步骤6中生成的业务历史表的数据库脚本自动执行,在数据库中生成业务历史表。
2)将流程上下文数据自动同步到业务数据库表:流程上下文数据自动同步到业务数据库表的操作步骤如图3所示。
步骤说明:
步骤1:用户通过流程平台API更新流程上下文,流程上下文中包含需要查询的业务数据、也包含流程流转规则和参与者规则需要的业务数据;
步骤2:流程平台监听流程上下文数据的变更;
步骤3:根据当前操作的流程定义,查找出当前流程对应的业务表、业务表所有的业务字段,以及业务字段对应流程上下文中的XPath;
步骤4:根据所有的XPath从流程上下文中取出对应的业务字段值;
步骤5:根据字段名和字段值,生成数据库脚本;首先判断当前流程实例对应的业务表中是否有记录,如果有业务记录则生成更新数据库脚本,如果没有业务记录则生成新增数据库脚本;生成的数据库脚本如下:
//对应新增数据库脚本
insert into[业务表表名](PROCESSINSTID,业务表字段1,业务表字段2)value(流程实例ID,value1,value2);
//对应更新数据库脚本
update from[业务表表名]set业务表字段1=value1,业务表字段2=value2where PROCESSINSTID=[流程实例ID]
步骤6:流程平台执行步骤5生成的数据库脚本,将数据持久化到数据库中。
3)业务表转历史:业务表转历史的操作步骤如图4所示2
步骤说明:
步骤1:用户通过流程平台API完成流程实例,流程实例处于完成状态;
步骤2:根据完成的流程实例ID,在业务表中根据流程实例ID查找对应业务记录;对应的数据库脚本如下:
select*from[业务表表名]where PROCESSINSTID=流程实例ID;
步骤3:根据步骤2查找的业务记录,在业务历史表中增加一条记录;对应的数据库脚本如下:
insert into[业务表表名_History](PROCESSINSTID,业务表字段1,业务表字段2)value(流程实例ID,value1,value2);
步骤4:根据完成的流程实例ID,在业务表中删除当前业务记录;对应的数据库脚本如下:
delete from[业务表表名_History]where PROCESSINSTID=流程实例ID;
三、业务数据查询模块
业务数据查询模块主要提供了一套基于XML结构的业务化的查询语法,基于该语法用户可以在不了解SQL的情况下实现便捷的结合业务查询功能,同时屏蔽了不同数据库的差异。
XML结构的业务化查询语法对应的Schema描述如下所示:
Figure BDA0002225022770000111
Figure BDA0002225022770000121
Figure BDA0002225022770000131
业务查询条件criteria的格式描述如下表:
Figure BDA0002225022770000141
操作符的具体描述参见下表:
表达式 描述 数据库符号 value节点个数
eq 等于 1
gt 大于 > 1
ge 大于等于 >= 1
lt 小于 < 1
le 小于等于 <= 1
ne 不等于 != 1
in 在……范围内 in 1-n
notin 不在……范围内 not in 1-n
like 模糊查询like like 1
notlike 模糊查询not like not like 1
between 在……区间 between and 2
null is null 0
notnull 非空 is not null 0
技术解决方案小结:通过对本发明技术解决方案三个组成部分的介绍,本发明的关键处理在于针对每个流程定义了单独的业务表,并存储在流程平台的数据库中,通过监听流程上下文的变化,自动从上下文中抽取对应的业务字段实时更新到业务表中(避免了所有业务数据都同步到业务表中),并提供了基于XML格式的业务查询方法,屏蔽不同数据库的实现,最为关键的是还实现了同数据库的业务与流程的联合查询,支持大中型企业的海量数据查询。
本发明有以金融领域的个人信贷业务为例的具体实施例,下文以此来说明本发明的实现方式。
金融领域的个人信贷通常是以全国集中模式建设的计算机应用系统,实现个人贷款业务的受理、审查审批、发放、计息、回收、贷后管理、会计核算等功能。通常具有较大的用户访问量和海量的贷款数据查询,是典型需要结合贷款人的业务信息来查询流程、任务的信息,具有典型的场景代表性。
本部分将采用个贷系统中的个贷流程作为典型示例,个贷流程典型包括如下几个环节:贷款调查、贷款审核、贷款审批、贷款放行四个环节,具体的流程图如图5所示。
个贷流程审核中,业务操作人员通常需要根据贷款人的身份证号、贷款人的姓名、贷款人的信用等级、贷款人的年龄等维度来查询需要处理的流程实例、流程任务,方便快速及时的为客户办理贷款业务。
接下来,根据本发明的方法,按照贷款人的业务信息来实现结合业务查询流程的业务场景,将会明显感受到本发明所具有的简单便利的优势。
一、业务数据定义
根据上面场景定义的业务信息,在流程定义中声明需要使用的业务表为Credit_Account,用于存放具体的业务数据信息。同时声明业务表Credit_Account中的业务字段如下:
Figure BDA0002225022770000151
个贷流程定义中将会新增如下的XML数据片段信息,参见下表:
Figure BDA0002225022770000152
可以看到,只需要为每个流程定义一套独立的业务表,在流程运行期流程平台会自动完成业务表的初始化操作,业务开发人员不需要为业务数据的保存与更新做任何的代码开发工作,流程平台会根据流程上下文中的数据自动完成业务数据的保存工作。
二、业务数据存储变更管理:
自动生成业务数据库表:
流程平台针对个贷流程定义的业务表,在流程定义加载阶段解析配置的业务数据并生成数据库表的生成脚本,包括业务表和业务历史表。生成的数据库脚本如下表:
CREATE TABLE Credit_Account(
PROCESSINSTID decimal(20,0)DEFAULT'0'NOT NULL,
idNumber varchar(20),
name varchar(12),
age decimal(4,0),
grade decimal(2,0),
PRIMARY KEY(PROCESSINSTID))ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Credit_Account_History(
PROCESSINSTID decimal(20,0)DEFAULT'0'NOT NULL,
idNumber varchar(20),
name varchar(12),
age decimal(4,0),
grade decimal(2,0),
PRIMARY KEY(PROCESSINSTID))ENGINE=InnoDB DEFAULT CHARSET=utf8;
发起流程API,并自动生成业务表数据:
用户使用流程平台提供的启动流程API来发起个贷流程,并传入对应的业务数据到流程上下文中,此过程中涉及到的代码和脚本如下:
//启动流程实例,并传入流程上下文信息
long createProcessInstance(String userID,String processDefName,StringprocessInstName,String processInstDesc,boolean isStart,String context)
其中参数context是流程实例上下文参数,在本例中传入的流程上下文数据如下表:
<account>
<idNumber>310***************</idNumber>
<name>测试用户</name>
<age>20</age>
<grade>5</grade>
<birthday>1999-1-1</birthday>
</account>
此时个贷流程产生了流程实例ID为1000000000001的流程实例。流程平台监听到当前流程定义绑定了业务表,并且有流程上下文数据,流程平台自动在业务表Credit_Account中增加一条业务记录数据,记录的业务数据如下表:
PROCESSINSTID idNumber name age grade
1000000000001 310*************** 测试用户 20 5
后续针对流程实例ID为1000000000001的流程上下文数据如果存在变更,流程平台会更新业务表Credit_Account中的业务数据,而不会重新插入,保证业务数据的最新有效性。
业务表数据自动转历史:
流程实例ID为1000000000001的流程执行完成后,流程平台会自动将业务表Credit_Account中PROCESSINSTID=1000000000001的数据转移到历史表Credit_Account_History中,同时会清除掉业务表Credit_Account中PROCESSINSTID=1000000000001的业务数据,记录的业务数据如下表:
PROCESSINSTID idNumber name age grade
1000000000001 310*************** 测试用户 20 5
三:业务数据查询
业务数据查询模块提供基于XML的业务化的查询语法,用户使用贷款人姓名进行查询,具体的业务查询条件为name=‘测试用户’and idNumber=‘310***************’的组合条件,精准查询该用户的贷款审批流程执行情况和需要处理的工作项,在查询出的数据中需要包括贷款人的信用等级、贷款人的年龄等业务信息。
此过程中涉及到的代码如下:
List<WorkItem>queryPersonWorkItemsWithCriteria(java.lang.StringuserID,java.lang.String criteria,PageCond pagecond)
其中参数java.lang.String criteria表示业务查询条件,在本例中criteria的具体查询条件如下:
Figure BDA0002225022770000171
流程平台自动会根据上面的业务查询条件,执行如下的SQL来查询待处理的工作项,具体SQL参见下表:
select wfi.wfworkitemid,wfi.wfworkitemname,wfi.workitemurl,ca.age,ca.grade from Credit_Account as ca,WFWorkItemInstance as wfi whereca.PROCESSINSTID=wfi.PROCESSINSTID and ca.name='测试用户'and ca.idNumber='310***************'
按照以上实施步骤,根据业务需求完成了结合业务数据实现查询流程、任务。从而实现了便捷高效的结合业务数据查询流程、任务的方式;同时通过业务应用与流程应用的解耦,降低结合业务查询开发的复杂度,提升开发效率,屏蔽不同数据库之间查询SQL的差异,提升流程业务应用的一致性;另外还具有支撑大中型企业海量数据流程查询的要求等。
采用了本发明的云流程平台中结合业务数据实现流程查询处理的系统及其方法,由于针对每个流程定义了单独的业务表、并存储在流程平台的数据库中、通过监听流程上下文的变化并自动从流程上下文中抽取对应的业务字段数据实时更新到业务表中、流程执行完成后自动将业务数据转存到业务历史表、提供基于XML格式的业务查询方法,从而实现了便捷高效的结合业务数据查询流程、任务的方式;同时通过业务应用与流程应用的解耦,降低结合业务查询开发的复杂度,提升开发效率,屏蔽不同数据库之间查询SQL的差异,提升流程业务应用的一致性;另外还具有支撑大中型企业海量数据流程查询的要求等。
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。

Claims (8)

1.一种云流程平台中结合业务数据实现流程查询处理的系统,其特征在于,所述的系统包括:
业务数据定义模块,用于针对每个流程定义单独的业务数据表,并在运行期存储在流程数据库中;
业务数据存储变更管理模块,与所述的业务数据定义模块相连接,用于创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
业务数据查询模块,与所述的业务数据存储变更管理模块相连接,用于根据提供的基于XML结构的查询语法进行业务查询。
2.根据权利要求1所述的云流程平台中结合业务数据实现流程查询处理的系统,其特征在于,所述的业务数据定义模块包括业务查询属性页,与所述的业务数据存储变更管理模块相连接,用于配置需结合业务查询的字段和表。
3.根据权利要求1所述的云流程平台中结合业务数据实现流程查询处理的系统,其特征在于,所述的业务数据存储变更管理模块包括:
业务表创建单元,与所述的业务数据定义模块相连接,用于根据定义的业务数据表信息,在对应的数据库中自动生成业务表;
数据同步单元,与所述的业务表创建单元相连接,用于根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将对应的值保存到对应的业务数据表;
业务表转历史单元,与所述的数据同步单元相连接,用于将业务数据表中的数据与流程表数据转入历史库。
4.一种基于权利要求1所述的系统实现云流程平台中结合业务数据的流程查询处理方法,其特征在于,所述的方法包括以下步骤:
(1)所述的业务数据定义模块针对结合业务查询的场景,在流程定义期针对每个流程定义单独的业务数据表,并在运行期存储在流程平台使用的流程数据库中;
(2)所述的业务数据存储变更管理模块创建业务数据库表,将流程上下文数据自动同步到业务数据库表,并将数据转入历史库;
(3)所述的业务数据查询模块根据提供的基于XML结构的查询语法进行业务查询。
5.根据权利要求4所述的实现云流程平台中结合业务数据的流程查询处理方法,其特征在于,所述的步骤(2)具体包括以下步骤:
(2.1)所述的业务表创建单元根据业务数据定义模块中定义的业务数据表信息,在流程运行期对应的数据库中自动生成业务表;
(2.2)所述的数据同步单元根据对应流程定义上定义的业务字段信息及对应流程上下文数据区的XPath路径,将所述的XPath路径上对应的值保存到对应的业务数据表中;
(2.3)所述的业务表转历史单元将业务数据表中的数据与流程表数据转入历史库中。
6.根据权利要求5所述的实现云流程平台中结合业务数据的流程查询处理方法,其特征在于,所述的步骤(2.1)具体包括以下步骤:
(2.1.1)所述的业务表创建单元将流程定义中设置的业务查询表及字段信息的XML文件内容解析为Java对象;
(2.1.2)所述的业务表创建单元根据生成的Java对象生成对应的业务表数据库脚本;
(2.1.3)所述的业务表创建单元为业务表自动增加流程实例ID字段,用以将业务表与流程实例ID关联,同时该字段作为业务表的主键;
(2.1.4)所述的业务表创建单元将生成的业务表的数据库脚本自动执行,在数据库中生成业务表;
(2.1.5)所述的业务表创建单元根据生成的Java对象生成对应的业务历史表数据库脚本;
(2.1.6)所述的业务表创建单元为业务历史表自动增加流程实例ID字段,用以将业务历史表与流程实例ID关联,同时该字段作为该业务历史表的主键;
(2.1.7)所述的业务表创建单元将生成的业务历史表的数据库脚本自动执行,在数据库中生成业务历史表。
7.根据权利要求5所述的实现云流程平台中结合业务数据的流程查询处理方法,其特征在于,所述的步骤(2.2)具体包括以下步骤:
(2.2.1)所述的数据同步单元更新流程上下文;
(2.2.2)所述的数据同步单元监听流程上下文数据的变更;
(2.2.3)所述的数据同步单元根据当前操作的流程定义,查找出当前流程对应的业务表、业务表所有的业务字段,以及业务字段对应流程上下文中的XPath;
(2.2.4)所述的数据同步单元根据所有的XPath从流程上下文中取出对应的业务字段值;
(2.2.5)所述的数据同步单元根据字段名和字段值,生成数据库脚本并判断当前流程实例对应的业务表中是否有记录,如果是,则生成更新数据库脚本;否则,则生成新增数据库脚本;
(2.2.6)流程平台执行数据库脚本,并将数据持久化到数据库中。
8.根据权利要求5所述的实现云流程平台中结合业务数据的流程查询处理方法,其特征在于,所述的步骤(2.3)具体包括以下步骤:
(2.3.1)所述的业务表转历史单元完成流程实例;
(2.3.2)所述的业务表转历史单元根据流程实例ID查找对应业务记录;
(2.3.3)所述的业务表转历史单元根据查找的业务记录,在业务历史表中增加一条记录;
(2.3.4)所述的业务表转历史单元根据流程实例ID删除业务表记录。
CN201910948623.4A 2019-10-08 2019-10-08 云流程平台中结合业务数据实现流程查询处理的系统及其方法 Active CN110717073B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910948623.4A CN110717073B (zh) 2019-10-08 2019-10-08 云流程平台中结合业务数据实现流程查询处理的系统及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910948623.4A CN110717073B (zh) 2019-10-08 2019-10-08 云流程平台中结合业务数据实现流程查询处理的系统及其方法

Publications (2)

Publication Number Publication Date
CN110717073A true CN110717073A (zh) 2020-01-21
CN110717073B CN110717073B (zh) 2024-02-06

Family

ID=69212181

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910948623.4A Active CN110717073B (zh) 2019-10-08 2019-10-08 云流程平台中结合业务数据实现流程查询处理的系统及其方法

Country Status (1)

Country Link
CN (1) CN110717073B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339186A (zh) * 2020-02-19 2020-06-26 平安科技(深圳)有限公司 工作流引擎数据同步方法、装置、介质及电子设备
CN113220802A (zh) * 2021-05-28 2021-08-06 山东英信计算机技术有限公司 一种关系型数据库下大数据量的数据处理方法及系统
CN114297330A (zh) * 2021-12-28 2022-04-08 北京达美盛软件股份有限公司 一种数据地图生成方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160104A1 (en) * 2004-01-20 2005-07-21 Datasource, Inc. System and method for generating and deploying a software application
CN103488694A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 业务数据查询装置和业务数据查询方法
CN109840256A (zh) * 2019-03-05 2019-06-04 山东浪潮通软信息科技有限公司 一种基于业务实体的查询实现方法
CN110083605A (zh) * 2019-04-24 2019-08-02 天津中新智冠信息技术有限公司 业务表查询方法、装置、服务器及计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050160104A1 (en) * 2004-01-20 2005-07-21 Datasource, Inc. System and method for generating and deploying a software application
CN103488694A (zh) * 2013-09-02 2014-01-01 用友软件股份有限公司 业务数据查询装置和业务数据查询方法
CN109840256A (zh) * 2019-03-05 2019-06-04 山东浪潮通软信息科技有限公司 一种基于业务实体的查询实现方法
CN110083605A (zh) * 2019-04-24 2019-08-02 天津中新智冠信息技术有限公司 业务表查询方法、装置、服务器及计算机可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王战英;王占宏;: "基于元数据的分布式通用查询系统研究与实现" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111339186A (zh) * 2020-02-19 2020-06-26 平安科技(深圳)有限公司 工作流引擎数据同步方法、装置、介质及电子设备
CN111339186B (zh) * 2020-02-19 2022-09-30 平安科技(深圳)有限公司 工作流引擎数据同步方法、装置、介质及电子设备
CN113220802A (zh) * 2021-05-28 2021-08-06 山东英信计算机技术有限公司 一种关系型数据库下大数据量的数据处理方法及系统
CN114297330A (zh) * 2021-12-28 2022-04-08 北京达美盛软件股份有限公司 一种数据地图生成方法及装置

Also Published As

Publication number Publication date
CN110717073B (zh) 2024-02-06

Similar Documents

Publication Publication Date Title
US6434558B1 (en) Data lineage data type
US7533136B2 (en) Efficient implementation of multiple work areas in a file system like repository that supports file versioning
US8160999B2 (en) Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation
US6343295B1 (en) Data lineage
US8577927B2 (en) Producing a virtual database from data sources exhibiting heterogeneous schemas
KR101083488B1 (ko) 객체 모델의 영향 분석
US7562102B1 (en) Extensible handling of new or modified data within an independent distributed database system
US7930312B2 (en) System for consolidating data from distributed databases
JP5171932B2 (ja) カスタマのアクティビティを統合、管理、および調整するためのシステムおよび方法
US7457817B2 (en) Versioning in an integration platform
CN110717073B (zh) 云流程平台中结合业务数据实现流程查询处理的系统及其方法
US7822710B1 (en) System and method for data collection
US20030126152A1 (en) Export engine which builds relational database directly from object model
CN109087004B (zh) 一种基于领域模型的公共工作流引擎系统
US20060259470A1 (en) Apparatus, system, and method for map definition generation
US7831614B2 (en) System and method for generating SQL using templates
US9229971B2 (en) Matching data based on numeric difference
KR20060045622A (ko) 컴퓨터화된 재무 시스템의 추출, 변환 및 로딩 설계자 모듈
WO2003083700A1 (en) Micro edition dynamic object- driven database manipulation and mapping system
CN107291471B (zh) 一种支持可定制化数据采集的元模型框架系统
CN111158792B (zh) 分布式架构下实现动态可配置的服务参数校验处理系统及其方法
CN111062684B (zh) 云流程平台下实现业务数据与流程数据一致性处理的系统及其方法
KR20200092095A (ko) 관계형 데이터베이스의 DML문장을 NoSQL 데이터베이스로 동기화하기 위한 트랜잭션 제어 방법
CN116048987A (zh) 流程业务的处理方法、装置、电子设备、系统和存储介质
US20080235045A1 (en) Workflow management system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant