CN110298630A - 一种工作流引擎 - Google Patents
一种工作流引擎 Download PDFInfo
- Publication number
- CN110298630A CN110298630A CN201910564577.8A CN201910564577A CN110298630A CN 110298630 A CN110298630 A CN 110298630A CN 201910564577 A CN201910564577 A CN 201910564577A CN 110298630 A CN110298630 A CN 110298630A
- Authority
- CN
- China
- Prior art keywords
- task
- flow
- aggregation
- swimming lane
- node
- 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
- 238000000034 method Methods 0.000 claims abstract description 52
- 230000008569 process Effects 0.000 claims abstract description 44
- 230000009182 swimming Effects 0.000 claims abstract description 36
- 230000002776 aggregation Effects 0.000 claims abstract description 26
- 238000004220 aggregation Methods 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000013507 mapping Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 abstract description 3
- 238000005111 flow chemistry technique Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 241000239290 Araneae Species 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- 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
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Economics (AREA)
- General Engineering & Computer Science (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种工作流引擎,属于大数据技术领域,包括设立开始事件、自动处理任务、泳道配置任务、第一聚合节点、第二聚合节点、数个用户任务、分派活动、集合点任务和事件结束,自动处理任务为JAVA服务任务,泳道配置任务和集合点任务均为脚本任务;第一聚合节点和第二聚合节点均为排他网关,解决了使开发人员不需要再了解BPMN2.0每个组件的含义,只需要根据流程图自动生成工具或者在原来的基础模板流程图上做少量改动,即可编写出任何业务流程,本发明的流程引擎处理逻辑可以和业务代码进行解耦,流程引擎专注处理流程相关任务,业务服务专注于业务逻辑。
Description
技术领域
本发明属于大数据技术领域,尤其涉及一种工作流引擎。
背景技术
工作流引擎是指workflow作为应用***的一部分,并为之提供对各应用***有决定作用的根据角色、分工和条件的不同决定信息传递路由、内容等级等核心解决方案。工作流引擎包括流程的节点管理、流向管理、流程样例管理等重要功能。
目前的工作流引擎的业务流程图的编写方式,是根据目前的业务流程按流程流转顺序逐个画出每个流程节点,在根据节点的工作流流向,画出流程环节与环节之间的连线,然后在业务代码中根据每个流程具体的业务编写每个业务具体的流程业务代码。
现有技术存在以下缺点:
1、如图1所示,流程图编写复杂,如果流程图的流转比较复杂,那么流程图画起来就非常繁琐,有可能形成蛛网一样的复杂结构。
2、流程图的维护难,如果要在两个节点中添加一个节点或者删除一个节点,需要涉及到其他节点,修改起来非常麻烦。
3、延长了开发周期:开发人员必须对工作流引擎比较熟悉,才能理解流程引擎的概念,流程图如何编写,业务代码如何和流程引擎以及流程图结合起来使用。
4、和流程引擎代码耦合,业务开发人员其实不需要关系流程引擎如何使用,只需要关心的是业务的流向是否正确,业务代码和流程引擎应该是松耦合的一种结构。
发明内容
本发明的目的是提供一种工作流引擎,解决了使开发人员不需要再了解BPMN2.0每个组件的含义,只需要根据流程图自动生成工具或者在原来的基础模板流程图上做少量改动,即可编写出任何业务流程的技术问题。
为实现上述目的,本发明采用如下技术方案:
一种工作流引擎,包括如下步骤:
步骤1:建立工作流引擎服务器,在工作流引擎服务器中建立BPMN 2.0规范的图元,图元包括开始事件、结束事件、脚本任务、排他网关、JAVA服务任务、调用活动、泳道配置任务和用户任务;
步骤2:根据以下步骤绘制流程图:
步骤S1:设立开始事件、自动处理任务、泳道配置任务、第一聚合节点、第二聚合节点、数个用户任务、分派活动、集合点任务和事件结束,自动处理任务为JAVA服务任务,泳道配置任务和集合点任务均为脚本任务;
第一聚合节点和第二聚合节点均为排他网关;
步骤S2:开始事件流向泳道配置任务、泳道配置任务流向自动处理任务,自动处理任务流向第一聚合节点、第一聚合节点分别流向所有的用户任务、分派活动和结束事件,分派活动流向集合点任务,所有用户任务和集合点任务均流向第二聚合节点,第二聚合节点流向自动处理任务;
步骤3:在自动处理任务中建立流向ID列表和节点列表,建立流向ID列表与节点列表之间的映射关系;
在节点列表中录入每一个用户任务的地址;
在流向ID列表中录入每一条流向节点线的ID号;
步骤4:在自动处理任务中编写任务流向顺序,任务流向顺序为流向节点线的ID号的顺序;
自动处理任务根据任务流向顺序分配任务的流向;
步骤5:根据以下步骤添加新的用户任务:
步骤S3:设立新的用户任务,将该用户任务视为新的节点;
步骤S4:在节点列表中添加所述新的节点的地址,并设立流向所述新的节点的新流向节点线,设定新流向节点线的ID号,并录入到流向ID列表;
步骤S5:建立新流向节点线的ID号与所述新的节点的地址之间的映射关系。
优选的,所述流向ID列表用于表示流向节点线的ID,每一个流向节点线对应映射一个所述节点列表中的节点。
优选的,所述泳道配置任务用于配置具体哪几个用户任务应该处于一个泳道中,在流向自动处理任务后,如果流程没有指定任务具体处理在哪一个任务中处理,那么就根据泳道配置任务的配置找到相同泳道内,最后一次处理该任务的用户任务进行处理。
本发明所述的一种工作流引擎,解决了使开发人员不需要再了解BPMN2.0每个组件的含义,只需要根据流程图自动生成工具或者在原来的基础模板流程图上做少量改动,即可编写出任何业务流程,本发明的流程引擎处理逻辑可以和业务代码进行解耦,流程引擎专注处理流程相关任务,业务服务专注于业务逻辑。
附图说明
图1是背景技术的流程图实例;
图2是本发明的流程图实例。
具体实施方式
如图2所示的一种工作流引擎,包括如下步骤:
步骤1:建立工作流引擎服务器,在工作流引擎服务器中建立BPMN 2.0规范的图元,图元包括开始事件、结束事件、脚本任务、排他网关、JAVA服务任务、调用活动、泳道配置任务和用户任务;
步骤2:根据以下步骤绘制流程图:
步骤S1:设立开始事件、自动处理任务、泳道配置任务、第一聚合节点、第二聚合节点、数个用户任务、分派活动、集合点任务和事件结束,自动处理任务为JAVA服务任务,泳道配置任务和集合点任务均为脚本任务;
第一聚合节点和第二聚合节点均为排他网关;
分派活动代表子流程活动,流程进入后会在主流程基础上创建其子流程。
集合点任务是一个自动执行的节点,该节点定义一个流程变量,子流程结束后会走集合点任务这个节点,然后根据此节点的该变量来回到主流程的哪个任务节点。
如图2所示是本实施例的一个应用场景,其中,草稿、待归档、受理、经理审批、主人审批和某个人审批为用户任务,通过用户预先编写的程序来执行任务,自动处理为自动处理任务,泳道配置为泳道配置任务,分派为分派活动,集合点为集合点任务。
步骤S2:开始事件流向泳道配置任务、泳道配置任务流向自动处理任务,自动处理任务流向第一聚合节点、第一聚合节点分别流向所有的用户任务、分派活动和结束事件,分派活动流向集合点任务,所有用户任务和集合点任务均流向第二聚合节点,第二聚合节点流向自动处理任务;
步骤3:在自动处理任务中建立流向ID列表和节点列表,建立流向ID列表与节点列表之间的映射关系;
在节点列表中录入每一个用户任务的地址;
在流向ID列表中录入每一条流向节点线的ID号;
步骤4:在自动处理任务中编写任务流向顺序,任务流向顺序为流向节点线的ID号的顺序;
自动处理任务根据任务流向顺序分配任务的流向;
步骤5:根据以下步骤添加新的用户任务:
步骤S3:设立新的用户任务,将该用户任务视为新的节点;
步骤S4:在节点列表中添加所述新的节点的地址,并设立流向所述新的节点的新流向节点线,设定新流向节点线的ID号,并录入到流向ID列表;
步骤S5:建立新流向节点线的ID号与所述新的节点的地址之间的映射关系。
如图2的实施例中,自动处理任务通过第一排他网关将任务流向事件结束、分派、草稿、待归档、受理、经理审批、主人审批和某个人审批,草稿、待归档、受理、经理审批、主人审批和某个人审批将任务流向第二排他网关,再有第二排他网关将任务流向自动处理,自动处理由用户通过xml源码编写,用于设定任务流向的顺序,如,根据预定的流程,任务首先流向草稿、然后再流向经理审批,那么此时用户只需要在自动处理中编写好任务的流向顺序即可,即,首先指定流向节点线的ID号为流向草稿的流向节点线,在指定定流向节点线的ID号为流向经理审批的流向节点线。
当需要添加一个节点时,只需要准备好节点任务,然后在自动处理中添加该节点任务的流向节点线的ID号和节点的地址即可,添加新的节点不会影响到旧的节点,简化了流程图的绘制工作。
优选的,所述流向ID列表用于表示流向节点线的ID,每一个流向节点线对应映射一个所述节点列表中的节点。
优选的,所述泳道配置任务用于配置具体哪几个用户任务应该处于一个泳道中,在流向自动处理任务后,如果流程没有指定任务具体处理在哪一个任务中处理,那么就根据泳道配置任务的配置找到相同泳道内,最后一次处理该任务的用户任务进行处理。
如图2所示,设定经理审批、主人审批和某个人审批为同一泳道,当自动处理中没有指定任务具体流向时,根据泳道配置中设定的经理审批、主人审批和某个人审批为同一泳道,自动处理将把任务指定到该泳道中,假设上一次是经理审批处理的该任务,那么此次自动处理依然将该任务指定到经理审批进行处理。
优选的,如图2所示的流程图中的所有BPMN 2.0规范的图元均通过xml描述。
本发明可以解耦,流程处理服务作为一个微服务单独提供,包含流程的部署,驱动,流向判断等逻辑。流程的驱动以及流转等相关功能作为API体用,流程内部的处理等都交由微服务来处理,这样业务方可以更进一步对流程引擎无感知,只需要调用相关方法即可完成流程的处理动作。而且由于一般流程引擎都需要数据库的支持,一般业务代码也有数据库操作,这里就存在一个数据库事务问题。本发明采用的解决方案就是可以设置通用的代码,让业务处理服务将业务数据发送到流程处理服务,然后流程处理服务把业务库操作和流程处理放到一个数据库事务中执行,这样也解决了可能存在的分布式事务问题。
本发明所述的一种工作流引擎,解决了使开发人员不需要再了解BPMN2.0每个组件的含义,本发明的流程图编写维护方便,支持泳道、子流程、会签等任意场景,只需要根据流程图自动生成工具或者在原来的基础模板流程图上做少量改动,即可编写出任何业务流程,本发明的流程引擎处理逻辑可以和业务代码进行解耦,流程引擎专注处理流程相关任务,业务服务专注于业务逻辑。
Claims (3)
1.一种工作流引擎,其特征在于:包括如下步骤:
步骤1:建立工作流引擎服务器,在工作流引擎服务器中建立BPMN2.0规范的图元,图元包括开始事件、结束事件、脚本任务、排他网关、JAVA服务任务、调用活动、泳道配置任务和用户任务;
步骤2:根据以下步骤绘制流程图:
步骤S1:设立开始事件、自动处理任务、泳道配置任务、第一聚合节点、第二聚合节点、数个用户任务、分派活动、集合点任务和事件结束,自动处理任务为JAVA服务任务,泳道配置任务和集合点任务均为脚本任务;
第一聚合节点和第二聚合节点均为排他网关;
步骤S2:开始事件流向泳道配置任务、泳道配置任务流向自动处理任务,自动处理任务流向第一聚合节点、第一聚合节点分别流向所有的用户任务、分派活动和结束事件,分派活动流向集合点任务,所有用户任务和集合点任务均流向第二聚合节点,第二聚合节点流向自动处理任务;
步骤3:在自动处理任务中建立流向ID列表和节点列表,建立流向ID列表与节点列表之间的映射关系;
在节点列表中录入每一个用户任务的地址;
在流向ID列表中录入每一条流向节点线的ID号;
步骤4:在自动处理任务中编写任务流向顺序,任务流向顺序为流向节点线的ID号的顺序;
自动处理任务根据任务流向顺序分配任务的流向;
步骤5:根据以下步骤添加新的用户任务:
步骤S3:设立新的用户任务,将该用户任务视为新的节点;
步骤S4:在节点列表中添加所述新的节点的地址,并设立流向所述新的节点的新流向节点线,设定新流向节点线的ID号,并录入到流向ID列表;
步骤S5:建立新流向节点线的ID号与所述新的节点的地址之间的映射关系。
2.如权利要求1所述的一种工作流引擎,其特征在于:所述流向ID列表用于表示流向节点线的ID,每一个流向节点线对应映射一个所述节点列表中的节点。
3.如权利要求1所述的一种工作流引擎,其特征在于:所述泳道配置任务用于配置具体哪几个用户任务应该处于一个泳道中,在流向自动处理任务后,如果流程没有指定任务具体处理在哪一个任务中处理,那么就根据泳道配置任务的配置找到相同泳道内,最后一次处理该任务的用户任务进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910564577.8A CN110298630A (zh) | 2019-06-27 | 2019-06-27 | 一种工作流引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910564577.8A CN110298630A (zh) | 2019-06-27 | 2019-06-27 | 一种工作流引擎 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110298630A true CN110298630A (zh) | 2019-10-01 |
Family
ID=68029134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910564577.8A Pending CN110298630A (zh) | 2019-06-27 | 2019-06-27 | 一种工作流引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110298630A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111208984A (zh) * | 2020-01-13 | 2020-05-29 | 陕西百讯电子科技有限公司 | 数据运营运行支撑平台 |
CN114757592A (zh) * | 2022-06-15 | 2022-07-15 | 北京乐开科技有限责任公司 | 一种工作流引擎与rpa融合的编排方法及*** |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020103683A1 (en) * | 2001-01-29 | 2002-08-01 | International Business Machines Corporation | Workflow system and method with skip function |
US20070101272A1 (en) * | 2005-10-31 | 2007-05-03 | Fujitsu Limited | Computer program and method for supporting implementation of services on multiple-server system |
US7739325B1 (en) * | 2000-04-24 | 2010-06-15 | Aspect Software, Inc. | Apparatus and method for extensible real-time workflows |
CN105760991A (zh) * | 2016-02-04 | 2016-07-13 | 北京慧友云商科技有限公司 | 一种可变服务流程的工作流引擎搭建方法 |
CN105787630A (zh) * | 2014-12-26 | 2016-07-20 | 远光软件股份有限公司 | 一种多样化业务流程创建方法 |
CN106897858A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种工作流处理方法和*** |
CN106897806A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 工作流程创建方法和***、业务*** |
CN108305010A (zh) * | 2018-02-10 | 2018-07-20 | 西安精雕软件科技有限公司 | 一种工作流引擎***及其跨平台、跨应用的流程推进方法 |
CN109146227A (zh) * | 2018-06-26 | 2019-01-04 | 四川驹马科技有限公司 | 一种工作流并行审批方法及其*** |
CN109670767A (zh) * | 2018-09-25 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 工作流的处理方法、装置、终端设备及存储介质 |
-
2019
- 2019-06-27 CN CN201910564577.8A patent/CN110298630A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739325B1 (en) * | 2000-04-24 | 2010-06-15 | Aspect Software, Inc. | Apparatus and method for extensible real-time workflows |
US20020103683A1 (en) * | 2001-01-29 | 2002-08-01 | International Business Machines Corporation | Workflow system and method with skip function |
US20070101272A1 (en) * | 2005-10-31 | 2007-05-03 | Fujitsu Limited | Computer program and method for supporting implementation of services on multiple-server system |
CN105787630A (zh) * | 2014-12-26 | 2016-07-20 | 远光软件股份有限公司 | 一种多样化业务流程创建方法 |
CN106897858A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种工作流处理方法和*** |
CN106897806A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 工作流程创建方法和***、业务*** |
CN105760991A (zh) * | 2016-02-04 | 2016-07-13 | 北京慧友云商科技有限公司 | 一种可变服务流程的工作流引擎搭建方法 |
CN108305010A (zh) * | 2018-02-10 | 2018-07-20 | 西安精雕软件科技有限公司 | 一种工作流引擎***及其跨平台、跨应用的流程推进方法 |
CN109146227A (zh) * | 2018-06-26 | 2019-01-04 | 四川驹马科技有限公司 | 一种工作流并行审批方法及其*** |
CN109670767A (zh) * | 2018-09-25 | 2019-04-23 | 深圳壹账通智能科技有限公司 | 工作流的处理方法、装置、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
王奔,周力峰: "综合管理信息***中的工作流应用技术研究", 《长江科学院院报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111208984A (zh) * | 2020-01-13 | 2020-05-29 | 陕西百讯电子科技有限公司 | 数据运营运行支撑平台 |
CN114757592A (zh) * | 2022-06-15 | 2022-07-15 | 北京乐开科技有限责任公司 | 一种工作流引擎与rpa融合的编排方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20110145037A1 (en) | Document management method and apparatus to process a workflow task by parallel or serially processing subtasks thereof | |
US7062537B2 (en) | Workflow services architecture | |
CN109087004B (zh) | 一种基于领域模型的公共工作流引擎*** | |
US20070050227A1 (en) | Automated workflow composable action model | |
CN106371851B (zh) | 一种基于Activiti的业务流程管理*** | |
US20080313003A1 (en) | Designing business processes using parametric roles | |
US20040148213A1 (en) | Automated workflow constraints | |
CN113037830A (zh) | 基于网关的微服务api编排方法及*** | |
CN110768914B (zh) | 基于语义场景实例迁移的去中心化物联网关*** | |
CN106503091A (zh) | 一种可变数据结构自动同步匹配的实现方法 | |
CN105278960A (zh) | 一种遥感应用中的流程自动化方法及*** | |
CN103780686A (zh) | 一种云组织内自定义申请审批流程的方法及*** | |
CN110298630A (zh) | 一种工作流引擎 | |
CN111897799A (zh) | 一种基于流程引擎的水文模型服务*** | |
CN113961332A (zh) | 一种工作流引擎实现的方法、装置、电子设备及存储介质 | |
CN114461357A (zh) | 一种遥感卫星原始数据实时处理流程调度引擎 | |
CN114816694A (zh) | 一种多流程协作的rpa任务调度方法及装置 | |
CN113988812A (zh) | 一种用于适航审定的动态工作流实现***及方法 | |
CN116185242B (zh) | 业务编排方法、装置和电子设备 | |
CN107896242A (zh) | 一种服务共享方法及装置 | |
Bi et al. | A Petri net method for compatibility enforcement to support service choreography | |
Ebrahimifard et al. | Mapping BPMN 2.0 choreography to WS-CDL: a systematic method | |
KR20010085985A (ko) | 분산 프로세스에 의해 수행되는 데이터 처리 요청을평가하기 위한 방법 및 장치 | |
KR20180037811A (ko) | 업무, 업무유도자, 업무수행자로 비즈니스 프로세스와 프로젝트를 관리하는 방법 및 시스템 | |
US11418514B2 (en) | Communication platform for exchanging digital data, generic application programming interface for such a communication platform, and method for operating and using such a communication platform |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191001 |