流程引擎自动转换方法、装置、电子介质及存储介质与流程

文档序号:23668870发布日期:2021-01-15 14:08阅读:142来源:国知局
流程引擎自动转换方法、装置、电子介质及存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种流程引擎自动转换方法、装置、电子设备及存储介质。



背景技术:

现有技术中进行流程引擎模型转换都是人工去看bpmn流程引擎的流程图,然后人工判断和手动一个个模仿配置流程及待办流转,且无现有技术能够将bpmn标准流程引擎模型自动转化为交易自研的基于表达式的待办驱动流程引擎模型。

通过人工手动配置进行流程引擎模型迁移的这种方式一方面严重依赖人工容易出错,另一方面重复工作量大,效率低。



技术实现要素:

针对现有技术中存在的问题,本发明实施例提供一种流程引擎自动转换方法、装置、电子设备及存储介质。

第一方面,本发明实施例提供一种流程引擎自动转换方法,包括:

获取与bpmn流程引擎模型对应的bpmn流程引擎文件;

利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;其中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型;

基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件;

将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件;

基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

进一步地,所述要素信息至少包括:待办节点、带条件的有向边结构和事件;

相应地,基于所述要素信息,确定与待办驱动流程引擎模型对应的流程节点配置文件,包括:

基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件;

基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件。

进一步地,基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件,包括:

对所述带条件的有向边结构进行解析,按照顺序获取与所述有向边对应的节点对,所述节点对由相应边的起点和终点组成;

根据开始事件和结束事件,获取流程开始节点和流程结束节点;

根据流程开始节点、流程结束节点以及所述边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;

将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;

根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件。

进一步地,与所述待办驱动流程引擎模型对应的流程引擎文件为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表;与所述待办驱动流程引擎模型对应的流程节点配置文件包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件;

相应地,所述基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件,包括:

将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据;

根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

进一步地,将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件,包括:

根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

进一步地,在利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物之前,所述方法还包括:建立所述bpmn解析器的步骤,具体包括:

根据预设解析产物需求基于php编写bpmn解析器;其中,所述bpmn解析器中包含有与所述预设解析产物需求对应的待解析要素名;其中,所述bpmn解析器根据所述待解析要素名对所述bpmn流程引擎文件进行解析,获取与所述预设解析产物需求对应的解析产物。

第二方面,本发明实施例提供了一种流程引擎自动转换装置,包括:

第一获取模块,用于获取与bpmn流程引擎模型对应的bpmn流程引擎文件;

第二获取模块,用于利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;其中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型;

确定模块,用于基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件;

文件转化模块,用于将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件;

模型转换模块,用于基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

进一步地,所述要素信息至少包括:待办节点、带条件的有向边结构和事件;

相应地,所述确定模块,用于:

基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件;

基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件。

进一步地,所述确定模块在执行所述基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件时,具体用于:

对所述带条件的有向边结构进行解析,按照顺序获取与所述有向边对应的节点对,所述节点对由相应边的起点和终点组成;

根据开始事件和结束事件,获取流程开始节点和流程结束节点;

根据流程开始节点、流程结束节点以及所述边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;

将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;

根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件。

进一步地,与所述待办驱动流程引擎模型对应的流程引擎文件为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表;与所述待办驱动流程引擎模型对应的流程节点配置文件包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件;

相应地,所述确定模块在执行所述基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件时,具体用于:

将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据;

根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

进一步地,所述文件转化模块,用于:

根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

进一步地,所述第二获取模块在利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物之前,所述装置还包括:建立所述bpmn解析器模块,具体用于:

根据预设解析产物需求基于php编写bpmn解析器;其中,所述bpmn解析器中包含有与所述预设解析产物需求对应的待解析要素名;其中,所述bpmn解析器根据所述待解析要素名对所述bpmn流程引擎文件进行解析,获取与所述预设解析产物需求对应的解析产物。

第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上第一方面所述的流程引擎自动转换方法的步骤。

第四方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上第一方面所述的流程引擎自动转换方法的步骤。

由上述技术方案可知,本发明实施例提供的流程引擎自动转换方法、装置、电子设备及存储介质,通过建立解析器,解析bpmn流程引擎文件,生成建立待办驱动流程引擎模型所需的要素信息,通过要素信息确定与待办驱动流程引擎模型对应的流程节点配置文件,然后基于后续的转换算法将流程节点配置文件转化为与待办驱动流程引擎模型对应的流程引擎文件,将待办驱动流程引擎模型对应的流程引擎文件作为流程引擎转换的数据基础,完成从bpmn标准流程引擎模型到待办驱动流程引擎模型的自动转换,由此可见,本发明实施例无需人工进行从bpmn标准流程引擎模型到待办驱动流程引擎模型的转换,从而可以大幅提升bpmn标准流程引擎模型与待办驱动流程引擎模型之间的转化效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明一实施例提供的流程引擎自动转换方法的流程示意图;

图2为本发明一实施例提供的bpmn流程引擎文件示意图;

图3为本发明一实施例提供的对bpmn流程引擎文件进行解析后的示意图;

图4为本发明另一实施例提供的流程引擎自动转换方法的流程示意图;

图5为本发明一实施例提供的流程引擎自动转换装置的结构示意图;

图6为本发明一实施例中电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前现有技术在进行bpmn标准流程引擎模型与待办驱动流程引擎模型这两种流程引擎模型之间的切换时,需要进行人工手动配置,即需要人工去看bpmn流程引擎的流程图,然后根据流程图进行判断,再手动一个个模仿配置流程及待办流程,可见现有技术严重依赖人工,容易出错,并且实际操作中重复工作多,效率低,为此,本发明通过建立解析器,解析bpmn流程引擎文件,生成建立待办驱动流程引擎模型所需的要素信息,通过要素信息确定与待办驱动流程引擎模型对应的流程节点配置文件,然后基于后续的转换算法将流程节点配置文件转化为与待办驱动流程引擎模型对应的流程引擎文件,然后将待办驱动流程引擎模型对应的流程引擎文件作为流程引擎转换的数据基础,完成从bpmn标准流程引擎模型到待办驱动流程引擎模型的自动转换。下面将通过具体的实施例对本发明提供的流程引擎自动转换方法进行详细解释和说明。

图1为本发明一实施例提供的流程引擎自动转换方法的流程示意图;如图1所示,该方法包括:

步骤101:获取与bpmn流程引擎模型对应的bpmn流程引擎文件。

在本步骤中,需要说明的是,bpmn的英文全拼为businessprocessmodelingnotation,也即指业务流程建模符号。bpmn的主要目标是要提供被所有业务用户理解的一套标记语言,包括业务分析者、软件开发者以及业务管理者与监察者。bpmn在业务流程设计与流程实现之间搭建了一条标准化的桥梁。由此可见,bpmn是一种流程建模的通用和标准语言,bpmn是一门符号语言,就像任何语言的目的一样,bpmn是为了方便沟通,旨在促进业务流程的沟通和理解。使用bpmn建模的目的是运用bpmn来绘制流程图,以便更好地让各部门之间理解业务流程和相互关系。例如,bpmn2.0的最大优势之一是消除了业务人员和it技术人员之间沟通沟壑。bpmn的“n”代表“符号”(notation)。这些图形符号由流程活动、流程泳道或者事件的行为符号组成。自omg在2004年5月发布的bpmn规范的第一个版本以来,这些视觉符号一直作为标准的一部分,沿用至今,成为流程管理的规范和标准。bpmn=图形表达+xml,bpmn2.0通过引入xml,使bpmn不仅仅是一个漂亮的图形表达,更能准确描述业务流程间很多含糊不清的问题。通过xml来定义每个bpmn对象,使bpmn规范地保证每个图形,无论是流程模型还是所有在流程模型中的对象,都能清晰地进行表述。需要说明的是,bpmn流程设计器能够自动生成xml。

在本步骤中,需要说明的是,与bpmn(标准)流程引擎模型对应的bpmn流程引擎文件为标准bpmn文件(如图2所示),本步骤获取与bpmn标准流程引擎模型对应的bpmn流程引擎文件的目的,是为了便于步骤102对所述bpmn流程引擎文件进行解析,进而获取所述bpmn流程引擎文件中包含的要素信息。

步骤102:利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;

在本步骤中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型。

在本步骤中,需要说明的是,bpmn是一种建模标准,现有技术都是基于activiti引擎运行的bpmn解析,不能输出解析产物,因此,无法实现从bpmn(标准)流程引擎模型到待办驱动流程引擎模型的自动转换。本实施例为解决这一问题,根据预设解析产物需求基于php编写bpmn解析器,然后利用该bpmn解析器对所述bpmn流程引擎文件进行解析以产生所需的解析产物,从而能够获取所述bpmn流程引擎文件中包含的要素信息(解析产物就是要素信息),进而后续基于该要素信息,可以建立与待办驱动流程引擎模型对应的流程节点配置文件,从而可以完成从bpmn(标准)流程引擎模型到待办驱动流程引擎模型的自动转换。

在本实施例中,需要说明的是,在编写所述bpmn解析器时,可以基于php公共的domdocument解析器编写所述bpmn解析器,具体地,需要在所述domdocument解析器中设置待进行解析的bpmn流程引擎文件的标签名(tagname)以及与预设解析产物需求对应的各要素名(elementname)。举例来说,与预设解析产物需求对应的各要素名包含有:流程名(workflowname)、开始事件(startevent)、完结事件(endevent)、待办(usertask)、有向边结构(sequenceflow)等。然后利用该解析器加载待进行解析的bpmn流程引擎文件进行解析,在解析过程中根据要素名获取所述bpmn流程引擎文件中相应的要素信息。

在本实施例中,需要说明的是,dom解析库是解析文件所有内容并不会对内容进行过滤,而基于php的dom解析库支持读取配置解析出所关注的内容并且将其归类,便于后续分析处理。

在本实施例中,bpmn是一种建模标准,现有技术都是基于activiti引擎运行的bpmn解析,不能输出解析产物,而且只支持java语言;而基于php实现的bpmn解析器优势是能够定制生成所需的解析产物,并不限制语言,然后会基于后续的转换算法将解析产物转换成交易自研的待办驱动流程引擎模型对应的流程引擎文件。

参见图3,在利用bpmn解析器对所述bpmn流程引擎文件进行解析后,可以生成图3所示的解析产物,这些解析产物中包含了各要素信息,基于这些要素信息可以确定建立待办驱动流程引擎模型所需的流程信息。例如,基于待办节点、带条件的有向边结构和事件这些要素信息,可以确定建立待办驱动流程引擎模型所需的流程信息,例如:流程顺序节点和各节点间的流转条件等。

可以理解的是,本步骤需要首先建立bpmn解析器,然后利用bpmn解析器对bpmn流程引擎文件进行解析得到解析产物,解析产物即为bpmn流程引擎文件中包含的要素信息,由于所述要素信息中包括有待办节点、带条件的有向边结构、参与人和事件等,从而根据所述要素信息即可获得建立待办驱动流程引擎模型所需的流程信息。

步骤103:基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件。

在本步骤中,在得到所述bpmn(标准)流程引擎模型中包含的要素信息后,可以基于这些要素信息,可以确定建立待办驱动流程引擎模型所需的流程信息,进而基于所述流程信息可以确定与待办驱动流程引擎模型对应的流程节点配置文件。

举例来说,基于待办节点、带条件的有向边结构和事件这些要素信息,可以确定建立待办驱动流程引擎模型所需的流程信息,例如:“对所述带条件的有向边结构进行解析,按照顺序获取与每条有向边对应的节点对,每个节点对由相应边的起点和终点组成;根据开始事件和结束事件,获取流程开始节点和流程结束节点;根据流程开始节点、流程结束节点以及每条边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件”,进而基于流程顺序节点、各节点间的流转条件和所述要素信息中参与人等,可以确定与待办驱动流程引擎模型对应的csv格式的流程节点配置文件,例如包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

可以理解的是,为方便处理,可以将上述处理过程“对所述带条件的有向边结构进行解析,按照顺序获取与每条有向边对应的节点对,每个节点对由相应边的起点和终点组成;根据开始事件和结束事件,获取流程开始节点和流程结束节点;根据流程开始节点、流程结束节点以及每条边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件”编写为一个“流程顺序节点生成器”,然后利用该“流程顺序节点生成器”对解析得到的要素信息进行处理,进而获得与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件。

步骤104:将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件。

在本步骤中,可以利用预设转换算法,将流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件。可以理解的是,与所述待办驱动流程引擎模型对应的流程引擎文件一般为sql格式的数据表,例如包括:sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表;而与所述待办驱动流程引擎模型对应的流程节点配置文件一般为csv格式的文件,例如包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,因此,可以在预设转换算法中建立csv文件名和sql数据表名之间的映射关系,然后根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

步骤105:基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

在本步骤中,由于生成了待办驱动流程引擎模型对应的流程引擎文件,提供了数据基础,从而可以实现从bpmn(标准)流程引擎模型到待办驱动流程引擎模型的自动转换。

在本实施例中,参见图4所示的流程图,在得到与所述待办驱动流程引擎模型对应的流程引擎文件,可以利用该流程引擎文件进行线上测试,以检测待办驱动流程引擎模型是否可以自动生成,若测试通过,则推送到生产环境,实现交易自研的待办驱动流程引擎模型配置上线。

由上面技术方案可知,本发明实施例提供的流程引擎自动转换方法,通过建立解析器,解析bpmn流程引擎文件,生成建立待办驱动流程引擎模型所需的要素信息,通过要素信息确定与待办驱动流程引擎模型对应的流程节点配置文件,然后基于后续的转换算法将流程节点配置文件转化为与待办驱动流程引擎模型对应的流程引擎文件,将待办驱动流程引擎模型对应的流程引擎文件作为流程引擎转换的数据基础,完成从bpmn(标准)流程引擎模型到待办驱动流程引擎模型的自动转换。由此可见,本实施例无需人工进行从bpmn(标准)流程引擎模型到待办驱动流程引擎模型的转换,从而可以大幅提升bpmn(标准)流程引擎模型与待办驱动流程引擎模型之间的转化效率。

在上述实施例的基础上,在本实施例中,所述要素信息至少包括:待办节点、带条件的有向边结构和事件;

相应地,基于所述要素信息,确定与待办驱动流程引擎模型对应的流程节点配置文件,包括:

基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件;

基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件。

在本实施例中,对待办节点、带条件的有向边结构和事件等要素信息进行处理,处理方法为先解析带条件的有向边结构,获取流程开始节点、流程结束节点以及每条边对应的节点对,确定与待办驱动流程引擎模型对应的流程顺序节点,确定与待办驱动流程引擎模型对应的各节点间的流转条件,然后将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据,确定与待办驱动流程引擎模型对应的流程节点配置文件。

在本实施例中,举例来说,将待办节点、带条件的有向边结构和事件作为数据基础,采用优先遍历算法建立流程顺序节点生成器,生成待办驱动流程引擎模型所需的流程顺序节点及生成待办驱动流程基础框架,自动生成待办驱动流程节点顺序,确定流程顺序节点,确定与待办驱动流程引擎模型对应的流程节点配置文件。

由上面技术方案可知,本发明实施例提供的流程引擎自动转换方法,基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件,包括:

对所述带条件的有向边结构进行解析,按照顺序获取与所述有向边对应的节点对,所述节点对由相应边的起点和终点组成;

根据开始事件和结束事件,获取流程开始节点和流程结束节点;

根据流程开始节点、流程结束节点以及所述边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;

将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;

根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件。

在本实施例中,对最长顺序路径的生成过程进行如下说明:

ⅰ、首先解析sequenceflow(带条件的有向边结构),得到类似“(a,p1),(p1,b),(a,c),(b,p3),(p3,d),(c,d),(d,p4),(p4,e)”这种结构的节点(括号中逗号左边是起点,右边是终点,对于待办驱动流程都是一个个的待办),将其依次写入graph的linkedhashset列表中(用这个基础结构是因为能保持插入的顺序),并且通过startevent(开始事件)、endevent(完结事件)获取到流程的开始节点和流程的结束节点(开始和完结事件就是分别对应开始的待办和结束的待办),即添加a为流程开始节点,e为流程结束节点,初始化为一个有向图graph,将问题转换为找到一条从a到e的顺序最长路径,并且过滤到非待办节点。

ⅱ、基于改进定制的深度优先遍历算法找到所有路径,然后从中选出最长的路径。详细步骤如下:

def寻找流程图中从起点到终点的所有路径(graph,start,end):

定义visited变量并初始化为一个栈;

在visited栈中添加第一个节点为start(传入的起点);

定义nodestack列表,并初始化为空列表,用于存储当前路径的最近节点;

定义indexstack列表,并初始化为空列表,用于存储nodestack中每个节点的所有邻居节点的索引;

定义变量current,并初始化为start(传入的起点);

定义索引变量i,并初始化为0;

开始循环:

#注释:获取当前节点所有的邻居节点

定义变量neighbors,赋值为graph[current]

开始循环遍历所有邻居节点,每次给i增加1,直到遍历完成:

如果已经到达最后一个邻居节点:

从visted栈中移除当前节点;

如果nodestack列表长度小于1:则终止循环;

从nodestack列表中出栈一个节点,并赋值给current变量;

从indexstack中出栈一个节点,并赋值给索引变量i;

反之如果邻居节点中找到了end(即到达了终点,这里就找到了一条从start到end的路径);

打印出本条路径,即nodestack所有节点+current+end节点,并过滤掉类型为非待办的节点;

索引变量i自增1;

反之,则:

在nodestack列表中入栈current节点;

在indexstack列表中入栈i+1索引;

visited栈中增加neighbors[i]节点;

赋值current变量为neighbors[i];

赋值索引i为0;

循环获取所有路径的长度,取长度最大的路径打印出来;

经过上面步骤能遍历出流程图中从起点到终点的所有路径,例如,假设获取到“abcde”、“abde”、“acde”,然后从中获取到最长的一条路径,即为“abcde”流程顺序节点,作为与待办驱动流程引擎模型对应的流程顺序节点。

ⅲ、最后将sequenceflow(带条件的有向边结构)中的有向线段的条件合并生成为各待办节点(a-b-c-d-e)之间的流转条件列表,将得到的顺序流程节点列表与流转条件列表合并“顺序流程节点配置”生成json文件,根据sequenceflow(带条件的有向边结构)中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件。

由上面技术方案可知,本发明实施例提供的流程引擎自动转换方法,对所述带条件的有向边结构进行解析,按照顺序获取与每条有向边对应的节点对,每个节点对由相应边的起点和终点组成;根据开始事件和结束事件,获取流程开始节点和流程结束节点;根据流程开始节点、流程结束节点以及所述边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件,从而确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件。

在上述实施例的基础上,在本实施例中,与所述待办驱动流程引擎模型对应的流程引擎文件为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表;与所述待办驱动流程引擎模型对应的流程节点配置文件包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件;

相应地,所述基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件,包括:

将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据;

根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

在本实施例中,需要说明的是,在基于流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件时,具体可通过如下方式:

先将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据,然后根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

具体来说,可以基于php通过函数json_decode()为“流程顺序节点、各节点间的流转条件以及所述要素信息”配置数组,然后依次递归遍历上述配置数组,打平成与各个表字段一一对应的单条数据,例如,打平成与mysql数据表字段一一对应的单条数据,将获取的单条数据写入csv的一行配置,作为csv的行数据,然后按照不同数据表的纬度,使csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

在本实施例中,需要说明的是,获取流程顺序节点、各节点间的流转条件以及所述要素信息,将其转化为数组数据,经过流程配置文件转化,转为与所述待办驱动流程引擎模型对应的流程节点配置文件。其中,“流程节点配置文件转化”是一个配置文件转换脚本,获取要素信息以及生成的流程顺序节点、各节点间的流转条件,转成交易自研流程引擎csv配置文件,因为待办驱动流程引擎模型的流程引擎配置是多张基于mysql的数据表,表中都是一条一条的数据,因此,为方便导入数据库,基于php通过函数json_decode()为要素信息等配置数组,然后依次递归遍历数组数据,打平(flatten)成与mysql数据表字段一一对应的单条数据,直接写入csv的一行配置,最终按照不同数据表的维度,生成多个交易配置表(如流程表、流程节点表、流程节点待办表、待办流转条件表)的csv文件,csv的文件名即为数据表名,用于后续的配置文件导入。

由上面技术方案可知,本发明实施例提供的流程引擎自动转换方法,将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据,根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,以便于后续将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件对应转换为与所述待办驱动流程引擎模型对应的流程引擎文件(与所述待办驱动流程引擎模型对应的流程引擎文件包括sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表)。

在上述实施例的基础上,在本实施例中,将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件,包括:

根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

在本实施例中,可以理解的是,在预设转换算法中建立csv文件名和sql数据表名之间的映射关系,然后根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

在本实施例中,需要说明的是,可以将生成的多个交易配置表csv文件,用fgetcsv()函数一行一行循环读取配置表csv文件,根据csv文件名和sql数据表名之间的映射关系,生成mysql的insert的sql,依次写入各个配置表中,包含sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表等。

由上面技术方案可知,本发明实施例提供的流程引擎自动转换方法,根据csv文件名和sql数据表名之间的映射关系,实现csv格式的文件与对应的sql格式的数据表的转化,从而为实现bpmn(标准)流程引擎模型到所述待办驱动流程引擎模型之间自动转化提供数据支持。

在上述实施例的基础上,在本实施例中,在利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物之前,所述方法还包括:建立所述bpmn解析器的步骤,具体包括:

根据预设解析产物需求基于php编写bpmn解析器;其中,所述bpmn解析器中包含有与所述预设解析产物需求对应的待解析要素名;其中,所述bpmn解析器根据所述待解析要素名对所述bpmn流程引擎文件进行解析,获取与所述预设解析产物需求对应的解析产物。

在本实施例中,需要说明的是,在编写所述bpmn解析器时,可以基于php公共的domdocument解析器编写所述bpmn解析器,具体地,需要在所述domdocument解析器中设置待进行解析的bpmn流程引擎文件的标签名(tagname)以及与预设解析产物需求对应的各要素名(elementname)。举例来说,与预设解析产物需求对应的各要素名包含有:流程名(workflowname)、开始事件(startevent)、完结事件(endevent)、待办(usertask)、有向边结构(sequenceflow)等。然后利用该解析器加载待进行解析的bpmn流程引擎文件进行解析,在解析过程中根据要素名获取所述bpmn流程引擎文件中相应的要素信息。

在本实施例中,需要说明的是,dom解析库是解析文件所有内容并不会对内容进行过滤,而基于php的dom解析库支持读取配置解析出所关注的内容并且将其归类,便于后续分析处理。

在本实施例中,bpmn是一种建模标准,现有技术都是基于activiti引擎运行的bpmn解析,不能输出解析产物,而且只支持java语言;而基于php实现的bpmn解析器优势是能够定制生成所需的解析产物,并不限制语言,然后会基于后续的转换算法将解析产物转换成交易自研的待办驱动流程引擎模型对应的流程引擎文件。

图5为本发明一实施例提供的流程引擎自动转换装置的结构示意图,如图5所示,该装置包括:第一获取模块201、第二获取模块202、确定模块203、文件转化模块204、模型转换模块205,其中:

其中,第一获取模块201,用于获取与bpmn流程引擎模型对应的bpmn流程引擎文件;

第二获取模块202,用于利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;其中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型;

确定模块203,用于基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件;

文件转化模块204,用于将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件;

模型转换模块205,用于基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

在上述实施例基础上,所述要素信息至少包括:待办节点、带条件的有向边结构和事件;

相应地,所述确定模块203,用于:

基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件;

基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件。

在上述实施例基础上,所述确定模块203在执行所述基于所述待办节点、带条件的有向边结构和事件,确定与待办驱动流程引擎模型对应的流程顺序节点和各节点间的流转条件时,具体用于:

对所述带条件的有向边结构进行解析,按照顺序获取与所述有向边对应的节点对,所述节点对由相应边的起点和终点组成;

根据开始事件和结束事件,获取流程开始节点和流程结束节点;

根据流程开始节点、流程结束节点以及所述边对应的节点对,确定从流程开始节点到流程结束节点的最长顺序路径;

将所述最长顺序路径作为与待办驱动流程引擎模型对应的流程顺序节点;

根据所述带条件的有向边结构中的条件,确定与待办驱动流程引擎模型对应的各节点间的流转条件。

在上述实施例基础上,与所述待办驱动流程引擎模型对应的流程引擎文件为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表;与所述待办驱动流程引擎模型对应的流程节点配置文件包括csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件;

相应地,所述确定模块203在执行所述基于所述流程顺序节点、各节点间的流转条件以及所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件时,具体用于:

将流程顺序节点、各节点间的流转条件以及所述要素信息转化为数组数据;

根据sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表各自的表字段,分别遍历所述数组数据,获取与各个表字段一一对应的单条数据,并将获取的单条数据作为csv的行数据分别对应写入所述csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件。

在上述实施例基础上所述文件转化模块204,用于:

根据csv文件名和sql数据表名之间的映射关系,将csv格式的流程配置文件、csv格式的流程节点配置文件、csv格式的流程节点待办配置文件和csv格式的待办流转条件配置文件,对应转化为sql格式的流程配置表、sql格式的流程节点配置表、sql格式的流程节点待办配置表和sql格式的待办流转条件配置表。

在上述实施例基础上,所述第二获取模块202在利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物之前,所述装置还包括:建立所述bpmn解析器模块,具体用于:

根据预设解析产物需求基于php编写bpmn解析器;其中,所述bpmn解析器中包含有与所述预设解析产物需求对应的待解析要素名;其中,所述bpmn解析器根据所述待解析要素名对所述bpmn流程引擎文件进行解析,获取与所述预设解析产物需求对应的解析产物。

本发明实施例提供的流程引擎自动转换装置具体可以用于执行上述实施例的流程引擎自动转换方法,其技术原理和有益效果类似,具体可参见上述实施例,此处不再赘述。

基于相同的发明构思,本发明实施例提供一种电子设备,参见图6,电子设备具体包括如下内容:处理器301、通信接口303、存储器302和通信总线304;

其中,处理器301、通信接口303、存储器302通过通信总线304完成相互间的通信;通信接口303用于实现各建模软件及智能制造装备模块库等相关设备之间的信息传输;处理器301用于调用存储器302中的计算机程序,处理器执行计算机程序时实现上述各方法实施例所提供的方法,例如,处理器执行计算机程序时实现下述步骤:获取与bpmn流程引擎模型对应的bpmn流程引擎文件;利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;其中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型;基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件;将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件;基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

基于相同的发明构思,本发明又一实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法实施例提供的方法,例如,获取与bpmn流程引擎模型对应的bpmn流程引擎文件;利用bpmn解析器对所述bpmn流程引擎文件进行解析,获取解析产物;其中,所述bpmn解析器为基于预设解析产物需求采用php编写的解析器,用于对所述bpmn流程引擎文件进行解析以产生所需的解析产物;其中,所述解析产物包含所述bpmn流程引擎文件中的要素信息;所述要素信息为建立待办驱动流程引擎模型所需的流程信息;所述待办驱动流程引擎模型为待从bpmn流程引擎模型转换的模型;基于所述要素信息,确定与所述待办驱动流程引擎模型对应的流程节点配置文件;将所述流程节点配置文件转化为与所述待办驱动流程引擎模型对应的流程引擎文件;基于与所述待办驱动流程引擎模型对应的流程引擎文件,完成从所述bpmn流程引擎模型到所述待办驱动流程引擎模型的转换。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

此外,在本发明中,诸如“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

此外,在本发明中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

此外,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1