CN113296847A - 一种基于自解析节点的工作流引擎的实现方法 - Google Patents
一种基于自解析节点的工作流引擎的实现方法 Download PDFInfo
- Publication number
- CN113296847A CN113296847A CN202110635644.8A CN202110635644A CN113296847A CN 113296847 A CN113296847 A CN 113296847A CN 202110635644 A CN202110635644 A CN 202110635644A CN 113296847 A CN113296847 A CN 113296847A
- Authority
- CN
- China
- Prior art keywords
- node
- flow
- self
- attribute
- sub
- 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 title claims abstract description 120
- 230000000977 initiatory effect Effects 0.000 claims abstract description 4
- 238000012545 processing Methods 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 6
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于自解析节点的工作流引擎的实现方法,建立流程模版对象;流程节点分解,自解析整个流程的所有路径;将流程分解成两种节点:业务节点、结束节点;每个业务节点具有指向下一个节点的属性,而结束节点没有下一个节点的属性;画出整个流程的所有路径;依据每一个节点在什么条件下指向哪个节点的属性,将整个流程的所有路径画出来,直到一个没有下一个节点的节点为止;定义一个流程模版;只需要定义流程的ID、流程的名称、流程的描述,以及流程中的业务节点数组,这个数组存储在数据库中,用关系型数据库存储或用NoSQL类型的数据库存储;根据已经存在的流程模版对象发起流程。
Description
技术领域
本发明涉及计算机领域,具体为一种基于自解析节点的工作流引擎的实现方法。
背景技术
根据申请号为2013106902669的一种工作流引擎及其实现方法,工作流引擎是用于降低网络通信开销,工作流引擎通过浏览器从网络服务器下载到客户端的浏览器内加载运行,包括:流程解析器,用于读取流程配置文件,解析流程配置文件中流程定义模型,生成流程执行控制器执行的流程指令;流程执行控制器,用于根据流程指令,加载当前工作流节点的业务对象,执行初始化;在对应的业务运行结束后,根据当前工作流节点的运算逻辑表达式,对业务运行的结果数据进行计算;对当前工作流节点的跳转条件进行判断,如当前工作流节点为流程结束节点,则工作流引擎结束流程,如匹配到下一工作流节点,则将下一工作流节点确定为当前工作流节点,继续执行加载当前工作流节点的业务对象及后续步骤。该种方式存在以下缺点:a实现方式复杂;b维护工作较多,需要维护流程解析器和流程执行控制器,也需要维护流程节点和流程配置文件;c流程配置文件可能会存在安全隐患问题。
发明内容
本发明的目的是针对现有技术的缺陷,提供一种基于自解析节点的工作流引擎的实现方法,以解决上述背景技术提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于自解析节点的工作流引擎的实现方法,将流程的表单内容、用户与权限、流程节点的流转以及执行控制融合到流程节点中,具体步骤如下:
S1:建立流程模版对象;
S11:流程节点分解,自解析整个流程的所有路径;
将流程分解成两种节点:业务节点、结束节点;每个业务节点具有指向下一个节点的属性,而结束节点没有下一个节点的属性;
S12:画出整个流程的所有路径;
依据每一个节点在什么条件下指向哪个节点的属性,将整个流程的所有路径画出来,直到一个没有下一个节点的节点为止;
S13:定义一个流程模版;
只需要定义流程的ID、流程的名称、流程的描述,以及流程中的业务节点数组,这个数组存储在数据库中,用关系型数据库存储或用NoSQL类型的数据库存储,节点内部首先要有节点的编号作为节点的唯一标识符,一个流程的节点编号从一个特定的ID开始;
S2:根据已经存在的流程模版对象发起流程;
S21:在发起流程的时候,只需要基于流程模版中的定义的节点数组,按照流程实际的流向路径,创建相关的节点实例对象就可以完成;
S22:在流程执行的每个节点都能够由节点对象本身自解析该节点由什么角色,做什么事情,该节点处理完成后,下一个是哪个节点,不再需要额外的配置文件。
作为本发明的一种优选技术方案,所述S1中的节点的内部定义,可以自解析每个节点是由什么角色来操作、做什么事情、以及如何做的问题,并能够解析该节点处理完成后,下一个是哪个节点。
作为本发明的一种优选技术方案,所述S1中节点的内部除了节点ID属性外,还存储了以下主要自解析属性:所属流程相关属性、节点本身相关属性、节点用户相关属性、下一个节点数组相关属性、节点表单项相关属性和子流程相关属性。
作为本发明的一种优选技术方案,所述所属流程相关属性:记录了流程的名称和流程ID。
作为本发明的一种优选技术方案,所述节点本身相关属性:记录了节点名称、节点ID、节点描述、节点处理最大超时时间、节点类型和节点处理方式。
作为本发明的一种优选技术方案,所述节点用户相关属性:记录了能够处理本节点的用户列表数组。
作为本发明的一种优选技术方案,所述下一个节点数组相关属性:记录了包括条件块对象和下一节点ID。
作为本发明的一种优选技术方案,所述节点表单项相关属性:记录了节点包含的表单项数组、节点表单项数组中各个元素的面向本节点各用户的权限,权限包括:可读、写编辑、不可见。
作为本发明的一种优选技术方案,所述子流程相关属性,记录了在本流程节点处启动另一个流程的相关信息。
本发明的有益效果是:本发明为适应各种信息***建设,而设计的一套灵活的、易于实现的工作流引擎,设计的基本思路是只需要用节点数组就可以构造整个流程,每个节点都是自解析的;在启动子流程的时候,可以将在启动节点将父流程的相关信息传递给子流程,并且在子流程执行完成之后,将执行的结果返回到父流程;
子流程的启动有两种方式,一种是同步启动,一种是异步启动;其中:
同步启动表示,父流程在启动子流程的节点处等待子流程完成,当子流程完成后,会将子流程的执行状态数据返回到父流程,父流程再根据子流程的返回数据自动进入到哪个下一节点;
异步启动表示,父流程不等待子流程结束,而是直接进入下一节点,当子流程完成后,会通过消息的方式通知父流程该子流程完成的状态数据。
附图说明
图1为本发明的流程分解图;
图2为本发明定义模板的流程图;
图3为本发明同步子流程示意图;
图4为本发明异步子流程示意图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易被本领域人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
实施例:请参阅图1-4,本发明提供一种技术方案:一种基于自解析节点的工作流引擎的实现方法,将流程的表单内容、用户与权限、流程节点的流转以及执行控制融合到流程节点中,具体步骤如下:
S1:建立流程模版对象;
S11:流程节点分解,自解析整个流程的所有路径;
将流程分解成两种节点:业务节点、结束节点;每个业务节点具有指向下一个节点的属性,而结束节点没有下一个节点的属性;
S12:画出整个流程的所有路径;
依据每一个节点在什么条件下指向哪个节点的属性,将整个流程的所有路径画出来,直到一个没有下一个节点的节点为止;
S13:定义一个流程模版;
只需要定义流程的ID、流程的名称、流程的描述,以及流程中的业务节点数组,这个数组存储在数据库中,用关系型数据库存储或用NoSQL类型的数据库存储,节点内部首先要有节点的编号作为节点的唯一标识符,一个流程的节点编号从一个特定的ID开始;
S2:根据已经存在的流程模版对象发起流程;
S21:在发起流程的时候,只需要基于流程模版中的定义的节点数组,按照流程实际的流向路径,创建相关的节点实例对象就可以完成;
S22:在流程执行的每个节点都能够由节点对象本身自解析该节点由什么角色,做什么事情,如何做问题,不再需要额外的配置文件。
S1中的节点的内部定义,可以自解析每个节点是由什么角色来操作、做什么事情、以及如何做的问题,并能够解析该节点处理完成后,下一个是哪个节点。S1中节点的内部除了节点ID属性外,还存储了以下主要自解析属性:所属流程相关属性、节点本身相关属性、节点用户相关属性、下一个节点数组相关属性、节点表单项相关属性和子流程相关属性。所属流程相关属性:记录了流程的名称和流程ID。节点本身相关属性:记录了节点名称、节点ID、节点描述、节点处理最大超时时间、节点类型和节点处理方式。
所述节点用户相关属性:记录了能够处理本节点的用户列表数组。所述下一个节点数组相关属性:记录了包括条件块对象和下一节点ID。所述节点表单项相关属性:记录了节点包含的表单项数组、节点表单项数组中各个元素的面向本节点各用户的权限。所述子流程相关属性,记录了在本流程节点处启动另一个流程的相关信息;在启动子流程的时候,可以将在启动节点将父流程的相关信息传递给子流程,并且在子流程执行完成之后,将执行的结果返回到父流程;子流程的启动有两种方式,一种是同步启动,一种是异步启动;其中:
同步启动表示,父流程在启动子流程的节点处等待子流程完成,当子流程完成后,会将子流程的执行状态数据返回到父流程,父流程再根据子流程的返回数据自动进入到哪个下一节点;异步启动表示,父流程不等待子流程结束,而是直接进入下一节点,当子流程完成后,会通过消息的方式通知父流程该子流程完成的状态数据。
本发明为适应各种信息***建设,而设计的一套灵活的、易于实现的工作流引擎,设计的基本思路是只需要用节点数组就可以构造整个流程,每个节点都是自解析的。
上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (9)
1.一种基于自解析节点的工作流引擎的实现方法,将流程的表单内容、用户与权限、流程节点的流转以及执行控制融合到流程节点中,其特征在于:具体步骤如下:
S1:建立流程模版对象;
S11:流程节点分解,自解析整个流程的所有路径;
将流程分解成两种节点:业务节点、结束节点;每个业务节点具有指向下一个节点的属性,而结束节点没有下一个节点的属性;
S12:画出整个流程的所有路径;
依据每一个节点在什么条件下指向哪个节点的属性,将整个流程的所有路径画出来,直到一个没有下一个节点的节点为止;
S13:定义一个流程模版;
只需要定义流程的ID、流程的名称、流程的描述,以及流程中的业务节点数组,这个数组存储在数据库中,用关系型数据库存储或用NoSQL类型的数据库存储,节点内部首先要有节点的编号作为节点的唯一标识符,一个流程的节点编号从一个特定的ID开始;
S2:根据已经存在的流程模版对象发起流程;
S21:在发起流程的时候,只需要基于流程模版中的定义的节点数组,按照流程实际的流向路径,创建相关的节点实例对象就可以完成;
S22:在流程执行的每个节点都能够由节点对象本身自解析该节点由什么角色,做什么事情,该节点处理完成后,下一个是哪个节点,不再需要额外的配置文件。
2.根据权利要求1所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述S1中的节点的内部定义,可以自解析每个节点是由什么角色来操作、做什么事情、以及如何做的问题,并能够解析该节点处理完成后,下一个是哪个节点。
3.根据权利要求1所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述S1中节点的内部除了节点ID属性外,还存储了以下主要自解析属性:所属流程相关属性、节点本身相关属性、节点用户相关属性、下一个节点数组相关属性、节点表单项相关属性和子流程相关属性。
4.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述所属流程相关属性:记录了流程的名称和流程ID。
5.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述节点本身相关属性:记录了节点名称、节点ID、节点描述、节点处理最大超时时间、节点类型和节点处理方式。
6.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述节点用户相关属性:记录了能够处理本节点的用户列表数组。
7.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述下一个节点数组相关属性:记录了包括条件块对象和下一节点ID。
8.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述节点表单项相关属性:记录了节点包含的表单项数组、节点表单项数组中各个元素的面向本节点各用户的权限,权限包括:可读、写编辑、不可见。
9.根据权利要求3所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述子流程相关属性,记录了在本流程节点处启动另一个流程的相关信息;在启动子流程的时候,可以将在启动节点将父流程的相关信息传递给子流程,并且在子流程执行完成之后,将执行的结果返回到父流程;
子流程的启动有两种方式,一种是同步启动,一种是异步启动;其中:
同步启动表示,父流程在启动子流程的节点处等待子流程完成,当子流程完成后,会将子流程的执行状态数据返回到父流程,父流程再根据子流程的返回数据自动进入到哪个下一节点;
异步启动表示,父流程不等待子流程结束,而是直接进入下一节点,当子流程完成后,会通过消息的方式通知父流程该子流程完成的状态数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635644.8A CN113296847A (zh) | 2021-06-08 | 2021-06-08 | 一种基于自解析节点的工作流引擎的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110635644.8A CN113296847A (zh) | 2021-06-08 | 2021-06-08 | 一种基于自解析节点的工作流引擎的实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113296847A true CN113296847A (zh) | 2021-08-24 |
Family
ID=77327525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110635644.8A Pending CN113296847A (zh) | 2021-06-08 | 2021-06-08 | 一种基于自解析节点的工作流引擎的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113296847A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258362A (zh) * | 2023-05-08 | 2023-06-13 | 四川数产范式科技有限公司 | 工作流的生成方法、***、设备及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6853974B1 (en) * | 1998-08-24 | 2005-02-08 | Hitachi, Ltd. | Workflow system, workflow control method and storage medium |
US20080059563A1 (en) * | 2003-10-30 | 2008-03-06 | Lavastorm Technologies, Inc. | Methods and Systems for Automated Data Processing |
CN102169500A (zh) * | 2011-04-19 | 2011-08-31 | 北京神州数码思特奇信息技术股份有限公司 | 一种业务流程动态展示装置 |
US8874621B1 (en) * | 2011-10-09 | 2014-10-28 | LockPath, Inc. | Dynamic content systems and methods |
CN111353754A (zh) * | 2020-02-19 | 2020-06-30 | 望海康信(北京)科技股份公司 | 流程模板的生成方法、装置、电子设备及可读存储介质 |
CN111597143A (zh) * | 2020-03-24 | 2020-08-28 | 中电海康集团有限公司 | 一种将dag图数据转换为工作流引擎调度文件的方法 |
-
2021
- 2021-06-08 CN CN202110635644.8A patent/CN113296847A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6853974B1 (en) * | 1998-08-24 | 2005-02-08 | Hitachi, Ltd. | Workflow system, workflow control method and storage medium |
US20080059563A1 (en) * | 2003-10-30 | 2008-03-06 | Lavastorm Technologies, Inc. | Methods and Systems for Automated Data Processing |
CN102169500A (zh) * | 2011-04-19 | 2011-08-31 | 北京神州数码思特奇信息技术股份有限公司 | 一种业务流程动态展示装置 |
US8874621B1 (en) * | 2011-10-09 | 2014-10-28 | LockPath, Inc. | Dynamic content systems and methods |
CN111353754A (zh) * | 2020-02-19 | 2020-06-30 | 望海康信(北京)科技股份公司 | 流程模板的生成方法、装置、电子设备及可读存储介质 |
CN111597143A (zh) * | 2020-03-24 | 2020-08-28 | 中电海康集团有限公司 | 一种将dag图数据转换为工作流引擎调度文件的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116258362A (zh) * | 2023-05-08 | 2023-06-13 | 四川数产范式科技有限公司 | 工作流的生成方法、***、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022160707A1 (zh) | 结合rpa和ai的人机互动方法、装置、存储介质及电子设备 | |
CN108319547B (zh) | 测试用例生成方法、装置和*** | |
US11567959B2 (en) | Self-contained files for generating a visualization of query results | |
US10997190B2 (en) | Context-adaptive selection options in a modular visualization framework | |
CN107562556B (zh) | 故障的恢复方法、恢复装置及存储介质 | |
CN110209652A (zh) | 数据表迁移方法、装置、计算机设备和存储介质 | |
US9558473B2 (en) | Collaborative contact management | |
US20120185293A1 (en) | Workflow management system and method for implementing workflow definition tool | |
US20210149773A1 (en) | Qualification parameters for captain selection in a search head cluster | |
CN109389299B (zh) | 工作流流程部署方法、装置、计算机设备和存储介质 | |
CN111949832A (zh) | 批量作业依赖关系的解析方法及装置 | |
CN107784068A (zh) | 数据变化的获取方法、装置、存储介质、处理器及服务端 | |
CN114594927A (zh) | 低代码开发方法、装置、***、服务器及存储介质 | |
CN112861182A (zh) | 数据库的查询方法、***及计算机设备、存储介质 | |
CN113296847A (zh) | 一种基于自解析节点的工作流引擎的实现方法 | |
CN114610334A (zh) | 产品可视化部署方法、装置、***及存储介质 | |
CN113672674A (zh) | 一种自动编排业务流的方法、电子装置和存储介质 | |
CN112686580A (zh) | 一种可自定义流程的工作流定义方法及*** | |
US20180082262A1 (en) | Optimize meeting based on organizer rating | |
CN115757639A (zh) | 数据源同步方法、装置、电子设备及存储介质 | |
CN114371848A (zh) | 页面联调方法、装置、设备及存储介质 | |
CN112631571A (zh) | 一种web编辑器内组件的联动方法及装置 | |
CN113779117A (zh) | 一种数据监控方法、装置、存储介质和电子设备 | |
CN111679899A (zh) | 任务调度方法、装置、平台设备及存储介质 | |
CN111160876A (zh) | 一种基于录入设备身份的物联网标识解析信息录入方法 |
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 |
Application publication date: 20210824 |
|
RJ01 | Rejection of invention patent application after publication |