工作流的实现方法、服务器及系统与流程

文档序号:16632776发布日期:2019-01-16 06:44阅读:159来源:国知局
工作流的实现方法、服务器及系统与流程

本发明涉及计算机技术领域,特别是涉及一种工作流的实现方法、服务器及系统。



背景技术:

工作流是一种按预设的流程规则、利用多个工作参与者的计算机在工作参与者之间传递文档、信息或者任务的计算模型,用于实现工作业务的自动化。在实现某一工作业务的工作流时,可以根据工作业务的流程规则绘制流程图,以定义流程规则,并生成标记流程规则的流程图标识。同时,维护人员设计用于实现流程规则中各工作节点的工作流函数,并建立流程图标识与工作流函数的对应关系。在接收到某一工作流的启动请求后,可以基于工作流携带的流程图标识,利用上述已建立的流程标识与工作流函数的对应关系,确定该流程图各工作节点的工作流函数,从而按照该工作流的流程图,实现该工作流。

其中,流程图标识会在流程图发生修改时更新。流程图的修改包括维护人员对流程图的流程规则的修改,以及调整流程图形状、拖动流程图中的框图等流程图外形的修改。通常情况下,由于流程规则的修改是维护人员的主动修改,因此,维护人员可以及时建立更新的流程图标识与用于实现修改后流程规则的修改后工作流函数的对应关系。对于仅修改流程图外形的外形修改流程图,由于未重新定义流程规则,因此需要使用该外形修改流程图修改前的流程图对应的已有工作流函数。但是,流程图外形的修改很可能是维护人员的误操作,因而维护人员无法及时建立更新的流程图标识与已有工作流函数的对应关系。

同时,随着工作流要实现的业务的变化,会出现大量修改流程规则的情况,从而产生大量的已有工作流函数。因此,需要维护人员针对每个外形修改流程图,人工分析该外形修改流程图的流程规则,以从大量已有工作流函数中,确定该外形修改流程图对应的已有工作流函数,进而建立该外形修改流程图的新流程图标识与已有工作流函数的对应关系。

实际应用中,由于流程图需要人工绘制以及维护人员误操作等主观因素,会多次出现仅修改流程图外形的情况,造成上述外形修改流程图大量出现。因此,需要维护人员人工额外分析大量仅修改流程图外形的修改后流程图,以建立仅外形修改流程图的新流程图标识与已有工作流函数的对应关系,增加了工作流的维护成本和难度。



技术实现要素:

本发明实施例的目的在于提供一种工作流的实现方法、服务器及系统,以实现降低工作流的维护成本和难度的目的。具体技术方案如下:

第一方面,本发明实施例提供了一种工作流的实现方法,应用于服务端,该方法包括:

接收工作流启动指令;

获取所述工作流的业务版本信息;所述业务版本信息在所述工作流初次启动前被设置为初始值,并仅在所述工作流的流程图的流程规则被修改后更新;

将业务版本信息对应的流程图确定为当前流程图;

按照当前流程图,确定工作流的各个工作节点;

按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数;

按照当前流程图,执行各个工作节点的工作流函数。

第二方面,本发明实施例提供了一种服务器,该服务器包括:

接收模块,用于接收工作流启动指令;

版本信息获取模块,用于获取工作流的业务版本信息;业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新;

工作流函数获取模块,用于将业务版本信息对应的流程图确定为当前流程图;按照当前流程图,确定工作流的各个工作节点;按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数;

执行模块,用于按照当前流程图,执行各个工作节点的工作流函数。

第三方面,本发明实施例提供了一种工作流的实现系统,该系统包括:服务器和用户端;

用户端,用于向服务器发送工作流启动指令;

服务器,用于接收工作流启动指令;获取工作流的业务版本信息;业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新;将业务版本信息对应的流程图确定为当前流程图;按照当前流程图,确定工作流的各个工作节点;按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数;按照当前流程图,执行各个工作节点的工作流函数。

第四方面,本发明实施例提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的工作流的实现方法的步骤。

本发明实施例提供的一种工作流的实现方法、服务器及系统,通过接收工作流启动指令,获取工作流的业务版本信息,业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新。将业务版本信息对应的流程图确定为当前流程图。按照当前流程图,确定工作流的各个工作节点。按照预设的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数。按照当前流程图,执行各个工作节点的工作流函数。与传统的按照流程标识与工作流函数的对应关系实现工作流的方式相比,由于业务版本信息仅在工作流的流程图的流程规则被修改后更新,对于未修改流程规则的外形修改流程图所对应的工作流,可以将该外形修改流程图修改前的流程图的业务版本信息作为该外形修改流程图的业务版本信息,从而沿用该外形修改流程图修改前的流程图的业务版本信息与工作流函数的对应关系。因此,无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系,降低了工作流的维护成本和难度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明一实施例的工作流的实现方法的流程示意图;

图2为本发明另一实施例的工作流的实现方法的流程示意图;

图3为本发明一实施例的服务器的结构示意图;

图4为本发明另一实施例的服务器的结构示意图;

图5为本发明再一实施例的服务器的结构示意图。

具体实施方式

为了使本领域技术人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

下面首先对本发明一实施例的工作流的实现方法进行介绍。

如图1所示,本发明一实施例的工作流的实现方法的流程,应用于服务端,该方法可以包括:

s101,接收工作流启动指令。

工作流是一种用于实现工作业务自动化的计算模型。工作流启动指令可以由工作业务参与者的用户端发送,由用于实现工作流的服务端接收。例如,实现请假的工作流时,申请人可以进入工作流服务端提供的工作流网页,通过点击工作流网页中的“请假”业务图标或按钮等,发送工作流启动指令。当然,实际应用中,任何计算机设备可以作为用户端,不同工作业务参与者的区分可以通过该参与者进入工作流网页时提交的用户信息确定。或者,对于存在严格用户区分的需求,也可以将计算机设备的机器信息,例如型号、机器编码等用于不同工作业务参与者的区分,对此,每个参与者需要利用固定的计算机使用工作流。

s102,获取工作流的业务版本信息。业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新。

获取工作流的业务版本信息,可以是直接读取工作流携带的业务版本信息,也可以是利用脚本任务,将工作流的业务版本信息设置为被写入脚本任务的业务版本信息。

其中,业务版本信息用于标记工作流的业务执行逻辑,不同的流程规则下,工作流的业务执行逻辑不同。实际应用中,工作流初次启动前的工作流维护阶段,代表该工作流的流程规则为第一次确定的,且未进行修改,因此,可以在工作流初次启动前,将业务版本信息设置为初始值。当然,初始值的具体设置可以是任意值,例如0或者1.0等。修改了流程图的流程规则,工作流的业务执行逻辑发生更改,需要对工作流的业务版本信息进行更新。未修改流程图的流程规则,工作流的业务执行逻辑未改变,无需更改业务版本信息。

s103,将业务版本信息对应的流程图确定为当前流程图。

不同的流程图定义了不同的流程规则,具体为不同的流程规则下工作流具有不同的工作节点,或者工作节点的执行顺序不同。例如,业务版本信息1.0的流程图a包括:开始节点、提交节点、审核节点s1、审核节点s2以及结束节点。业务版本信息1.1的流程图b包括:开始节点、提交节点、编辑节点、审核节点s1、审核节点s2以及结束节点。业务版本信息1.2的流程图c包括:开始节点、提交节点、审核节点s1、编辑节点、审核节点s3以及结束节点。

业务版本信息所标记的工作流的业务执行逻辑是由流程规则决定的,因此,需要将业务版本信息对应的流程图确定为当前流程图,以用于后续按照当前流程图实现工作流。当然,业务版本信息可以是流程图的属性信息,在流程图绘制时,或者,流程图绘制完成后为该流程图标记业务版本信息。

s104,按照当前流程图,确定工作流的各个工作节点。

例如,将业务版本信息1.0的流程图a确定为当前流程图后,可以按照当前流程图,可以确定工作流包含的工作节点为开始节点、提交节点、审核节点以及结束节点。实际应用中,服务端可以通过按照由当前流程图编译得到的配置文件,确定工作流的各个工作节点。

s105,按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数。

工作节点的工作流函数用于实现该工作节点,不同的工作节点有不同的工作流函数。在确定了工作节点后,可以按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数。

已设置的业务版本信息与工作流函数的对应关系可以是预先设置的业务版本信息与工作流函数的对应关系表,按照业务版本信息和各个工作节点可以从该对应关系表中查找到当前工作流的各个工作节点的工作流函数。或者,已设置的业务版本信息与工作流函数的对应关系可以是设置在工作流中的注释信息,该注释信息指明与业务版本信息对应的工作流函数。

例如,按照已设置的业务版本信息1.1与工作流函数的对应关系1.1,获取业务版本信息1.1的流程图b的审核节点s2的工作流函数f2。按照已设置的业务版本信息1.2与工作流函数的对应关系1.2,获取业务版本信息1.2的流程图c的审核节点s3的工作流函数f3。如果流程图o仅修改了流程图c的外形,未修改流程图c的流程规则,则将流程图o确定为当前流程图的工作流,可以按照已设置的业务版本信息1.2与工作流函数的对应关系1.2,获取各个工作节点的工作流函数。

由此,按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数时,如果流程规则未修改,可以直接获取未更新的业务版本信息对应的工作流函数,从而无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系。

s106,按照当前流程图,执行各个工作节点的工作流函数。

当前流程图定义了工作业务的流程规则,按照当前流程图可以确定各个工作节点的执行顺序,因此,在获取了各个工作节点的工作流函数后,可以按照当前流程图,执行各个工作节点的工作流函数。例如,获取了业务版本信息1.0的流程图a中,开始节点的工作流函数fs、提交节点的工作流函数f0、审核节点s1的工作流函数f1、审核节点s2的工作流函数f2以及结束节点的工作流函数fe后,按照当前流程图a中各个工作节点的顺序执行这些工作流函数,如执行完工作流函数fs,执行工作流函数f0。

实际应用中,当各个工作节点的工作流函数的执行后,服务端可以生成与执行结果对应的网页,用于传递工作流函数的输入与输出。工作业务参与者可以通过用户端获取服务端提供的与该参与者对应的网页。例如,某一请假工作流的小组主管审批节点的工作流函数执行后,请假人的小组主管通过用户端,可以获取该请假工作流中小组主管审批的网页。小组主管通过该网页输入以及提交的审批结果将作为部门主管的工作流函数的输入,用于后续执行部门主管的工作流函数。

本发明实施例提供的一种工作流的实现方法,与传统的按照流程标识与工作流函数的对应关系实现工作流的方式相比,由于业务版本信息仅在工作流的流程图的流程规则被修改后更新,对于未修改流程规则的外形修改流程图所对应的工作流,可以将该外形修改流程图修改前的流程图的业务版本信息作为该外形修改流程图的业务版本信息,从而沿用该外形修改流程图修改前的流程图的业务版本信息与工作流函数的对应关系。因此,无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系,降低了工作流的维护成本和难度。

可选的,上述本发明图1实施例的步骤s101中,工作流启动指令包含工作流的业务类型。

工作流的业务类型为按照工作流所要实现的工作业务的种类划分的,具体业务类型由工作流实际要实现的工作业务确定。例如,“请假”业务类型,“合同审批”业务类型以及“xx项目管理”业务类型等。

相应的,上述本发明图1实施例的步骤s102,具体可以包括:

确定与业务类型对应的工作流。其中,一个业务类型对应一种工作流。

获取该业务类型的工作流的业务版本信息。

实际应用中,不同业务类型的工作流具有不同的业务执行逻辑,因此,需要对于不同业务类型的工作流进行区分。服务端确定与工作流启动指令包含的业务类型对应的工作流,以便后续获取该业务类型的工作流的业务版本信息,避免存在多个业务类型时,无法从多个业务类型的工作流中确定工作流启动指令对应的工作流。

例如,服务端接收到工作流启动指令1,确定工作流启动指令1包含的业务类型“请假”的工作流l1,获取工作流l1的业务版本信息1.0。服务端接收到工作流启动指令2,则确定工作流启动指令2包含的业务类型“合同审批”的工作流ca1,获取工作流ca1的业务版本信息2.0。

当然,一个业务类型对应一种工作流,一种工作流可以被多次启动,也可以被多个用户同时启动。当一种工作流被多个用户同时启动时,服务端接收多个工作流启动指令,可以根据工作流启动指令中携带的用户信息区分同一种工作流对不同用户的多个执行进程,例如根据用户信息,对不同用户的多个执行进程标记与用户信息对应的标识。

例如,服务端接收包含的业务类型均为“请假”的工作流启动指令3和工作流启动指令4。其中,工作流启动指令3为用户端1发送的,工作流启动指令4为用户端2发送的。服务端可以针对工作流启动指令3确定业务类型“请假”的l1,获取工作流l1的业务版本信息1.0,为该工作流l1标记用户端1的标识,如工作流l11。针对工作流启动指令4确定业务类型“请假”的l1,获取工作流l1的业务版本信息1.0,为该工作流l1标记用户端2的标识,如工作流l12。

可选的,上述本发明图1实施例的步骤s102,具体可以包括:

利用脚本任务,将工作流的业务版本信息设置为被写入脚本任务的业务版本信息。

被写入脚本任务中的业务版本信息,在工作流初次启动前被写为初始值,并仅在工作流的流程图的流程规则被修改后,被写为修改后的业务版本信息。

实际应用中,可以在工作流初次启动前,在脚本任务中写入初始值作为业务版本信息,并仅在工作流的流程图的流程规则被修改后,将脚本任务中的业务版本信息写为修改后的业务版本信息,以更新业务版本信息。当然,脚本任务中业务版本信息的写入可以是维护人员直接在脚本任务中编辑的,也可以是维护人员在服务端提供的业务版本信息编辑窗口中填写并提交的。

相应的,利用脚本任务,将工作流的业务版本信息设置为被写入脚本任务的业务版本信息,具体可以是通过运行脚本任务,实现对工作流的业务版本信息的设置。

为了运行脚本任务,可选的,上述脚本任务设置在工作流的开始节点之后,以及工作流的非开始节点的工作节点之前。

实际应用中,运行脚本任务可以是在工作流中执行脚本任务,例如,在接收工作流的启动指令后,执行脚本任务。为了保证后续按照流程图执行各个工作节点的工作流函数时,所确定的工作流函数与业务版本信息对应,需要在各个工作节点的工作流函数执行前,将工作流的业务版本信息设置为被写入脚本任务的业务版本信息。因此,可以将脚本任务设置在工作流的开始节点之后,以及工作流的非开始节点的工作节点之前。

例如,任意流程图均包括:开始节点和脚本任务节点。接收工作流启动指令后,开始节点执行完成,执行脚本任务。脚本任务执行后,工作流的业务版本信息被设置为写入脚本任务中的业务版本信息1.0,从而获取了工作流的业务版本信息1.0。后续可以根据工作流的业务版本信息1.0,将业务版本信息1.0对应的流程图a确定为当前流程图。

可选的,上述本发明图1实施例中,工作流的流程图的流程规则被修改,具体可以包括:

工作流的流程图中,各个工作节点的执行顺序被修改。

实际应用中,各个工作节点的执行顺序被修改具体可以包括:已有工作节点的执行顺序调整,和/或者,增加新的工作节点。

例如,业务版本信息1.0的工作流的流程图a包括:开始节点、提交节点、审核节点s1、审核节点s2以及结束节点。该业务版本信息1.0工作流的流程图的流程规则被修改,可以包括:

审核节点s1和审核节点s2的执行顺序调整,得到业务版本信息1.3的流程图e包括:开始节点、提交节点、编辑节点、审核节点s2、审核节点s1以及结束节点。

提交节点和审核节点s1之间增加编辑节点,得到业务版本信息1.1的流程图b包括:开始节点、提交节点、编辑节点、审核节点s1、审核节点s2以及结束节点。

两个审核节点之间增加编辑节点,且审核节点s1和审核节点s2的执行顺序调,得到业务版本信息1.4的工作流的流程图f包括:开始节点、提交节点、审核节点s2、编辑节点、审核节点s1以及结束节点。

或者,工作流的流程图中,各个工作节点的工作流函数的执行顺序被修改。

例如,业务版本信息1.0的工作流的流程图a中,审核节点s1包含工作流函数f1和工作流函数f3。审核节点s1的工作流函数的执行顺序从执行f1后,再执行f3,被修改为执行f3后再执行f1,得到业务版本信息1.5的工作流的流程图g。

或者,工作流的流程图中,各个工作节点的工作流函数被修改。

例如,业务版本信息1.0的流程图a中,审核节点s2的工作流函数f2,被修改为工作流函数f3,得到业务版本信息1.6的工作流的流程图h。

可选的,上述本发明图1实施例中步骤s105,具体可以包括:

从工作流的已设置的注释信息中,读取被写入的业务版本信息与工作流函数的对应关系。

业务版本信息与工作流函数的对应关系,在工作流初次启动前被写为业务版本信息初始值与原始工作流函数的对应关系,并在工作流的流程图的流程规则被修改后,被写为修改后的业务版本信息与修改后的工作流函数的对应关系。

实际应用中,可以在工作流的各个工作节点处设置注释信息,写明该工作节点与该工作节点的工作流函数的对应关系。通过读取被写入的业务版本信息与工作流函数的对应关系,能够获取各个工作节点的工作流函数。

例如,业务版本信息1.0的工作流的注释信息,可以包括:开始节点处的注释信息“针对业务版本信息1.0的工作流函数fs”、提交节点处的注释信息“针对业务版本信息1.0的工作流函数f0”、审核节点s1处的注释信息“针对业务版本信息1.0的工作流函数f1”、审核节点s2处的注释信息“针对业务版本信息1.0的工作流函数f2”以及结束节点处的注释信息“针对业务版本信息1.0的工作流函数fe”。读取上述注释信息中被写入的业务版本信息与工作流函数的对应关系,可以确定提交节点工作流函数为工作流函数fs,提交节点的工作流函数为工作流函数f1,从而获取服务端中预先存储的工作流函数fs以及工作流函数f1。

如图2所示,本发明另一实施例的工作流的实现方法的流程,该方法可以包括:

s201,接收工作流启动指令。

s202,获取工作流的业务版本信息。业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新。

s203,将业务版本信息对应的流程图确定为当前流程图。

s204,按照当前流程图,确定工作流的各个工作节点。

s201至s204与本发明图1实施例的s101至s104为相同的步骤,在此不再赘述,详见本发明图1实施例的描述。

s205,从工作流的已设置的注释信息中,读取被写入的业务版本信息与工作流函数的对应关系。

s205与本发明图1实施例的可选实施例中,获取各个工作节点的工作流函数的步骤相同,在此不再赘述,详见本发明图1可选实施例的描述。

s206,按照当前流程图,执行各个工作节点的工作流函数。

s206与本发明图1实施例的s106为相同的步骤,在此不再赘述,详见本发明图1实施例的描述。

s207,在工作流的结束节点获得预设返回值时,结束运行工作流。

当结束节点的工作流函数执行后,结束节点将获得预设返回值,工作流的运行结束。例如,某一请假工作流,结束节点获得审批节点s2的输出“完成审批”,该请假工作流结束。某一项目工作流,结束节点获得验收节点的输出“验收通过”,该项目工作流结束。

s208,按照预设周期,获取每个已启动的工作流的业务版本信息。

实际应用中,随着工作业务的变更,和/或者,工作流的更新完善,可能多次改变工作流的流程图的流程规则,导致大量用于改变后流程规则实现的工作流函数。但是,某些改变后流程规则对应的旧工作流可能因为过于老旧或者最新流程规则对应的新工作流的全面使用,而不再被使用,造成这种不再使用的冗余工作流的工作流函数冗余。对此,为了减少冗余工作流函数占用存储资源,可以删除冗余工作流函数。

当然,删除冗余工作流函数时,需要避免影响已启动且在运行中的工作流,为此,可以按照预设周期,获取每个已启动的工作流的业务版本信息,以用于后续删除不处于启动状态的工作流的冗余工作流函数。

s209,将各个已启动的工作流中,已结束运行的工作流的业务版本信息作为候选冗余版本信息。

为了避免将初次启动前的工作流误判为冗余工作流,需要从各个已启动的工作流中确定冗余工作流。同时,考虑到工作流函数与业务版本信息存在对应关系,因此,可以将工作流的业务版本信息用于后续确定冗余工作流函数,以提高冗余工作流函数的确定效率。

此外,为了避免影响已启动且在运行中的工作流的运行,各个已启动的工作流中已结束运行的工作流的业务版本信息,才能够作为候选冗余版本信息,用于后续从候选冗余版本信息中确定出符合冗余条件的冗余版本信息。

s210,根据候选冗余版本信息和运行中工作流的业务版本信息,将设置时间先于运行中工作流的业务版本信息的候选冗余版本信息,确定为冗余版本信息。版本信息中包含用于表明版本信息的设置时间先后的信息。

通常情况下,业务版本信息采用数字表示,业务版本信息的大小可以用于表明版本信息的设置时间先后。例如,业务版本1.0的设置时间先于业务版本1.1的设置时间。设置时间先于运行中工作流的业务版本信息的候选冗余版本信息,为老旧且不再使用的冗余工作流的业务版本信息,因此,可以被确定为冗余版本信息。

s211,基于冗余版本信息和已设置的注释信息,删除冗余版本信息对应的工作流函数。

确定了冗余版本信息后,可以根据工作流中已设置的注释信息,确定出与该冗余版本信息对应的工作流函数,从而删除该与冗余版本信息对应的冗余工作流函数。

例如,按照预设周期3个月,获取的已启动的工作流的业务版本信息为业务版本1.0,业务版本1.1,业务版本1.2,业务版本2.0以及业务版本2.2。其中,已结束运行的工作流的业务版本信息为业务版本1.0,业务版本1.2以及业务版本2.2,作为候选冗余版本信息。根据候选冗余版本信息业务版本1.0,业务版本1.2以及业务版本2.2,和运行中的工作流的业务版本信息业务版本1.1以及业务版本2.0,确定业务版本1.0的设置时间先于运行中工作流的业务版本信息。将业务版本1.0确定为冗余版本信息。基于冗余版本信息业务版本1.0和已设置的注释信息,删除冗余版本信息对应的工作流函数。

当然,实际应用中,删除工作流函数之前,可以向维护人员发送是否删除的提示信息和冗余版本信息,以便维护人员确认该工作流函数是否可以删除,避免误删除造成的损失。

相应于上述方法实施例,本发明一实施例还提供了工作流的实现系统,该系统可以包括服务器和用户端。

其中,用户端,用于向服务器发送工作流启动指令。

服务器,用于接收工作流启动指令;获取工作流的业务版本信息;业务版本信息在工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新。将业务版本信息对应的流程图确定为当前流程图;按照当前流程图,确定工作流的各个工作节点;按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数。按照当前流程图,执行各个工作节点的工作流函数。

本发明实施例提供的一种工作流的实现系统,与传统的按照流程标识与工作流函数的对应关系实现工作流的方式相比,由于业务版本信息仅在工作流的流程图的流程规则被修改后更新,对于未修改流程规则的外形修改流程图所对应的工作流,可以将该外形修改流程图修改前的流程图的业务版本信息作为该外形修改流程图的业务版本信息,从而沿用该外形修改流程图修改前的流程图的业务版本信息与工作流函数的对应关系。因此,无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系,降低了工作流的维护成本和难度。

相应于上述系统实施例,本发明一实施例还提供了服务器。

如图3所示,本发明一实施例的服务器的结构,该服务器可以包括:

接收模块301,用于接收工作流启动指令;

版本信息获取模块302,用于获取工作流的业务版本信息;业务版本信息在所述工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新;

工作流函数获取模块303,用于将业务版本信息对应的流程图确定为当前流程图;按照当前流程图,确定工作流的各个工作节点;按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数;

执行模块304,用于按照所述当前流程图,执行各个工作节点的工作流函数。

可选的,上述工作流启动指令包含所述工作流的业务类型;

版本信息获取模块302,具体用于:

确定与业务类型对应的工作流;其中,一个业务类型对应一种工作流;

获取该业务类型的工作流的业务版本信息。

可选的,版本信息获取模块302,具体用于:利用脚本任务,将工作流的业务版本信息设置为被写入脚本任务的业务版本信息。

其中,被写入脚本任务中的业务版本信息,在工作流初次启动前被写为初始值,并仅在工作流的流程图的流程规则被修改后,被写为修改后的业务版本信息。

可选的,上述脚本任务设置在工作流的开始节点之后,以及工作流的非开始节点的工作节点之前。

可选的,上述工作流的流程图的流程规则被修改,包括:工作流的流程图中,各个工作节点的执行顺序被修改;

或者,工作流的流程图中,各个工作节点的工作流函数的执行顺序被修改;

或者,工作流的流程图中,各个工作节点的工作流函数被修改。

可选的,上述工作流函数获取模块303,具体用于:

从工作流的已设置的注释信息中,读取被写入的业务版本信息与工作流函数的对应关系;

其中,业务版本信息与工作流函数的对应关系,在工作流初次启动前被写为业务版本信息初始值与原始工作流函数的对应关系,并在工作流的流程图的流程规则被修改后,被写为修改后的业务版本信息与修改后的工作流函数的对应关系。

本发明实施例提供的一种工作流的实现装置,与传统的按照流程标识与工作流函数的对应关系实现工作流的方式相比,由于业务版本信息仅在工作流的流程图的流程规则被修改后更新,对于未修改流程规则的外形修改流程图所对应的工作流,可以将该外形修改流程图修改前的流程图的业务版本信息作为该外形修改流程图的业务版本信息,从而沿用该外形修改流程图修改前的流程图的业务版本信息与工作流函数的对应关系。因此,无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系,降低了工作流的维护成本和难度。

如图4所示,本发明另一实施例的服务器的结构,该服务器可以包括:

接收模块401,用于接收工作流启动指令;

版本信息获取模块402,用于获取工作流的业务版本信息;业务版本信息在所述工作流初次启动前被设置为初始值,并仅在工作流的流程图的流程规则被修改后更新;

工作流函数获取模块403,用于将业务版本信息对应的流程图确定为当前流程图;按照当前流程图,确定工作流的各个工作节点;按照已设置的业务版本信息与工作流函数的对应关系,获取各个工作节点的工作流函数;

401至403与本发明图3实施例的301至303为相同的模块。

执行模块404,用于按照所述当前流程图,执行各个工作节点的工作流函数。在按照所述当前流程图,执行各个工作节点的工作流函数之后,在工作流的结束节点获得预设返回值时,结束运行工作流;

冗余函数删除模块405,用于在执行模块404结束运行工作流后,按照预设周期,获取每个已启动的工作流的业务版本信息;将各个已启动的工作流中,已结束运行的工作流的业务版本信息作为候选冗余版本信息。根据候选冗余版本信息和运行中工作流的业务版本信息,将设置时间先于运行中工作流的业务版本信息的候选冗余版本信息,确定为冗余版本信息;版本信息中包含用于表明版本信息的设置时间先后的信息。基于冗余版本信息和已设置的注释信息,删除冗余版本信息对应的工作流函数。

如图5所示,本发明再一实施例的服务器的结构,该服务器500,可以包括:

处理器5001、通信接口5002、存储器5003和通信总线5004,其中,处理器5001,通信接口5002,存储器通5003过通信总线5004完成相互间的通信;

存储器5003,用于存放计算机程序;

处理器5001,用于执行上述存储器5003上所存放的计算机程序时,实现上述实施例中任一工作流的实现方法的步骤。

上述存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离于上述处理器的存储装置。

上述处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessor,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本发明一实施例提供的计算机可读存储介质,包含于服务器,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,实现上述施例中任一工作流的实现方法的步骤。

本发明实施例提供的一种计算机可读存储介质,包含于服务器,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时,与传统的按照流程标识与工作流函数的对应关系实现工作流的方式相比,由于业务版本信息仅在工作流的流程图的流程规则被修改后更新,对于未修改流程规则的外形修改流程图所对应的工作流,可以将该外形修改流程图修改前的流程图的业务版本信息作为该外形修改流程图的业务版本信息,从而沿用该外形修改流程图修改前的流程图的业务版本信息与工作流函数的对应关系。因此,无需维护人员人工额外分析大量未修改流程规则的外形修改流程图以重新建立新流程标识与外形修改流程图修改前流程图的工作流函数的对应关系,降低了工作流的维护成本和难度。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的工作流的实现方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、dsl(digitalsubscriberline,数字用户线)或无线(例如:红外线、无线电、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如:dvd(digitalversatiledisc,数字通用光盘))、或者半导体介质(例如:ssd(solidstatedisk,固态硬盘))等。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于服务器和系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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