首页 / 专利库 / 电脑编程 / 计算机编程 / 基于工作流引擎的任务事件处理方法、装置、设备和介质

基于工作流引擎的任务事件处理方法、装置、设备和介质

阅读:1018发布:2020-05-22

专利汇可以提供基于工作流引擎的任务事件处理方法、装置、设备和介质专利检索,专利查询,专利分析的服务。并且本 发明 涉及一种基于工作流引擎的任务事件处理方法、装置、计算机设备和存储介质,该方法包括:获取待处理的当前任务事件,确定当前任务事件的当前任务处理类型;确定与当前任务处理类型对应的处理类模 块 ;处理类模块预设于工作流引擎中;根据处理类模块预先设定的输入参数类型,确定当前任务事件的第一任务参数;第一任务参数的参数类型对应于输入参数类型;将第一任务参数发送至处理类模块,以使处理类模块根据第一任务参数对当前任务事件进行处理,得到任务处理结果;任务处理结果的参数类型对应于处理类模块预先设定的输出参数类型;获取处理类模块得到的任务处理结果。采用本方法能够提高工作流引擎对任务事件处理的灵活性。,下面是基于工作流引擎的任务事件处理方法、装置、设备和介质专利的具体信息内容。

1.一种基于工作流引擎的任务事件处理方法,其特征在于,包括:
获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
确定与所述当前任务处理类型对应的处理类模;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
获取所述处理类模块得到的所述任务处理结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果的步骤,包括:
将所述第一任务参数发送至处理类编程接口,以使所述处理类编程接口将所述第一任务参数传递至外部的任务处理系统,用于指示所述任务处理系统根据所述第一任务参数,对所述当前任务事件进行处理,按照所述输出参数类型生成所述任务处理结果;其中,所述处理类编程接口预设于所述处理类模块中,用于设定所述输入参数类型和所述输出参数类型;
所述处理类模块,通过所述处理类编程接口,获取所述任务处理系统生成的任务处理结果。
3.根据权利要求1所述的方法,其特征在于,所述任务处理结果包括第二任务参数;所述第二任务参数为所述当前任务事件的下一个任务事件的任务参数;
在所述获取所述处理类模块得到的所述任务处理结果的步骤之后,还包括:
获取当前任务状态;所述当前任务状态为所述当前任务事件的任务状态;
根据所述当前任务状态和所述当前任务处理类型,确定下一个任务状态;所述下一个任务状态为所述下一个任务事件的任务状态;
根据所述下一个任务状态和所述第二任务参数,生成所述下一个任务事件。
4.根据权利要求3所述的方法,其特征在于,所述根据所述当前任务状态和所述当前任务处理类型,确定下一个任务状态的步骤,包括:
获取所述任务处理结果中的状态流转值;
根据所述状态流转值、所述当前任务处理类型和所述当前任务状态,确定所述下一个任务状态。
5.根据权利要求3所述的方法,其特征在于,在所述根据所述当前任务状态和所述当前任务处理类型,确定下一个任务状态的步骤之后,还包括:
判断所述下一个任务状态是否为尾状态;
若是,则将所述下一个任务事件的处理状态设置为完成。
6.根据权利要求3所述的方法,其特征在于,还包括:
当所述当前任务事件包括多个子任务事件时,将所述下一个任务事件的处理状态设置为挂起。
7.根据权利要求6所述的方法,其特征在于,在所述根据所述下一个任务状态和所述第二任务参数,生成所述下一个任务事件的步骤之后,还包括:
获取子任务事件的当前子处理状态;
当所述多个子任务事件的当前子处理状态均为完成时,将所述下一个任务事件的所述处理状态设置为可处理。
8.一种基于工作流引擎的任务事件处理装置,其特征在于,包括:
事件获取模块,用于获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
处理类确定模块,用于确定与所述当前任务处理类型对应的处理类模块;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
参数确定模块,用于根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
参数发送模块,用于将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
结果获取模块,用于获取所述处理类模块得到的所述任务处理结果。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。

说明书全文

基于工作流引擎的任务事件处理方法、装置、设备和介质

技术领域

[0001] 本发明涉及信息处理技术领域,特别是涉及一种基于工作流引擎的任务事件处理方法、装置、计算机设备和存储介质。

背景技术

[0002] 随着信息处理技术的迅速发展,许多企业中都借助工作流引擎实现业务自动化。以业务审核流程为例,借助工作流引擎,企业用户可以在计算机中输入待审核信息,生成电子审核表,然后计算机自动将该电子审核表流转至审核层级进行审批处理。
[0003] 其中,各业务处理流程可以对应有不同的任务状态,而在各任务状态下也可以对应有不同的任务事件,以业务审核为例,业务审核的任务状态可以是部经理审核状态,该部门经理审核状态对应的任务事件可以是部门经理允许通过该业务的审核。然而,传统的工作流引擎不支持任务事件的处理实现内容可配置,导致用户在使用该工作流引擎对任务事件进行处理时,灵活性较差。

发明内容

[0004] 基于此,有必要针对工作流引擎在处理任务事件时,灵活性较差的技术问题,提供一种能够提高工作流引擎对任务事件处理的灵活性的基于工作流引擎的任务事件处理方法、装置、计算机设备和存储介质。
[0005] 第一方面,提供一种基于工作流引擎的任务事件处理方法,包括:
[0006] 获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
[0007] 确定与所述当前任务处理类型对应的处理类模;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
[0008] 根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
[0009] 将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
[0010] 获取所述处理类模块得到的所述任务处理结果。
[0011] 第二方面,提供一种基于工作流引擎的任务事件处理装置,包括:
[0012] 事件获取模块,用于获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
[0013] 处理类确定模块,用于确定与所述当前任务处理类型对应的处理类模块;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
[0014] 参数确定模块,用于根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
[0015] 参数发送模块,用于将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
[0016] 结果获取模块,用于获取所述处理类模块得到的所述任务处理结果。
[0017] 第三方面,提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
[0018] 获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
[0019] 确定与所述当前任务处理类型对应的处理类模块;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
[0020] 根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
[0021] 将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
[0022] 获取所述处理类模块得到的所述任务处理结果。
[0023] 第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
[0024] 获取待处理的当前任务事件,确定所述当前任务事件的当前任务处理类型;
[0025] 确定与所述当前任务处理类型对应的处理类模块;所述处理类模块预设于工作流引擎中;所述处理类模块的数量为多个,与不同的任务处理类型对应;
[0026] 根据所述处理类模块预先设定的输入参数类型,确定所述当前任务事件的第一任务参数;所述第一任务参数的参数类型对应于所述输入参数类型;
[0027] 将所述第一任务参数发送至所述处理类模块,以使所述处理类模块根据所述第一任务参数对所述当前任务事件进行处理,得到任务处理结果;所述任务处理结果的参数类型对应于所述处理类模块预先设定的输出参数类型;
[0028] 获取所述处理类模块得到的所述任务处理结果。
[0029] 在上述基于工作流引擎的任务事件处理方法、装置、计算机设备和存储介质中,预设于工作流引擎的处理类模块能够根据与预设的输入参数类型对应的第一任务参数,对当前任务事件进行处理,并得到与预设的输出参数类型对应的任务处理结果;在后期需要根据实际情况配置任务事件的处理实现内容的时候,可以对处理类模块针对于该任务事件的处理实现内容进行灵活配置,提高了使用工作流引擎对各种任务事件进行处理的灵活性。附图说明
[0030] 图1为一个实施例的基于工作流引擎的任务事件处理方法的流程示意图;
[0031] 图2为一个实施例的工作流模型示意图;
[0032] 图3为一个实施例的处理类模块的处理流程实现要点的示意图;
[0033] 图4为一个实施例的中央事件处理模块的处理流程实现要点的示意图;
[0034] 图5为一个实施例的基于工作流引擎的任务事件处理装置的结构框图
[0035] 图6为一个实施例的计算机设备的内部结构图。

具体实施方式

[0036] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0037] 在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
[0038] 在一个实施例中,如图1所示,提供了一种基于工作流引擎的任务事件处理方法,其中,该工作流引擎可以预设有多个处理类模块,不同的处理类模块与不同的任务处理类型对应。例如,“允许通过”的任务处理类型对应“允许通过”的处理类模块、“驳回”的任务处理类型对应“驳回”的处理类模块。
[0039] 处理类模块,可以用于定义任务事件的处理实现内容、输入参数类型和输出参数类型;其中,输入参数类型与当前任务事件的第一任务参数的参数类型对应,输出参数类型与与任务处理结果的参数类型对应。
[0040] 该处理类模块,还可以用于对当前任务事件进行处理并得到任务处理结果,具体处理流程可以为:处理类模块,根据预设的输入参数类型,获取当前任务事件的第一任务参数,根据处理实现内容对当前任务事件的第一任务参数进行处理,并根据预设的输出参数类型,得到任务处理结果。
[0041] 其中,输入参数类型可以为当前任务事件的事件标识码,该事件标识码可以用于获取上一个任务事件的上一个业务数据清单,该上一个任务事件是相对于当前任务事件来说的上一个任务事件;输出参数类型可以下一个任务事件的事件标识码,下一个任务事件的事件标识码可以用于与当前任务事件的当前业务数据清单进行绑定,也就是说,任务处理结果包括的任务参数为下一个任务事件的事件标识码id2。
[0042] 下面将以当前任务事件的事件标识码为输入参数类型、下一个任务事件的事件标识码为输出参数类型为例,介绍基于上述基于工作流引擎的任务事件处理方法包括的步骤:
[0043] 步骤S102,获取待处理的当前任务事件,确定当前任务事件的当前任务处理类型。
[0044] 工作流引擎的中央事件处理模块在获取到待处理的当前任务事件后,解析当前任务事件中的当前任务处理类型,从而可以确定当前任务事件的当前任务处理类型。具体地,可以在手机等终端设备生成当前任务事件的处理请求后,当前任务事件携带有与处理请求对应的当前任务处理类型,手机等终端设备将处理请求发送至中央事件处理模块,中央事件处理模块在接收到处理请求后,将当前任务事件作为待处理的当前任务事件,解析待处理的当前任务事件中的当前任务处理类型。任务事件的处理请求可以分为不同类型的处理请求,分别对应不同的任务处理类型,以电子审批流程为例,当处理请求为审批允许通过时,对应的任务处理类型为“允许通过”,当处理请求为审批驳回时,对应的任务处理类型为“驳回”。
[0045] 步骤S104,确定与当前任务处理类型对应的处理类模块。
[0046] 本步骤中,中央事件处理模块在确定当前任务事件的当前任务处理类型后,可以根据预先设定的任务处理类型与处理类模块的对应关系,确定与当前任务处理类型对应的处理类模块。
[0047] 步骤S106,根据处理类模块预先设定的输入参数类型,确定当前任务事件的第一任务参数。
[0048] 本步骤中,当输入参数类型为当前任务事件的事件标识码时,对应地,第一任务参数的参数类型也为当前任务事件的事件标识码,中央事件处理模块根据输入参数类型,从当前任务事件解析得到事件标识码id1。
[0049] 步骤S108,将第一任务参数发送至处理类模块,以使处理类模块根据第一任务参数对当前任务事件进行处理,得到任务处理结果。
[0050] 在本步骤中,当输出参数类型为下一个任务事件的事件标识码时,对应地,任务处理结果的参数类型也为下一个任务事件的事件标识码;中央事件处理模块在获取到当前任务事件的事件标识码id1后,将事件标识码id1发送至处理类模块,处理类模块根据事件标识码id1对当前任务事件进行处理,并得到任务处理结果,该任务处理结果包括下一个任务事件的事件标识码id2。
[0051] 具体的,处理类模块根据当前任务事件的事件标识码id1对当前任务事件进行处理,并得到下一个任务事件的事件标识码id2可以包括以下内容:
[0052] 处理类模块从工作流引擎的数据库获取与事件标识码id1绑定的上一个业务数据清单,然后根据上一个业务数据清单,对当前业务数据清单进行处理,并将处理后的当前业务数据清单与下一个任务事件的事件标识码id2绑定,得到包含绑定后的事件标识码id2的任务处理结果。
[0053] 另外,处理类模块还可以将事件标识码id1发送至外部的任务处理系统,由外部的任务处理系统从工作流引擎的数据库获取与事件标识码id1绑定的上一个业务数据清单,并根据上一个业务数据清单,对当前业务数据清单进行处理,将处理后的当前业务数据清单与下一个任务事件的任务参数的事件标识码id2进行绑定,处理类模块从外部的任务处理系统获取到与处理后的当前业务数据清单绑定的事件标识码id2,也就是说,处理类模块得到了包含绑定后的事件标识码id2的任务处理结果。可以理解的是,因为任务处理系统不属于工作流引擎,所以,相对于属于工作流引擎的中央事件处理模块来说,任务处理系统是外部的,同样地,相对于属于工作流引擎的处理类模块来说,任务处理系统也是外部的。
[0054] 步骤S110,获取处理类模块得到的任务处理结果。
[0055] 具体地,在处理类模块得到任务处理结果后,中央事件处理模块从处理类模块中获取任务处理结果。
[0056] 在上述基于工作流引擎的任务事件处理方法中,处理类模块根据与预设输入参数类型对应的第一任务参数,对当前任务事件进行处理,并得到与预设输出参数类型对应的任务处理结果;在后期需要根据实际情况配置任务事件的处理实现内容的时候,可以对处理类模块针对于该任务事件的处理实现内容进行灵活配置,提高了使用工作流引擎对各种任务事件进行处理的灵活性。
[0057] 在一个实施例中,在构建工作流引擎的底层存储模型的时候,可以抽象出任务定义、任务实例、任务状态、任务事件、处理类模块、任务状态流转这些数据对象,并将这些数据对象作为工作流引擎的底层存储模型。
[0058] 本实施例中,抽象出任务定义、任务实例等数据对象,将这些数据对象作为工作流引擎的底层存储模型,简化了工作流引擎的底层存储模型的结构,从而简化了工作流引擎的运转流程,并且提高了工作流引擎的扩展性和对业务进行处理的灵活性。
[0059] 在另一个实施例中,可以使用json格式描述任务定义等数据对象及其关系,并将json格式描述的数据对象和数据之间的关系持久化到数据库中;本实例中,使用json格式描述数据对象和数据对象之间的关系,可以进一步简化工作流引擎的底层存储模型的结构。
[0060] 其中,任务定义,可以用于定义一个任务的基本信息,可以包括任务名字、版本以及内容属性(内容属性也可以理解为该任务的备注)中的至少一项,可以用json格式表示成如下格式:
[0061] "task_def":
[0062] {"task_def_name":"任务名字",
[0063] "version":"版本",
[0064] "note":"备注"};
[0065] 例如,在资源目录审核的电子业务中,使用上述json格式对资源目录审核进行任务定义,具体可以表示为:
[0066] "task_def":
[0067] {"task_def_name":"资源目录审核任务定义",
[0068] "version":"v1",
[0069] "note":"资源目录审核任务定义"}。
[0070] 可以理解的是,由于在构建某个电子业务的工作流引擎的时候,一般是将各个数据对象放在一个工作流模块中进行描述,因此,以下使用json格式描述其他的数据对象时,没有在json格式中写明这些数据对象的所属关系。
[0071] 任务实例,可以理解为一个任务定义的一次具体运行,例如,用户A发起的资源目录审核可以理解为该任务定义的一次具体运行,也就是说,用户A发起的资源目录审核为一个任务实例;具体地,任务实例,可以包括所属的任务定义,当前任务状态等属性,以用户A发起的资源目录审核为例,在该任务实例中,包括该任务实例所属的任务定义为“资源目录审核任务定义”、当前任务状态为“目录-审核一级”或“目录-审核二级”。
[0072] 任务状态,可以理解为任务定义中的中途的状态,可以包括所属的任务定义、任务状态名字等属性,对于一个任务定义来说,任务状态可以多个,例如,在“资源目录审核任务定义”中,可以包括以下的任务状态:“目录-审核一级”、“目录-审核二级”、“目录-审核完毕”、“目录-审核一级驳回”等,对应地,任务状态“目录-审核一级”包括的属性可以为:所属的任务定义“资源目录审核任务定义”、任务状态名字“目录-审核一级”;任务状态可以用json格式表示成如下格式:
[0073] "task_state":
[0074] {"task_state_name":"任务状态名字"};
[0075] 例如,在资源目录审核的电子业务中,使用上述json格式描述“目录-审核一级”可以表示为:
[0076] "task_state":
[0077] {"task_state_name":"目录-审核一级"}。
[0078] 任务事件,可以理解为任务实例中的某个任务状态下的事件,可以包括所属的任务定义、所属的任务实例、所属的任务实例状态、完成状态、处理类模块、开始时间、结束时间等属性,其中,完成状态的值可以有挂起、等待处理、处理完毕这三种类型,例如,用户A在发起资源目录审核后,在“目录-审核一级”任务状态下,一级审核员允许通过该审核,此时的任务事件为:目录-审核一级允许通过;如果一级审核员未对该审核进行任何操作,该任务事件的完成状态为挂起;如果一级审核员允许通过该审核,中央事件处理模块正在处理其他的任务事件,则该任务事件的完成状态为等待处理;如果中央事件处理模块处理完该任务事件,则该任务事件的完成状态为处理完毕。
[0079] 处理类模块,可以用于定义与当前任务事件的第一任务参数的参数类型对应的输入参数类型,以及与任务处理结果的参数类型对应的输出参数类型,以及对任务事件的处理实现内容(处理实现内容可以理解为处理方式),例如“目录-审核一级允许通过”这个任务事件的处理实现内容为允许通过,又例如,“目录-审核一级驳回”这个任务事件的处理实现内容为驳回;可以理解的是,不同的处理类模块对应不同的处理实现内容,例如,“目录-允许通过”对应的处理实现内容为允许通过。其中,处理类模块定义的输入参数类型和输出参数类型可以封装在工作流引擎中,而处理实现内容可以不封装在工作流引擎,该处理实现内容可以由外部的任务处理系统实现,从而实现处理类模块向开发人员开放,进一步地,以便开发人员在外部的任务处理系统对处理实现内容进行二次开发。
[0080] 进一步地,处理类模块可以包括预设的处理类编程接口,可以由该处理类编程接口定义输入参数类型、输出参数类型以及开放任务事件的处理实现内容,对应地,此时处理类模块可以包括所属的任务定义、类型名称、处理类编程接口的处理类名称等属性。在使用json格式描述处理类模块时,处理类编程接口的处理类名称可以理解为处理实现内容的访问路径,如下述的json格式所示:
[0081] "proccess_type":
[0082] [{"type":"类型名称",
[0083] "proccess":"处理类编程接口的java类全路径"}];
[0084] 例如,在资源目录审核的电子业务中,使用上述json格式描述“目录-允许通过”处理类模块可以表示为:
[0085] "proccess_type":
[0086] [{"type":"目录-允许通过",
[0087] "proccess":"com.digitalgd.module.workflow.proccess.impl.CataLogPassProccess"}。
[0088] 任务状态流转,可以用于定义两个任务状态之间的转换方式、转换条件和及触发转换的处理类模块,可以包括当前任务状态、处理类模块、下一个任务状态等属性,使用json格式可以表示成:
[0089] "task_state_tran":
[0090] {"current_state":"当前任务状态",
[0091] "proccess_type":"任务处理类型",
[0092] "next_state":"下一个任务状态"};
[0093] 例如,在资源目录审核的电子业务中,使用上述json格式描述“目录-审核一级”和“目录-审核二级”的任务状态流转可以表示为:
[0094] "task_state_tran":
[0095] {"current_state":"目录-审核一级",
[0096] "proccess_type":"目录-允许通过",
[0097] "next_state":"目录-审核二级"};
[0098] 又例如,使用上述json格式描述“目录-审核一级”和“目录-审核一级驳回”的任务状态流转可以表示为:
[0099] "task_state_tran":
[0100] {"current_state":"目录-审核一级",
[0101] "proccess_type":"目录-驳回",
[0102] "next_state":"目录-审核一级驳回"}。
[0103] 参考图2,对工作流模型进行介绍:在任务定义层的任务定义中对任务状态以及与任务状态对应的任务事件进行了定义;当实例化运行任务定义时,进入任务实例层,一个任务定义可以包括多个任务实例,如任务实例1、任务实例2、任务实例3和任务实例4;其中,任务实例1可以包括当前任务状态和当前任务事件的完成状态,并且当前任务事件可以包括其他任务事件,当前任务事件和其包括的其他任务事件的关系可以理解为父子关系,也就是说,当前任务事件作为父任务事件,其包括的其他任务事件作为子任务事件;此时,“任务事件”这个数据对象的属性可以包括父子关系;可以理解的是,子任务事件和父任务事件可以属于同一个任务定义下的任务实例,也可以属于不同的任务实例,其中,子任务事件所属的任务实例为子任务实例,父任务事件所属的任务实例为父任务实例,父任务实例可以包括一个或多个子任务实例,在图2中,父任务实例2包括两个子任务实例,分别是子任务实例3和子任务实例4。
[0104] 在一个实施例中,将第一任务参数发送至处理类模块,以使处理类模块根据第一任务参数对当前任务事件进行处理,得到任务处理结果的步骤,包括:
[0105] 将第一任务参数发送至处理类编程接口,以使处理类编程接口将第一任务参数传递至外部的任务处理系统,用于指示任务处理系统根据第一任务参数,对当前任务事件进行处理,按照输出参数类型生成任务处理结果;其中,处理类编程接口预设于处理类模块中,用于设定输入参数类型和输出参数类型;
[0106] 处理类模块,通过处理类编程接口,获取任务处理系统生成的任务处理结果。
[0107] 下面以当前任务事件为“目录-审核一级允许通过”、以当前任务事件的事件标识码为输入参数类型和下一个任务事件的事件标识码为输出参数类型介绍本实施例。
[0108] 中央事件处理模块获取到“目录-审核一级允许通过”这个当前任务事件后,确定该任务事件的当前任务处理类型是“允许通过”,然后确定与“允许通过”任务处理类型对应的处理类模块是“目录-允许通过”处理类模块;中央事件处理模块解析“目录-允许通过”处理类模块的配置文件,从配置文件中获取到输入参数类型为事件标识码,然后根据这个输入参数类型,从当前任务事件中解析得到事件标识码id1(相当于第一任务参数),并将事件标识码id1发送至预设在“目录-允许通过”处理类模块中的处理类编程接口,处理类编程接口通过“目录-运行通过”处理类模块中处理实现内容的访问路径,将事件标识码id1发送至外部的任务处理系统中,外部任务处理系统根据事件标识码id1,获取到与事件标识码id1绑定的上一个业务数据清单,然后将“目录-审核一级允许通过”当前任务事件的当前任务数据(当前任务数据可以是一级审核员允许通过和一级审核员的通过意见批注等)和上一个业务数据清单组合,生成当前业务数据清单,并将当前业务数据清单和与下一个任务事件对应的事件标识码id2(与下一个任务事件对应的事件标识码id2可以理解为:下一个任务事件所属的任务状态“目录-审核二级”的事件标识码id2)进行绑定,将绑定后的事件标识码id2作为任务处理结果,并发送至处理类编程接口,从而“目录-运行通过”处理类模块通过处理类编程接口,获取到任务处理系统生成的任务处理结果,即与当前业务数据清单绑定后的事件标识码id2。
[0109] 在本实施例中,在预设于工作流引擎中的处理类模块中,预先设定处理类编程接口,通过该处理类编程接口将第一任务参数发送至外部的任务处理系统,由任务处理系统根据第一任务参数对当前任务事件进行处理,并按照输出参数类型生成任务处理结果,使得开发人员可以通过外部的任务处理系统开发对当前任务事件进行处理的处理实现内容,在需要根据实际情况灵活配置当前任务事件的处理实现内容的时候,开发人员可以直接在外部的任务处理系统中配置处理实现内容,实现任务事件的灵活处理。
[0110] 在另一个实施例中,可以处理类模块分别按照输入格式和输出格式分别对输入参数类型和输出参数类型进行规范,使得该工作流引擎具有统一的输入和输出格式,便于后续处理。
[0111] 在一个实施例中,任务处理结果包括第二任务参数;第二任务参数为当前任务事件的下一个任务事件的任务参数;获取处理类模块得到的任务处理结果的步骤之后,还包括:获取当前任务状态;当前任务状态为当前任务事件的任务状态;根据当前任务状态和当前任务处理类型,确定下一个任务状态;下一个任务状态为下一个任务事件的任务状态;根据下一个任务状态和第二任务参数,生成下一个任务事件。
[0112] 本实施例中,以任务处理结果包括的任务参数为下一个任务事件的事件标识码id2为例进行介绍;可以理解的是,此时第二任务参数为下一个任务事件的事件标识码id2。
[0113] 中央事件处理模块在获取到处理类模块得到的下一个任务事件的事件标识码id2之后,根据当前任务事件“目录-审核一级允许通过”,确定对应的当前任务状态为“目录-审核一级”并且当前任务处理类型为“允许通过”,然后确定与“允许通过”任务处理类型对应的处理类模块是“目录-允许通过”处理类模块;接着,中央事件处理模块可以根据预先定义的“任务状态流转”数据对象,可以确定当任务状态为“目录-审核一级”和处理类模块为“目录-允许通过”时,下一个任务状态是“目录-审核二级”,然后将下一个任务状态“目录-审核二级”和下一个任务事件的事件标识码id2组合,生成下一个任务事件。
[0114] 在本实施例中,预先设定在工作流引擎中的处理类模块向中央事件处理模块返回包括第二任务参数的任务处理结果后,中央事件处理模块根据当前任务事件的当前任务状态和当前任务处理类型,确定下一个任务状态,并根据下一个任务状态和第二任务参数生成下一个任务事件。中央事件处理模块基于处理类模块返回的当前任务事件的任务处理结果,进一步生成下一个任务事件,形成基于任务事件驱动的工作流引擎,提高了工作流引擎对任务事件处理的灵活性。
[0115] 在一个实施例中,如果当前任务事件“目录-审核一级允许通过”对应的当前任务状态是“目录-审核一级”、当前任务处理类型是“允许通过”,此时可以根据预先设定的“任务状态流转”数据对象,确定下一个任务状态为“目录-审核二级”,但是在实际电子业务场景中,可能会出现需要将下一个任务状态改变为“目录-审核三级”的情况,此时可以在“任务状态流转”这个数据对象中增加一个“状态流转值”,并且设定不同的“状态流转值”和不同的下一个任务状态对应,用json格式可以表示为:
[0116] "task_state_tran":
[0117] {"current_state":"目录-审核一级",
[0118] "proccess_type":"目录-允许通过",
[0119] "conditional_value":"状态流转值",
[0120] "next_state":"目录-审核二级;目录-审核三级"};
[0121] 本实施例中,处理类模块在对当前任务事件处理时,生成状态流转值,并将该状态流转值作为任务处理结果其中的一个数据,返回中央事件处理模块;中央事件处理模块在获取到任务处理结果中的状态流转值后,根据任务状态流转对状态流转值、当前任务状态和处理类模块的定义,确定下一个任务状态。其中,当任务处理结果是由外部的任务处理系统生成时,处理类模块通过处理类编程接口获取到携带有状态流转值的任务处理结果,并将该任务处理结果发送至中央事件处理模块。
[0122] 在本实施例中,在处理类模块对当前任务事件进行处理的时候,生成状态流转值,并将状态流转值作为任务处理结果的数据之一返回至中央事件处理模块,中央事件处理模块获取到任务处理结果中的状态流转值后,根据状态流转值、当前任务处理类型和当前任务状态确定下一个任务状态,从而可以根据实际场景确定下一个任务状态,改变任务状态的流转方向,从而提高了工作流引擎在实际电子业务等应用场景中的灵活性。
[0123] 在一个实施例中,任务状态还可以包括尾状态属性,尾状态用于判断该任务状态的任务事件是否需要处理,例如,如果“目录-审核完毕”为尾状态的话,此时就不需要处理对应的任务事件,也可以理解为,中央事件处理模块不需要生成或者输出“目录-审核完毕”的任务事件。当任务状态包括尾状态属性时,可以用json格式表示成:
[0124] "task_state":
[0125] {"task_state_name":"任务状态名字",
[0126] "is_end":"y or n"}。
[0127] 可以理解的是,当任务状态为尾状态时,在任务状态流转中,该任务状态不存在下一个任务状态,下面将“目录-审核一级”、“目录-审核二级”和“目录-审核三级”不是尾状态、“目录-审核完毕”为尾状态作为例子,以json格式进行介绍:
[0128] "task_state":
[0129] [{"task_state_name":"目录-审核一级",
[0130] "is_end":"n"},
[0131] {"task_state_name":"目录-审核二级",
[0132] "is_end":"n"},
[0133] {"task_state_name":"目录-审核三级",
[0134] "is_end":"n"},
[0135] {"task_state_name":"目录-审核完毕",
[0136] "is_end":"y"};
[0137] "task_state_tran":
[0138] [{"current_state":"目录-审核一级",
[0139] "proccess_type":"目录-允许通过",
[0140] "next_state":"目录-审核二级"},
[0141] {"current_state":"目录-审核二级",
[0142] "proccess_type":"目录-允许通过",
[0143] "next_state":"目录-审核三级"};
[0144] {"current_state":"目录-审核三级",
[0145] "proccess_type":"目录-允许通过",
[0146] next_state":"目录-审核完毕"}。
[0147] 在本实施例中,中央事件处理模块在确定下一个任务状态为尾状态后,将下一个任务事件的处理状态设置为完成,从而不输出下一个任务事件,结束任务实例,保证工作流引擎的正常运转。
[0148] 在一个实施例中,工作流引擎的实际应用场景中,如果对当前任务事件的处理需要涉及多个子任务事件,也就是说,当前任务事件包括多个子任务事件,此时,中央事件处理模块可以将下一个任务事件的处理状态设置为挂起,该下一个任务事件可以理解为与当前任务事件同属一个任务定义的任务事件;然后中央事件处理模块和对应的处理类模块进一步处理上述的多个子任务事件;当子任务事件处理完成时,此时子任务事件的子任务处理状态为完成;如果中央处理类模块获取到当前任务事件下的全部子任务事件的当前子处理状态均为完成时,则将下一个任务事件的处理状态设置为可处理。
[0149] 下面将当前任务事件和子任务事件分别属于“需求单处理任务定义”定义下的任务实例、属于“需求项处理任务定义”定义下的任务实例作为例子,并结合json格式进行介绍。其中,当前任务事件为“需求单-地市政数局审核”任务状态下的“需求单-省政数据审核允许通过”任务事件,子任务事件为“需求项-数源部门审核”和“需求项-地市证数局审核”这两个任务状态下的任务事件。
[0150] 在“任务状态流转”数据对象中,定义当前任务事件为“需求单-地市政数局审核允许通过”对应的下一个任务状态为“需求单-需求分析”,并且存在“需求项处理任务定义”定义下的子任务实例,该子任务实例包括“需求项-数源部门审核”和“需求项-地市证数局审核”两个任务子任务状态;上述“任务状态流转”数据对象可以用json格式表示为:
[0151] "task_state_tran":
[0152] {"current_state":"需求单-地市政数局审核",
[0153] "proccess_type":"需求单-允许通过",
[0154] "next_state":"需求单-需求分析",
[0155] "child_tasks_name":"需求项任务处理定义;需求项任务处理定义",[0156] "child_tasks_version":"v1;v1",
[0157] "child_tasks_states":"需求项-数源部门审核;需求项-地市政数局审核",[0158] "child_tasks_proccess_types":";"};
[0159] 处理类模块在处理当前任务事件“需求单-省政数据审核允许通过”时,可以生成与子任务相关的参数类型,并作为任务处理结果的数据之一返回至中央事件处理模块;中央事件处理模块根据与子任务相关的参数类型,启动对应的子任务实例,例如,当与子任务相关的参数类型为任务定义“需求项任务处理定义”,初始子任务状态“需求项-数源部门审核”和初始子任务事件的事件标识码id3的时,中央事件处理模块将“需求单-需求分析”的任务事件设置为挂起,然后在任务定义“需求项任务处理定义”下开创一个任务实例,该开创的任务实例可以理解为子任务实例,并根据初始子任务状态为“需求项-数源部门审核”和初始子任务事件的事件标识码id3,生成初始子任务事件,由此,中央事件处理模块进入子任务实例的流程运转。中央事件处理模块根据子任务事件的子任务处理状态,确定各个子任务事件都处理完成时,将“需求单-需求分析”的任务事件设置为可处理,由此,中央事件处理模块返回“需求单处理任务定义”下的父任务实例,并进入父任务实例的流转。
[0160] 可以理解的是,还可以结合状态流转值决定子任务实例中的子任务状态,使得工作流引擎能更符合实际电子业务的场景,进一步增加了工作流引擎的灵活性。此时,对应的任务状态流转用json格式表示如下:
[0161] "task_state_tran":
[0162] {"current_state":"当前任务状态",
[0163] "proccess_type":"处理类模块",
[0164] "next_state":"下一个任务状态",
[0165] "conditional_value":"状态流转值",
[0166] "child_tasks":"子任务定义;子任务定义",
[0167] "child_tasks_version":"v1;v2",
[0168] "child_tasks_states":"子任务状态1;子任务状态2",
[0169] "child_tasks_proccess_types":"子任务事件1;子任务事件2"}。
[0170] 在上述实施例中,如果当前任务事件可以包括多个子任务事件,中央事件处理模块将下一个任务事件的处理状态设置为挂起,从而进入子任务事件所属的子任务实例的流转,从而在实际电子业务场景中,可以根据实际需要,开创对应的子任务实例进行电子业务流程的运转,提高对工作流引擎进行配置的灵活性。进一步地,当子任务事件的子任务处理状态均为完成时,中央事件处理模块将下一个任务事件的处理状态设置为可处理,从而进入当前任务事件所属的父任务实例,使得工作流引擎完成父任务实例,保证实际场景中的业务正常进行。
[0171] 为了更好地理解上述方法,以下介绍一个本发明基于工作流引擎的任务事件处理方法的处理类模块和中央事件处理模块的实现要点。
[0172] 结合图3,介绍处理类模块的处理流程实现要点,该实现要点可以包括:
[0173] S301、获取在输入格式中当前任务事件的第一任务参数,第一任务参数的参数类型与预设的输入参数类型对应,第一任务参数可以是与当前任务事件对应的任务状态和当前任务事件的事件标识码id1;
[0174] S302、根据第一任务参数,对当前任务事件进行业务处理;
[0175] S303、按照预设的输出参数类型,得到任务处理结果,例如下一个任务事件的id2、下一个处理类模块的处理类名称(可选)、状态流转值(可选)和其他输出信息;
[0176] S304、对当前任务事件的处理是否涉及子任务事件;
[0177] S305、若是,则生成与子任务事件的相关信息(如子任务事件的id3、初始化子任务状态或其他配置信息),并和下一个任务事件的事件标识码id2一起作为任务处理结果;
[0178] S306、把任务处理结果组装成输出格式返回至中央事件处理模块。
[0179] 结合图4,介绍中央事件处理模块的实现要点,该实现要点可以包括:
[0180] S401、获取当前任务事件的第一任务参数,并确定与当前任务事件对应的处理类模块。
[0181] S402、将第一任务参数发送至处理类模块中。
[0182] S403、获取处理类模块返回的特定输出格式的任务处理结果,该任务处理结果包括下一个任务事件的事件标识码id2,其中,该任务处理结果还可以包括与子任务事件相关的信息。
[0183] S404、将任务实例的任务状态修改为下一个任务状态,将当前任务事件的处理状态修改为完成,并记录当前任务事件的完成时间
[0184] S405、若该下一个任务状态为尾状态并且对应的下一个任务事件无父任务事件,则将下一个任务事件的处理状态修改为完成;
[0185] S406、若下一个任务状态为尾状态并且对应的下一个任务事件有父任务事件,则检查有相同父任务事件的其他同级子任务事件是否均为完成的处理状态,若是,则将在下一个任务事件的处理状态修改为可处理。
[0186] S407、根据任务处理结果,生成下一个任务事件;其中,当前的任务事件包括子任务事件,则生成子任务实例,并初始化子任务实例下的初始化的任务事件。
[0187] 需要说明的是,对于前述的各方法实施例,为了简便描述,将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。
[0188] 本发明提供的方法可以应用在电子政务中的资源目录系统和需求系统的审核处理流程管理中,下面以json格式展示资源目录系统审核流程采用本发明提供的方法构建的工作流引擎:
[0189] {"task_def":
[0190] {"task_def_name":"资源目录审核任务定义",
[0191] "version":"v1",
[0192] "note":"资源目录审核任务定义",},
[0193] "task_state":
[0194] [{"task_state_name":"目录-审核一级",
[0195] "is_end":"n"},
[0196] {"task_state_name":"目录-审核二级",
[0197] "is_end":"n"},
[0198] {"task_state_name":"目录-审核三级",
[0199] "is_end":"n"},
[0200] {"task_state_name":"目录-审核完毕",
[0201] "is_end":"y"},
[0202] {"task_state_name":"目录-审核一级驳回",
[0203] "is_end":"y"},
[0204] {"task_state_name":"目录-审核二级驳回",
[0205] "is_end":"y"},
[0206] {"task_state_name":"目录-审核三级驳回",
[0207] "is_end":"y"}],
[0208] "proccess_type":
[0209] [{"type":"目录-允许通过",
[0210] "proccess":"com.digitalgd.module.workflow.proccess.impl.CataLogPassProccess"},
[0211] {"type":"目录-驳回",
[0212] "proccess":"com.digitalgd.module.workflow.proccess.impl.CataLogRejectProccess"}],
[0213] "task_state_tran":
[0214] [{"current_state":"目录-审核一级",
[0215] "proccess_type":"目录-允许通过",
[0216] "next_state":"目录-审核二级"},
[0217] {"current_state":"目录-审核二级",
[0218] "proccess_type":"目录-允许通过",
[0219] "next_state":"目录-审核三级"},
[0220] {"current_state":"目录-审核三级",
[0221] "proccess_type":"目录-允许通过",
[0222] "next_state":"目录-审核完毕"},
[0223] {"current_state":"目录-审核一级",
[0224] "proccess_type":"目录-驳回",
[0225] "next_state":"目录-审核一级驳回"},
[0226] {"current_state":"目录-审核二级",
[0227] "proccess_type":"目录-驳回",
[0228] "next_state":"目录-审核二级驳回"},
[0229] {"current_state":"目录-审核三级",
[0230] "proccess_type":"目录-驳回",
[0231] "next_state":"目录-审核三级驳回"}]}
[0232] 下面以json格式展示需求系统的需求单处理流程采用本发明提供的方法构建的工作流引擎如下:
[0233] {"task_def":
[0234] {"task_def_name":"需求单处理任务定义",
[0235] "version":"v1",
[0236] "note":"需求单处理任务定义"},
[0237] "task_state":
[0238] [{"task_state_name":"需求单-地市政数局审核",
[0239] "is_end":"n"},
[0240] {"task_state_name":"需求单-需求分析",
[0241] "is_end":"n"},
[0242] {"task_state_name":"需求单-省政数局审核",
[0243] "is_end":"n"},
[0244] {"task_state_name":"需求单-审核完毕",
[0245] "is_end":"y"},
[0246] {"task_state_name":"需求单-地市政数局审核驳回",
[0247] "is_end":"y"},
[0248] {"task_state_name":"需求单-省政数局审核驳回",
[0249] "is_end":"y"},
[0250] {"task_state_name":"需求单-需求分析驳回",
[0251] "is_end":"y"}],
[0252] "proccess_type":
[0253] [{"type":"需求单-允许通过",
[0254] "proccess":"com.digitalgd.module.workflow.proccess.impl.DmdPassProccess"},
[0255] {"type":"需求单-驳回",
[0256] "proccess":"com.digitalgd.module.workflow.proccess.impl.DmdRejectProccess"}],
[0257] "task_state_tran":
[0258] [{"current_state":"需求单-地市政数局审核",
[0259] "proccess_type":"需求单-允许通过",
[0260] "next_state":"需求单-需求分析"},
[0261] {"current_state":"需求单-需求分析",
[0262] "proccess_type":"需求单-允许通过",
[0263] "next_state":"需求单-省政数局审核"},
[0264] {"current_state":"需求单-省政数局审核",
[0265] "proccess_type":"需求单-允许通过",
[0266] "next_state":"需求单-审核完毕",
[0267] "child_tasks_name":"需求项任务处理定义;需求项任务处理定义",[0268] "child_tasks_version":"v1;v1",
[0269] "child_tasks_states":"需求项-数源部门审核;需求项-地市政数局审核",[0270] "child_tasks_proccess_types":";",},
[0271] {"current_state":"需求单-地市政数局审核",
[0272] "proccess_type":"需求单-驳回",
[0273] "next_state":"需求单-地市政数局审核驳回"},
[0274] {"current_state":"需求单-需求分析",
[0275] "proccess_type":"需求单-驳回",
[0276] "next_state":"需求单-需求分析驳回"},
[0277] {"current_state":"需求单-省政数局审核",
[0278] "proccess_type":"需求单-驳回",
[0279] "next_state":"需求单-省政数局审核驳回"}]}
[0280] 下面以json格式展示需求系统的需求项处理流程采用本发明提供的方法构建的工作流引擎如下:
[0281] {"task_def":
[0282] {"task_def_name":"需求项处理任务定义",
[0283] "version":"v1",
[0284] "note":"需求项处理任务定义",},
[0285] "task_state":
[0286] [{"task_state_name":"需求项-数源部门审核",
[0287] "is_end":"n"},
[0288] {"task_state_name":"需求项-地市政数局审核",
[0289] "is_end":"n"},
[0290] {"task_state_name":"需求项-数源部门驳回",
[0291] "is_end":"y"},
[0292] {"task_state_name":"需求项-地市政数局驳回",
[0293] "is_end":"y"},
[0294] {"task_state_name":"需求项-共享实施",
[0295] "is_end":"y"}],
[0296] "proccess_type":
[0297] [{"type":"需求项-允许通过",
[0298] "proccess":"com.digitalgd.module.workflow.proccess.impl.DmdItemPassProccess"},
[0299] {"type":"需求项-驳回",
[0300] "proccess":"com.digitalgd.module.workflow.proccess.impl.DmdItemRejectProccess"}],
[0301] "task_state_tran":
[0302] [{"current_state":"需求项-数源部门审核",
[0303] "proccess_type":"需求项-允许通过",
[0304] "next_state":"需求项-共享实施"},
[0305] {"current_state":"需求项-数源部门审核",
[0306] "proccess_type":"需求项-驳回",
[0307] "next_state":"需求项-处理完毕"},
[0308] {"current_state":"需求项-地市政数局审核",
[0309] "proccess_type":"需求项-允许通过",
[0310] "next_state":"需求项-共享实施"},
[0311] {"current_state":"需求项-地市政数局审核",
[0312] "proccess_type":"需求项-驳回",
[0313] "next_state":"需求项-地市政数局驳回"}]}
[0314] 上述工作流引擎可以结合其他各个实施例进行理解,这里不赘述。
[0315] 基于与上述实施例中的基于工作流引擎的任务事件处理方法相同的思想,本发明还提供基于工作流引擎的任务事件处理装置,该装置可用于执行上述基于工作流引擎的任务事件处理方法。为了便于说明,基于工作流引擎的任务事件处理装置实施例的结构示意图中,仅仅示出了与本发明实施例相关的部分,本领域技术人员可以理解,图示结构并不构成对装置的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0316] 在一个实施例中,如图5所示,提供了一种基于工作流引擎的任务事件处理装置500,包括:事件获取模块502、处理类确定模块504、参数确定模块506、参数发送模块508和结果获取模块510,其中:
[0317] 事件获取模块502,用于获取待处理的当前任务事件,确定当前任务事件的当前任务处理类型;
[0318] 处理类确定模块504,用于确定与当前任务处理类型对应的处理类模块;处理类模块预设于工作流引擎中;处理类模块的数量为多个,与不同的任务处理类型对应;
[0319] 参数确定模块506,用于根据处理类模块预先设定的输入参数类型,确定当前任务事件的第一任务参数;第一任务参数的参数类型对应于输入参数类型;
[0320] 参数发送模块508,用于将第一任务参数发送至处理类模块,以使处理类模块根据第一任务参数对当前任务事件进行处理,得到任务处理结果;任务处理结果的参数类型对应于处理类模块预先设定的输出参数类型;
[0321] 结果获取模块510,用于获取处理类模块得到的任务处理结果。
[0322] 在一个实施例中,参数发送模块508,还用于将第一任务参数发送至处理类编程接口,以使处理类编程接口将第一任务参数传递至外部的任务处理系统,用于指示任务处理系统根据第一任务参数,对当前任务事件进行处理,按照输出参数类型生成任务处理结果;其中,处理类编程接口预设于处理类模块中,用于设定输入参数类型和输出参数类型;处理类模块,通过处理类编程接口,获取任务处理系统生成的任务处理结果。
[0323] 在一个实施例中,任务处理结果包括第二任务参数;第二任务参数为当前任务事件的下一个任务事件的任务参数;
[0324] 结果获取模块510,还包括:
[0325] 当前状态获取单元,用于获取当前任务状态;当前任务状态为当前任务事件的任务状态;
[0326] 下一个状态确定单元,用于根据当前任务状态和当前任务处理类型,确定下一个任务状态;下一个任务状态为下一个任务事件的任务状态;
[0327] 下一个事件生成单元,用于根据下一个任务状态和第二任务参数,生成下一个任务事件。
[0328] 在一个实施例中,下一个状态确定单元,还用于获取任务处理结果中的状态流转值;根据状态流转值、当前任务处理类型和当前任务状态,确定下一个任务状态。
[0329] 在一个实施例中,下一个状态确定单元,还用于判断下一个任务状态是否为尾状态;若是,则将下一个任务事件的处理状态设置为完成。
[0330] 在一个实施例中,基于工作流引擎的任务事件处理装置500,还用于当当前任务事件包括多个子任务事件时,将下一个任务事件的处理状态设置为挂起。
[0331] 在一个实施例中,下一个事件生成单元,还用于获取子任务事件的当前子处理状态;当多个子任务事件的当前子处理状态均为完成时,将下一个任务事件的处理状态设置为可处理。
[0332] 需要说明的是,本发明的基于工作流引擎的任务事件处理装置与本发明的基于工作流引擎的任务事件处理方法一一对应,在上述基于工作流引擎的任务事件处理方法的实施例阐述的技术特征及其有益效果均适用于基于工作流引擎的任务事件处理装置的实施例中,具体内容可参见本发明方法实施例中的叙述,此处不再赘述,特此声明
[0333] 此外,上述示例的基于工作流引擎的任务事件处理装置的实施方式中,各程序模块的逻辑划分仅是举例说明,实际应用中可以根据需要,例如出于相应硬件的配置要求或者软件的实现的便利考虑,将上述功能分配由不同的程序模块完成,即将所述基于工作流引擎的任务事件处理装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分功能。
[0334] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于工作流引擎的任务事件处理数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于工作流引擎的任务事件处理方法。
[0335] 本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0336] 在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个方法实施例中的步骤。
[0337] 本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,作为独立的产品销售或使用。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部件(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0338] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
[0339] 本发明实施例的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或(模块)单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0340] 以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0341] 以上所述实施例仅表达了本发明的几种实施方式,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈