CN113296847A - 一种基于自解析节点的工作流引擎的实现方法 - Google Patents

一种基于自解析节点的工作流引擎的实现方法 Download PDF

Info

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
Application number
CN202110635644.8A
Other languages
English (en)
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.)
Foshan Wurong Technology Co ltd
Original Assignee
Foshan Wurong 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 Foshan Wurong Technology Co ltd filed Critical Foshan Wurong Technology Co ltd
Priority to CN202110635644.8A priority Critical patent/CN113296847A/zh
Publication of CN113296847A publication Critical patent/CN113296847A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

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所述的一种基于自解析节点的工作流引擎的实现方法,其特征在于:所述子流程相关属性,记录了在本流程节点处启动另一个流程的相关信息;在启动子流程的时候,可以将在启动节点将父流程的相关信息传递给子流程,并且在子流程执行完成之后,将执行的结果返回到父流程;
子流程的启动有两种方式,一种是同步启动,一种是异步启动;其中:
同步启动表示,父流程在启动子流程的节点处等待子流程完成,当子流程完成后,会将子流程的执行状态数据返回到父流程,父流程再根据子流程的返回数据自动进入到哪个下一节点;
异步启动表示,父流程不等待子流程结束,而是直接进入下一节点,当子流程完成后,会通过消息的方式通知父流程该子流程完成的状态数据。
CN202110635644.8A 2021-06-08 2021-06-08 一种基于自解析节点的工作流引擎的实现方法 Pending CN113296847A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116258362A (zh) * 2023-05-08 2023-06-13 四川数产范式科技有限公司 工作流的生成方法、系统、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
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图数据转换为工作流引擎调度文件的方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116258362A (zh) * 2023-05-08 2023-06-13 四川数产范式科技有限公司 工作流的生成方法、系统、设备及介质

Similar Documents

Publication Publication Date Title
CN108319547B (zh) 测试用例生成方法、装置和系统
WO2022160707A1 (zh) 结合rpa和ai的人机互动方法、装置、存储介质及电子设备
US11567959B2 (en) Self-contained files for generating a visualization of query results
US11615082B1 (en) Using a data store and message queue to ingest data for a data intake and query system
CN107562556B (zh) 故障的恢复方法、恢复装置及存储介质
CN110209652A (zh) 数据表迁移方法、装置、计算机设备和存储介质
US9558473B2 (en) Collaborative contact management
US20120185293A1 (en) Workflow management system and method for implementing workflow definition tool
US11449371B1 (en) Indexing data at a data intake and query system based on a node capacity threshold
CN110162512B (zh) 一种日志检索方法、装置及存储介质
US20210149773A1 (en) Qualification parameters for captain selection in a search head cluster
CN111949832A (zh) 批量作业依赖关系的解析方法及装置
CN109389299B (zh) 工作流流程部署方法、装置、计算机设备和存储介质
CN107784068A (zh) 数据变化的获取方法、装置、存储介质、处理器及服务端
CN114594927A (zh) 低代码开发方法、装置、系统、服务器及存储介质
CN113296847A (zh) 一种基于自解析节点的工作流引擎的实现方法
CN114610334A (zh) 产品可视化部署方法、装置、系统及存储介质
CN113342679A (zh) 接口测试方法及测试装置
CN112861182A (zh) 数据库的查询方法、系统及计算机设备、存储介质
CN112686580A (zh) 一种可自定义流程的工作流定义方法及系统
CN112988600A (zh) 业务场景测试方法、装置、电子设备及存储介质
WO2018200167A1 (en) Managing asynchronous analytics operation based on communication exchange
CN114371848A (zh) 页面联调方法、装置、设备及存储介质
CN112631571A (zh) 一种web编辑器内组件的联动方法及装置
CN113672674A (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