掌桥专利:专业的专利平台
掌桥专利
首页

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

文献发布时间:2023-06-19 12:19:35


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

技术领域

本发明涉及计算机领域,具体为一种基于自解析节点的工作流引擎的实现方法。

背景技术

根据申请号为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。所述节点表单项相关属性:记录了节点包含的表单项数组、节点表单项数组中各个元素的面向本节点各用户的权限。所述子流程相关属性,记录了在本流程节点处启动另一个流程的相关信息;在启动子流程的时候,可以将在启动节点将父流程的相关信息传递给子流程,并且在子流程执行完成之后,将执行的结果返回到父流程;子流程的启动有两种方式,一种是同步启动,一种是异步启动;其中:

同步启动表示,父流程在启动子流程的节点处等待子流程完成,当子流程完成后,会将子流程的执行状态数据返回到父流程,父流程再根据子流程的返回数据自动进入到哪个下一节点;异步启动表示,父流程不等待子流程结束,而是直接进入下一节点,当子流程完成后,会通过消息的方式通知父流程该子流程完成的状态数据。

本发明为适应各种信息系统建设,而设计的一套灵活的、易于实现的工作流引擎,设计的基本思路是只需要用节点数组就可以构造整个流程,每个节点都是自解析的。

上实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。

相关技术
  • 一种基于自解析节点的工作流引擎的实现方法
  • 一种基于公有链平台的工作流引擎系统及其实现方法
技术分类

06120113256152