CN106971293A - 一种基于activiti的业务事件与流程分离方法及*** - Google Patents
一种基于activiti的业务事件与流程分离方法及*** Download PDFInfo
- Publication number
- CN106971293A CN106971293A CN201710178569.0A CN201710178569A CN106971293A CN 106971293 A CN106971293 A CN 106971293A CN 201710178569 A CN201710178569 A CN 201710178569A CN 106971293 A CN106971293 A CN 106971293A
- Authority
- CN
- China
- Prior art keywords
- flow
- data
- activiti
- business
- module
- 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/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Strategic Management (AREA)
- Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Operations Research (AREA)
- Economics (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于activiti的业务事件与流程分离方法,该方法包括:将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;解析业务流程的XML数据,并将所解析的配置数据写入上述步骤生成的表单中。与现有技术相比,本发明将操作节点数据在数据库中结构化,通过读取结构化的数据组成具体的表单,并将业务流程的XML数据解析后写入到上述生成的表单中,可实现业务处理与流程分离,使业务在处理过程中脱离解析activiti自定义XML的流程路线,避免每次处理业务都解析XML数据,以解决因解析XML而引起的数据混乱问题,也可避免因流程异常导致业务事务处理失败的问题,且通过更改配置数据即可实现流程的更新。同时,公开了一种基于activiti的业务事件与流程分离***。
Description
技术领域
本发明涉及工作流技术,更具体地涉及一种基于activiti的业务事件与流程分离方法及***。
背景技术
Activiti是由TomBaeyens于2010年5月发布首版的Java工作流开源工具,其主要致力于对流程的管理,工作流是由若干活动任务组成的具有一定功能的任务扭转流,故其命名为Activity的复数Activities化简而得。适用业务主要包括:OA、CRM、ERP等***。
目前,activiti的流程实例都是和业务工单同时生成,即表单提交数据,同时生成流程实例。activiti的流程解析和业务与流程是绑定在一起的,使得业务与流程的耦合度太高,则解析流程任务节点时需解析整个流程的XML数据,这将导致解析缓慢,且容易出错。业务与流程的耦合度太高也可能出现数据更新不及时,因流程和工单在同一事务中处理,流程异常将导致工单提交不成功的问题,并且在网络延迟或者请求量较大的情况下,由于工单业务和流程没分离,会导致响应时间增长,极易出现处理超时失败,这成为工单业务的处理瓶颈。而且随着工单业务量的增加,activiti的引擎与工单业务集成整合的问题越来越多,有时甚至在高峰期会导致大批量的工单异常数据,给***和运营都带来了非常大的困扰。
鉴于此,有必要提供一种实现业务与流程分离的基于activiti的业务事件与流程分离方法及***以解决上述缺陷。
发明内容
本发明所要解决的技术问题是提供一种实现业务与流程分离的基于activiti的业务事件与流程分离方法以解决上述缺陷。
本发明所要解决的另一技术问题是提供一种实现业务与流程分离的基于activiti的业务事件与流程分离***以解决上述缺陷。
为解决上述技术问题,根据本发明的一个方面,提供一种基于activiti的业务事件与流程分离方法,该方法包括:
S101、将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;
S102、解析业务流程的XML数据,并将所解析的配置数据写入上述步骤生成的表单中。
其进一步技术方案为:所述基于activiti的业务事件与流程分离方法还包括:
S103、输入工单业务数据后根据提交的业务事件读取保存在数据库中的所解析的配置数据;
S104、将所读取的配置数据***到流程指令任务表中;
S105、流程定时器读取流程指令任务表数据,当读取到新***的数据时,调用流程引擎执行指令,并生成流程数据。
其进一步技术方案为:所述步骤S105还包括有:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。
为解决上述技术问题,根据本发明的另一个方面,提供一种基于activiti的业务事件与流程分离***,该***包括:一数据结构化模块以及一数据解析写入模块。其中,所述数据结构化模块,用于将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;所述数据解析写入模块,用于解析业务流程的XML数据,并将所解析的配置数据写入所述数据结构化模块生成的表单中。
其进一步技术方案为:所述基于activiti的业务事件与流程分离***还包括:一数据读取模块、一数据***模块以及一流程执行模块。其中,所述数据读取模块,用于输入工单业务数据后根据提交的业务事件读取保存在所述数据结构化模块生成的表单中的配置数据;所述数据***模块,用于将所读取的配置数据***到流程指令任务表中;所述流程执行模块,用于当流程定时器在流程指令任务表读取到新***的数据时,调用流程引擎执行指令,并生成流程数据。
其进一步技术方案为:所述流程执行模块还用于:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。
与现有技术相比,本发明将流程操作节点数据在数据库中结构化,通过读取结构化的数据组成具体的表单,并将业务流程的XML数据解析后写入到上述生成的表单中,可实现业务处理与流程分离,使得业务在处理过程中可直接读取调用数据库表单中的配置数据,脱离解析activiti自定义XML的流程路线,避免每次处理业务都解析XML数据,以解决因解析XML而引起的数据混乱问题,也可避免因流程异常导致业务事务处理失败的问题,且流程的更新和发布变得更加简单,通过更改数据库中的配置数据即可实现流程的更新。
通过以下的描述并结合附图,本发明将变得更加清晰,这些附图用于解释本发明的实施例。
附图说明
图1是本发明基于activiti的业务事件与流程分离方法一实施例的流程图。
图2是本发明基于activiti的业务事件与流程分离***一实施例的结构框图。
具体实施方式
为使本领域的普通技术人员更加清楚地理解本发明的目的、技术方案和优点,以下结合附图和实施例对本发明做进一步的阐述。
图1展示了本发明的基于activiti的业务事件与流程分离方法一实施例的流程图。如图1所示,该方法包括:
S101、将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单。
该步骤中,对操作节点数据结构化,配置到数据库中,通过读取结构化的数据可组成具体的表单,在表单加载的时候根据配置的数据可展示不同的表单模板。
S102、解析业务流程的XML数据,并将所解析的配置数据写入上述步骤生成的表单中。
现有的工作流处理方式解析流程任务节点时,必须要解析整个流程的XML数据,以获取节点流向的配置数据。而该步骤中,先解析XML数据,并将所解析的配置数据根据不同的节点写入上述步骤生成的不同表单中,当执行流程指令时直接读取调用该数据库表单中的配置数据即可,不需再重新解析XML数据,避免每次处理业务都解析XML数据,以解决因解析XML而引起的数据混乱问题。
S103、输入工单业务数据后根据提交的业务事件读取保存在数据库中的所解析的配置数据。
该步骤中,当用户在表单输入相应的工单业务数据后触发流程指令,即可根据用户提交的业务事件(例如提交工单、审批工单、撤销工单等)来读取根据流程的XML数据所解析出的保存在数据库相应表单中的配置数据。
S104、将所读取的配置数据***到流程指令任务表中。
S105、流程定时器读取流程指令任务表数据,当读取到新***的数据时,调用流程引擎执行指令,并生成流程数据。
该步骤中,流程定时器定时读取流程指令任务表中的数据,当读取到新的数据时才开始调用流程引擎执行流程指令(流程执行路线),并生成流程数据,执行完毕后将该业务事件移除到历史记录中。
本方法中若流程执行完毕后用户需要发送短信消息通知,则流程引擎将该业务事件移除到历史记录后还可执行配置的短信消息外挂事件。
上述步骤S105还包括:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。本方法中流程出现异常时流程引擎会重新执行这个流程指令,工单提交不受流程影响,实现业务处理与流程分离。
可理解地,本实施例将activiti传统的流程解析和业务与流程的绑定方式进行了改变,通过重设计使得业务与流程的耦合度极低,即通过将activiti操作节点数据结构化,读取结构化的数据组成具体的表单,且先解析业务流程的XML数据,并将所解析后的配置数据写入到上述生成的表单中,以实现业务处理与流程分离。之后,若有工单业务数据输入提交时,可根据提交的业务事件读取保存在数据库中的根据XML所解析出的配置数据,并将所读取的配置数据***到流程任务表中,此时流程并没有和业务事件同步执行,本实施例中通过流程定时器扫描流程指令任务表来确定是否需要执行流程,当扫描到流程指令任务表中有新***的数据时,才调用流程引擎,使流程引擎按照流程配置的路线,执行对应的流程指令。这个工作过程中,工单业务仅负责用户办理工单时的表单业务,流程通过定时器扫描任务表执行对应的指令,使得业务和流程可以异步进行处理,而且对于流程异常情况可以进行回滚事务处理,即重新执行这个流程指令,并不影响工单业务的提交。并且因为所有的节点流向的配置数据都已经结构化了,所以通过查询数据库的执行记录表可对流程执行过程进行实时监控。
图2展示了本发明的基于activiti的业务事件与流程分离***11一实施例的结构框图。如图2所示,该***11包括:一数据结构化模块110、一数据解析写入模块111、一数据读取模块112、一数据***模块113以及一流程执行模块114。
其中,所述数据结构化模块110用于将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;本实施例中,通过读取结构化的数据可组成具体的表单,在表单加载的时候根据配置的数据可展示不同的表单模板。所述数据解析写入模块111用于解析业务流程的XML数据,并将所解析的配置数据写入所述数据结构化模块110生成的表单中;当执行流程指令时直接读取调用该数据结构化模块110生成的表单中的配置数据即可,不需再重新解析XML数据,可避免每次处理业务都解析XML数据,以解决因解析XML而引起的数据混乱问题。所述数据读取模块112用于输入工单业务数据后根据提交的业务事件读取保存在所述数据结构化模块110生成的表单中的配置数据;当用户在表单输入相应的工单业务数据后触发流程指令,即可根据用户提交的业务事件(例如提交工单、审批工单、撤销工单等)来读取根据流程的XML数据所解析出的保存在所述数据结构化模块110生成的相应表单中的配置数据。所述数据***模块113用于将所述数据读取模块112读取的配置数据***到流程指令任务表中。所述流程执行模块114用于当流程定时器在流程指令任务表读取到新***的数据时,调用流程引擎执行指令,并生成流程数据;本实施例中,流程定时器定时读取流程指令任务表中的数据,且调用流程引擎执行指令,生成流程数据后将该业务事件移除到历史记录中,若流程执行完毕后用户需要发送短信消息通知,则流程引擎将该业务事件移除到历史记录后还可执行配置的短信消息外挂事件。
在某些实施例,例如本实施例中,所述流程执行模块114还用于:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。本实施例中,流程出现异常时流程引擎会重新执行这个流程指令,工单提交不受流程影响,实现业务处理与流程分离。
综上所述,本发明将流程操作节点数据在数据库中结构化,通过读取结构化的数据组成具体的表单,并将业务流程的XML数据解析后写入到上述生成的表单中,可实现业务处理与流程分离,使得业务在处理过程中可直接读取调用数据库表单中的配置数据,脱离解析activiti自定义XML的流程路线,避免每次处理业务都解析XML数据,以解决因解析XML而引起的数据混乱问题,也可避免因流程异常导致业务事务处理失败的问题,且流程的更新和发布变得更加简单,通过更改数据库中的配置数据即可实现流程的更新。
以上所述仅为本发明的优选实施例,而非对本发明做任何形式上的限制。本领域的技术人员可在上述实施例的基础上施以各种等同的更改和改进,凡在权利要求范围内所做的等同变化或修饰,均应落入本发明的保护范围之内。
Claims (6)
1.一种基于activiti的业务事件与流程分离方法,其特征在于,所述基于activiti的业务事件与流程分离方法包括:
S101、将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;
S102、解析业务流程的XML数据,并将所解析的配置数据写入上述步骤生成的表单中。
2.如权利要求1所述的基于activiti的业务事件与流程分离方法,其特征在于,所述分离方法还包括:
S103、输入工单业务数据后根据提交的业务事件读取保存在数据库中的所解析的配置数据;
S104、将所读取的配置数据***到流程指令任务表中;
S105、流程定时器读取流程指令任务表数据,当读取到新***的数据时,调用流程引擎执行指令,并生成流程数据。
3.如权利要求2所述的基于activiti的业务事件与流程分离方法,其特征在于,所述步骤S105还包括有:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。
4.一种基于activiti的业务事件与流程分离***,其特征在于,该***包括:一数据结构化模块以及一数据解析写入模块;其中,
所述数据结构化模块,用于将activiti操作节点数据结构化,并配置到数据库中以生成不同的表单;
所述数据解析写入模块,用于解析业务流程的XML数据,并将所解析的配置数据写入所述数据结构化模块生成的表单中。
5.如权利要求4所述的基于activiti的业务事件与流程分离***,其特征在于,所述分离***还包括:一数据读取模块、一数据***模块以及一流程执行模块;其中,
所述数据读取模块,用于输入工单业务数据后根据提交的业务事件读取保存在所述数据结构化模块生成的表单中的配置数据;
所述数据***模块,用于将所读取的配置数据***到流程指令任务表中;
所述流程执行模块,用于当流程定时器在流程指令任务表读取到新***的数据时,调用流程引擎执行指令,并生成流程数据。
6.如权利要求5所述的基于activiti的业务事件与流程分离***,其特征在于,所述流程执行模块还用于:若调用流程引擎执行指令时流程出现异常,则重新执行该流程指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710178569.0A CN106971293A (zh) | 2017-03-23 | 2017-03-23 | 一种基于activiti的业务事件与流程分离方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710178569.0A CN106971293A (zh) | 2017-03-23 | 2017-03-23 | 一种基于activiti的业务事件与流程分离方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106971293A true CN106971293A (zh) | 2017-07-21 |
Family
ID=59329868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710178569.0A Pending CN106971293A (zh) | 2017-03-23 | 2017-03-23 | 一种基于activiti的业务事件与流程分离方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106971293A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472442A (zh) * | 2018-09-27 | 2019-03-15 | 深圳供电局有限公司 | 一种工单的自动化处理***和方法 |
CN109615323A (zh) * | 2018-12-04 | 2019-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种Activiti流程与业务的分离方法以及*** |
CN113535684A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983313A (zh) * | 2006-04-07 | 2007-06-20 | 华为技术有限公司 | 工作流数据处理装置及方法 |
CN101840335A (zh) * | 2010-04-16 | 2010-09-22 | 广州白云国际机场股份有限公司 | 一种可配置业务模块的J2EE web应用*** |
CN103455325A (zh) * | 2013-07-24 | 2013-12-18 | 北京起步科技有限公司 | 一种基于业务模型的架构平台 |
CN104850665A (zh) * | 2015-06-12 | 2015-08-19 | 江苏中威科技软件***有限公司 | 通过流程嵌套实现流程流转的方法及*** |
CN104978622A (zh) * | 2014-04-11 | 2015-10-14 | 携程计算机技术(上海)有限公司 | 业务流程管理***及方法 |
CN105046408A (zh) * | 2015-06-25 | 2015-11-11 | 国网山东省电力公司 | 一种可配置工作流的实现方法及*** |
-
2017
- 2017-03-23 CN CN201710178569.0A patent/CN106971293A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983313A (zh) * | 2006-04-07 | 2007-06-20 | 华为技术有限公司 | 工作流数据处理装置及方法 |
CN101840335A (zh) * | 2010-04-16 | 2010-09-22 | 广州白云国际机场股份有限公司 | 一种可配置业务模块的J2EE web应用*** |
CN103455325A (zh) * | 2013-07-24 | 2013-12-18 | 北京起步科技有限公司 | 一种基于业务模型的架构平台 |
CN104978622A (zh) * | 2014-04-11 | 2015-10-14 | 携程计算机技术(上海)有限公司 | 业务流程管理***及方法 |
CN104850665A (zh) * | 2015-06-12 | 2015-08-19 | 江苏中威科技软件***有限公司 | 通过流程嵌套实现流程流转的方法及*** |
CN105046408A (zh) * | 2015-06-25 | 2015-11-11 | 国网山东省电力公司 | 一种可配置工作流的实现方法及*** |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109472442A (zh) * | 2018-09-27 | 2019-03-15 | 深圳供电局有限公司 | 一种工单的自动化处理***和方法 |
CN109472442B (zh) * | 2018-09-27 | 2022-03-04 | 深圳供电局有限公司 | 一种工单的自动化处理***和方法 |
CN109615323A (zh) * | 2018-12-04 | 2019-04-12 | 厦门市美亚柏科信息股份有限公司 | 一种Activiti流程与业务的分离方法以及*** |
CN113535684A (zh) * | 2021-07-26 | 2021-10-22 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
CN113535684B (zh) * | 2021-07-26 | 2024-02-27 | 北京计算机技术及应用研究所 | 一种基于Activiti的自主指挥控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8938421B2 (en) | Method and a system for synchronizing data | |
CN111400011B (zh) | 一种实时任务调度方法、***、设备及可读存储介质 | |
US8301935B2 (en) | Distributed batch runner | |
CN102929585B (zh) | 一种支持多主机分布式数据处理的批处理方法及*** | |
CN104021043B (zh) | 批量应用程序的中断重入方法及*** | |
CN102637214A (zh) | 基于数据库服务间的通用数据同步方法及其*** | |
CN106971293A (zh) | 一种基于activiti的业务事件与流程分离方法及*** | |
US8538793B2 (en) | System and method for managing real-time batch workflows | |
CN110727539A (zh) | 批处理任务中的异常处理方法、***及电子设备 | |
WO2010031302A1 (zh) | 一种业务***日志文件的清理方法及*** | |
CN111125106B (zh) | 一种跑批任务执行方法、装置、服务器和存储介质 | |
CN106126403A (zh) | Oracle数据库故障分析方法和装置 | |
CN109298962A (zh) | 定时任务的监控方法、计算机可读存储介质和终端设备 | |
CN112035230A (zh) | 一种任务调度文件生成方法、装置及存储介质 | |
CN113094362A (zh) | 一种异步消息可靠投递和处理的方法和装置 | |
CN107798111B (zh) | 一种分布式环境中大批量导出数据的方法 | |
CN115185787A (zh) | 处理事务日志的方法及装置 | |
CN111741080B (zh) | 网络文件分发方法及装置 | |
CN116467085A (zh) | 任务处理方法、***、电子设备及存储介质 | |
CN115617480A (zh) | 一种任务调度方法、装置、***及存储介质 | |
WO2022253165A1 (zh) | 调度方法、***、服务器和计算机可读存储介质 | |
CN110765148B (zh) | 一种业务数据处理方法及装置 | |
US20180341521A1 (en) | Managing job schedules | |
CN101256491A (zh) | 基于工作流的可信软件过程的定义方法 | |
CN111488335A (zh) | 基于规则的数据自动修复方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170721 |