一种流程引擎的模块化扩展方法、电子设备及存储介质与流程

文档序号:18641960发布日期:2019-09-11 23:31阅读:154来源:国知局
一种流程引擎的模块化扩展方法、电子设备及存储介质与流程

本发明涉及流程引擎的开发,尤其涉及一种流程引擎的模块化扩展方法、电子设备及存储介质。



背景技术:

目前,流程引擎技术相对较为成熟,但是其扩张能力各有不同。在实际的应用过程中,用户的需求往往都是变化和各不相同的,为了适应不同用户的需求,时常需要修改流程引擎的核心代码,将用户的需求耦合到现有的流程应中,来增加需求,这样导致流程引擎核心代码无法长期保持稳定。另外,每次增加需求时,项目开发时都要做定制化的修改,导致版本的无序膨胀,从而加大了流程引擎的维护成本。



技术实现要素:

为了克服现有技术的不足,本发明的目的之一在于提供一种流程引擎的模块化扩展方法,其能够解决现有技术中项目开发周期长、扩展性差等问题。

本发明的目的之二在于提供一种电子设备,其能够解决现有技术中项目开发周期长、扩展性差等问题。

本发明的目的之三在于提供一种计算机可读存储介质,其能够解决现有技术中项目开发周期长、扩展性差等问题。

本发明的目的之一采用如下技术方案实现:

一种流程引擎的模块化扩展方法,包括以下步骤:

环节扩展步骤:根据系统扩展规范得出待扩展环节的开发包,并将开发包的每个文件对应放置于对应目录下,进而使得当打开流程设计器时,待扩展环节在流程设计器的对应位置中显示;

环节运行步骤:当设计流程图调用待扩展环节时,获取待扩展环节的配置页面并向开发人员显示,以及获取用户输入配置页面的配置参数存储于流程引擎中,供流程引擎内部调用;

其中,系统扩展规范包括以下规定:

开发包的文件包括:文件夹:crystalscene、defaultscene、ftscene以及page,文件:x.java、config.txt,其中x表示待扩展环节的名称;

其中:config.txt为配置文件,规定了以下属性:

rowno配置属性:代表序号,即在流程设计器中显示待扩展环节时按该序号的顺序显示,如果序号相同则按label排序;

clazz配置属性:代表入口类,待扩展环节的扩展逻辑都由该入口类实现;该入口类实现接口为util.commonmodule.dwf.deve.designer.component.component,其具体实现由x.java实现;

id配置属性:表示待扩展环节的唯一编码标示;

label配置属性:表示待扩展环节在流程设计器上的中文名称;

icon配置属性:表示待扩展环节在流程设计器上显示的图标;

desc配置属性:表示鼠标停留在待扩展环节时,流程设计器上的显示说明;

x.java文件,具体实现方法包括:设置配置文件信息、设置配置文件内容、生成id、取得环节默认信息、生成工具栏节点、环节支持的事件体、查询环节实例数据、查询条件、保存环节实例数据、环节实例数据、取得环节中定义的模板页面、取环节右键菜单、取得图片内容以及获取待扩展环节在运行时中的实例对象;

文件夹:page包含流程图设计时待扩展环节所需要显示的配置页面,该配置页面分别为index.ftl配置页面和base.ftl基础信息页面;

文件夹:crystalscene、defaultscene、ftscene均为待扩展环节在流程设计器中显示的页面风格样式的资源目录。

进一步地,所述index.ftl配置页面和base.ftl基础信息页面中均定义如下全局变量:页面的根路径、样式颜色、流程唯一标示、环节类型、环节唯一标示、几何图形类型和待扩展环节的定义id。

进一步地,所述index.ftl配置页面、base.ftl基础信息页面的格式均采用flt模板文件格式。

进一步地,环节扩展步骤包括:首先根据业务需求得出待扩展环节的类型,然后根据系统扩展规范得出待扩展环节的开发包。

进一步地,所述待扩展环节的类型为用户级扩展或者系统级扩展;系统级扩展的开发包放置于lib目录下的dwfcomponent/base目录中,用户级扩展规定放置在lib目录下的dwfcomponent/base目录dwfcomponent/custom的目录中。

进一步地,config.txt的文件格式为json格式。

本发明的目的之二采用如下技术方案实现:

一种电子设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明目的之一所述一种流程引擎的模块化扩展方法的步骤。

本发明的目的之三采用如下技术方案实现:

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明目的之一所述一种流程引擎的模块化扩展方法的步骤。

相比现有技术,本发明的有益效果在于:

本发明通过定义扩展规范,流程开发人员只需通过该扩展规范扩展开发对应的流程环节,并且将对应的开发文件放置于对应的目录下,即可实现扩展的流程环节在流程设计器中显示,流程开发人员在设计流程时,只需要根据调用其他流程环节一样调用扩展的流程环节,并进行相应的配置即可完成流程模块化的扩展开发,不需要对原有的流程引擎的核心代码进行修改,保证了流程代码的版本稳定,降低后期维护成本。

附图说明

图1为本发明提供的流程引擎的模块化扩展方法中流程环节在流程设计器中的显示示意图;

图2为本发明提供的流程环节所放置的目录示意图;

图3为本发明提供的流程环节的开发包所包括的文件目录示意图;

图4为本发明提供的“服务活动”环节运行时的配置页面示意图。

具体实施方式

下面,结合附图以及具体实施方式,对本发明做进一步描述,需要说明的是,在不相冲突的前提下,以下描述的各实施例之间或各技术特征之间可以任意组合形成新的实施例。

实施例一:

针对现有技术中,由于用户的个性化需求导致破坏流程引擎核心代码的稳定性的问题,本发明提供了一种流程引擎的模块化扩展系统,通过定义流程引擎的扩展规范,可以实现用户的个性化需求;同时,保证在不改变流程引擎核心代码的基础上,通过添加模块化代码实现相应的流程环节的扩展,使得流程引擎核心代码版本稳定,降低后期维护成本,并且还可大大提高流程引擎的开发效率。

本发明中流程引擎的流程环节包括两种,分别为:系统级扩展环节和用户级扩展环节,系统级扩展环节是指流程引擎的官方定义的流程环节,而用户级扩展环节是指用户自定义的流程环节。

开发人员根据扩展规范开发得出对应的流程环节,比如系统级扩展环节或用户级扩展环节时,只需要将开发的每个文件放置于流程设计器的对应目录下。当流程开发人员打开流程设计器时,扩展的流程环节就会在流程设计器的界面中进行显示。如图1所示,对于系统级扩展的流程环节,在流程设计器左侧的“流程部件”中显示,用户级扩展的流程环节将在“自定义部件”中显示,这样流程开发人员就可以在设计流程图时直接选择对应的流程环节进行使用。

例如针对用户级扩展环节:“公共审核”,开发人员只需根据本发明提供的扩展规范开发出该流程环节对应的代码文件,然后将代码文件放置于流程设计器源码安装包的对应目录下,“公共审核”就会出现在流程设计器的“自定义部件”中。

在使用时,流程开发人员只需将该“公共审核”拖入到设计的流程图中并用线,将该环节与其他环节连接,即可实现该环节与原有设计的流程图中的其他环节进行融合,实现流程的设计开发。

本发明提供的扩展规范,不仅规定了流程环节的定义页面,同时还规定了流程环节的显示图片、流程环节的实例类名等等。

其中,流程环节的定义页面可以定义用户页面的url地址。

流程环节的实例类名,是用来负责控制流程引擎推动该流程环节的行为方式;并且系统还规定了控制流程引擎推动流程环节的默认行为方式。比如有特殊推动需求时,需要继承系统环节的实例基类,实现个性化推动逻辑。

本发明以系统级扩展环节,比如“服务活动”环节为例来说明:

在当今系统逐步微服务化趋势背景下,流程以传统规范企业人员的工作流程方式,逐步转变为人员和微服务协同工作的方式。也就是一个流程中既有人工处理环节,也有调用微服务处理环节,实现了人员处理和微服务调用的统一编排。比如“服务活动”这个环节,其用于实现人员处理和微服务调用的流程快速编排,但是现有的流程环节的扩展需要专业的流程开发人员参与,要求流程开发人员专业性强,同时流程环节的开发周期长。

通过本发明对“服务活动”这一环节进行扩展时,可根据用户随时可变的业务需求进行快速开发,大大降低编排流程的技术门槛;同时,该环节的扩展不需要修改流程引擎的核心代码,保证了原有流程引擎核心代码的版本稳定性。

另外,本发明还根据扩展环节的不同,设定了不同类型的扩展环节所防止的文件夹,扩展环节开发后的代码文件放置在不同的文件夹内,进而可实现流程设计器中显示扩展环节的中环节的显示。如图2所示,系统级扩展环节,规定放置在lib目录下的dwfcomponent/base目录中;用户级扩展环节,规定放置在lib目录下的dwfcomponent/base目录dwfcomponent/custom的目录中。

如图3所示,本发明还给出流程环节的开发包所涉及到文件夹以及文件内容:

其中,文件包括config.txt,是扩展的流程环节的配置文件,其实现如下:

{

"rowno":"4",

"clazz":"util.commonmodule.dwf.deve.designer.component.base.act.gateway.gateway",

"id":"base.act.gateway",

"label":"关口",

"icon":"act.png",

"desc":"关口"

}

其中,rowno配置属性:代表序号,即在流程设计器中显示流程环节时按该顺序显示,如果序号相同则按label排序。

clazz配置属性:代表入口类,流程环节的扩展逻辑由该类实现,该类实现的接口为util.commonmodule.dwf.deve.designer.component.component,其具体实现由x.java文件实现。其中,x表示流程环节的名称,比如gateway.java。

本发明还给出了该类的具体实现的方法:

publicconfiggetconfig();

/**

*设置配置文件信息

*

*@paramconfig

*/

publicvoidsetconfig(configconfig);

/**

*设置配置文件内容

*

*@paramcontext

*/

publicvoidinit(stringcontext);

/**

*生成id

*

*@paramlength

*@return

*/

publicstringgenids(intlength);

/**

*取得环节默认信息

*

*@return

*/

publicmap<string,object>getcompdefaultinfo();/**

*生成工具栏节点

*

*@return

*/

publicmap<string,object>gettoolbarnode();

/**

*环节支持的事件体

*

*@return

*/

publicmap<string,string>events();

/**

*查询环节实例数据

*

*@paramparams

*查询条件

*@return

*/

publiclistfind(mapparams);

/**

*保存环节实例数据

*

*@parammap

*环节实例数据

*/

publiclist<record>save(mapmap);

/**

*取得环节中定义的模板页面

*

*@paramrequest

*@paramftlurl

*@return

*/

publicstringgetpage(mapparams,stringftlurl);

/**

*取环节右键菜单

*

*@return

*/

publiclist<map<string,string>>getmenu();

/**

*取得图片内容

*

*@return

*/

publiclist<byte[]>getimage(stringimgname);

/**

*获取环节定义在运行时中的实例对象

*@return

*/

publicinstancegetinstance();

id配置属性:表示流程环节的唯一编码标示;

label配置属性:表示流程环节在流程设计器上的中文名称;

icon配置属性:表示流程环节在流程设计器上显示的图标;

desc配置属性:表示鼠标停留在流程环节时,流程设计器上的显示说明。

文件夹:page,包含在流程图设计时,流程环节所需要展现的配置页面。该配置页面采用ftl模板格式文件,采用freemarker模板引擎解析,分别为index.ftl配置页面和base.ftl基础信息页面。

这两个文件中分别均定义了若干全局变量,如:

${request.contextpath}页面的根路径、

${color}样式颜色、

${params.i_wfid}流程唯一标示、

${params.i_type}该环节类型、

${params.id}该环节唯一标示、

${params.pobjecttype}几何图形类型、

${params.comp_id}自定义扩展环节的定义id。

本发明对于配置页面,通过采用ftl模板文件格式,而不采用jsp或html文件格式,在开发时,可将配置页面与其他文件一起打包,并且还具备页面动态解析的能力。

文件夹:crystalscene、defaultscene、ftscene,均是用来在流程图设计时,所展示的页面风格样式的资源目录,比如图标显示。对于图标,其名称中包含数字,该数字代表流程环节处于不同状态下所需要显示的图标。

流程开发人员可以通过上述扩展规范开发、以及业务需求开发得出对应的流程环节,比如开发“服务活动”这一环节,然后将其开发的文件放置于对应的目录下。当开发人员打开流程设计器时进行流程设计,“服务活动”环节就会在流程设计器的对应位置显示出来,供流程设计人员调用。

流程开发人员设计流程图时,通过调用该“服务活动”来实现,与其他环节之间的连接,比如将“服务活动”环节拖入到流程设计框内,并通过线将“服务活动”与其他环节连接。

当调用“服务活动”环节时,如图4所示,会向用户提供了配置页面,该配置页面支持用户填写相应的配置参数数据,该配置参数数据比如包括服务地址、服务入参、服务出参、头部数据等。

再比如,流程设计时,当“订单审核”这一环节配置通过后,调用“查询电路信息”环节,就会向用户显示一配置页面,并接收用户输入的服务入参,然后系统就会将服务入参进行组装,并将其传递给该环节所对应的微服务,以及接收微服务返回的数据并按照出参配置组装出出参数据,并返回给流程引擎,供引擎内部使用。

另外,该配置页面实现以flt模板文件实现,内容根据需求进行填写;并且必须将其放置在对应的文件夹中;配置数据采用hibiermatebean的方式存储。

通过上述方式,在流程设计器中扩展出比如“服务活动”环节,并配置保存特定的配置数据,完成“服务活动”环节的扩展调用。

也即是说在实际流程开发时,流程开发人员根据扩展规范进行对应流程环节的开发,然后将开发完成的代码文件分别放置于对应的目录内;然后再启动流程设计器就可以在流程设计器中显示对应的扩展环节,流程开发人员就可以在流程设计器中将扩展环节拖入到对应的流程设计图中,来完成实现流程图的设计。

本发明还具备技术效果:

1、流程环节的配置页面采用flt模板文件格式,而不是采用常规的jsp或html文件格式。通过采用flt模板文件格式,可以将该配置页面与其他的文件一起打包,并且该配置页面具备了动态解析的能力。

2、本发明通过采用一个配置文件、一个java实现类、两个ftl模板文件以及若干个图片就可以完成一个扩展环节的开发,大大提高了流程扩展的效率。

3、对于每个自定义扩展环节所需要的文件全部包含在一个文件夹内,方便打包;不同的自定义扩展环节的文件之间不会产生混乱。

4、对于每个开发好的自定义扩展环节打包后只需放入到特定目录中,就可以立即生效,不需要进行额外配置,方便操作。

实施例二:

本发明还提供了一种电子设备,其包括存储器、处理器以及存储在存储器上并可在处理上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

环节扩展步骤:根据系统扩展规范得出待扩展环节的开发包,并将开发包的每个文件对应放置于对应目录下,进而使得当打开流程设计器时,待扩展环节在流程设计器的对应位置中显示;

环节运行步骤:当设计流程图调用待扩展环节时,获取待扩展环节的配置页面并向开发人员显示,以及获取用户输入配置页面的配置参数存储于流程引擎中,供流程引擎内部调用;

其中,系统扩展规范包括以下规定:

开发包的文件包括:文件夹:crystalscene、defaultscene、ftscene以及page,文件:x.java、config.txt,其中x表示待扩展环节的名称;

其中:config.txt为配置文件,规定了以下属性:

rowno配置属性:代表序号,即在流程设计器中显示待扩展环节时按该序号的顺序显示,如果序号相同则按label排序;

clazz配置属性:代表入口类,待扩展环节的扩展逻辑都由该入口类实现;该入口类实现接口为util.commonmodule.dwf.deve.designer.component.component,其具体实现由x.java实现;

id配置属性:表示待扩展环节的唯一编码标示;

label配置属性:表示待扩展环节在流程设计器上的中文名称;

icon配置属性:表示待扩展环节在流程设计器上显示的图标;

desc配置属性:表示鼠标停留在待扩展环节时,流程设计器上的显示说明;

x.java文件,具体实现方法包括:设置配置文件信息、设置配置文件内容、生成id、取得环节默认信息、生成工具栏节点、环节支持的事件体、查询环节实例数据、查询条件、保存环节实例数据、环节实例数据、取得环节中定义的模板页面、取环节右键菜单、取得图片内容以及获取待扩展环节在运行时中的实例对象;

文件夹:page包含流程图设计时待扩展环节所需要显示的配置页面,该配置页面分别为index.ftl配置页面和base.ftl基础信息页面;

文件夹:crystalscene、defaultscene、ftscene均为待扩展环节在流程设计器中显示的页面风格样式的资源目录。

进一步地,所述index.ftl配置页面和base.ftl基础信息页面中均定义如下全局变量:页面的根路径、样式颜色、流程唯一标示、环节类型、环节唯一标示、几何图形类型和自定义扩展环节的定义id。

进一步地,所述index.ftl配置页面、base.ftl基础信息页面的格式均采用flt模板文件格式。

进一步地,环节扩展步骤包括:首先根据业务需求得出待扩展环节的类型,然后根据系统扩展规范得出待扩展环节的开发包。

进一步地,所述待扩展环节的类型为用户级扩展或者系统级扩展;系统级扩展的开发包放置于lib目录下的dwfcomponent/base目录中,用户级扩展规定放置在lib目录下的dwfcomponent/base目录dwfcomponent/custom的目录中。

进一步地,config.txt的文件格式为json格式。

实施例三:

本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

环节扩展步骤:根据系统扩展规范得出待扩展环节的开发包,并将开发包的每个文件对应放置于对应目录下,进而使得当打开流程设计器时,待扩展环节在流程设计器的对应位置中显示;

环节运行步骤:当设计流程图调用待扩展环节时,获取待扩展环节的配置页面并向开发人员显示,以及获取用户输入配置页面的配置参数存储于流程引擎中,供流程引擎内部调用;

其中,系统扩展规范包括以下规定:

开发包的文件包括:文件夹:crystalscene、defaultscene、ftscene以及page,文件:x.java、config.txt,其中x表示待扩展环节的名称;

其中:config.txt为配置文件,规定了以下属性:

rowno配置属性:代表序号,即在流程设计器中显示待扩展环节时按该序号的顺序显示,如果序号相同则按label排序;

clazz配置属性:代表入口类,待扩展环节的扩展逻辑都由该入口类实现;该入口类实现接口为util.commonmodule.dwf.deve.designer.component.component,其具体实现由x.java实现;

id配置属性:表示待扩展环节的唯一编码标示;

label配置属性:表示待扩展环节在流程设计器上的中文名称;

icon配置属性:表示待扩展环节在流程设计器上显示的图标;

desc配置属性:表示鼠标停留在待扩展环节时,流程设计器上的显示说明;

x.java文件,具体实现方法包括:设置配置文件信息、设置配置文件内容、生成id、取得环节默认信息、生成工具栏节点、环节支持的事件体、查询环节实例数据、查询条件、保存环节实例数据、环节实例数据、取得环节中定义的模板页面、取环节右键菜单、取得图片内容以及获取待扩展环节在运行时中的实例对象;

文件夹:page包含流程图设计时待扩展环节所需要显示的配置页面,该配置页面分别为index.ftl配置页面和base.ftl基础信息页面;

文件夹:crystalscene、defaultscene、ftscene均为待扩展环节在流程设计器中显示的页面风格样式的资源目录。

进一步地,所述index.ftl配置页面和base.ftl基础信息页面中均定义如下全局变量:页面的根路径、样式颜色、流程唯一标示、环节类型、环节唯一标示、几何图形类型和自定义扩展环节的定义id。

进一步地,所述index.ftl配置页面、base.ftl基础信息页面的格式均采用flt模板文件格式。

进一步地,环节扩展步骤包括:首先根据业务需求得出待扩展环节的类型,然后根据系统扩展规范得出待扩展环节的开发包。

进一步地,所述待扩展环节的类型为用户级扩展或者系统级扩展;系统级扩展的开发包放置于lib目录下的dwfcomponent/base目录中,用户级扩展规定放置在lib目录下的dwfcomponent/base目录dwfcomponent/custom的目录中。

进一步地,config.txt的文件格式为json格式。

上述实施方式仅为本发明的优选实施方式,不能以此来限定本发明保护的范围,本领域的技术人员在本发明的基础上所做的任何非实质性的变化及替换均属于本发明所要求保护的范围。

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