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

一种业务状态更新方法及装置

文献发布时间:2024-04-18 20:01:23


一种业务状态更新方法及装置

技术领域

本申请涉及任务调度技术领域,尤其涉及一种业务状态更新方法及装置。

背景技术

目前业界流程引擎的专注于流程流转,包括会签、分发、聚合、分支、子流程等功能,而在实际的业务流程场景中往往要求在流程流转的过程中体现业务状态的变化。

在目前业界中常用的方法是采用硬编码或者状态机,以上两种实现方法对应的装置需要使用流程引擎的接口,同时根据具体的业务场景再使用状态机的接口来确定业务状态。上述两种方式在应用开发上较为复杂,开发人员需要熟悉流程引擎的接口,又要熟悉状态机的接口。并且上述两种方式中,业务状态的取值与代码的耦合度较高,随着业务的发展和变化,需要调整应用和状态机相应的代码,使得业务状态的更新受限。

发明内容

本申请实施例提供了一种业务状态更新方法及装置,用于在业务流程场景中确定业务状态值。

第一方面,本申请实施例提供了一种业务状态更新方法,应用于流程引擎设备,包括:

获取流程触发请求;

基于所述流程触发请求,确定相应的流程模板,并按照所述流程模板进行流程流转,获得流程结果,其中,在所述流程流转过程中,按照预先针对所述流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,所述流程模板包括多个流程阶段。

通过预先在业务的流程模板中配置相应的业务状态更新规则,简化了复杂的应用开发过程;面对不同的业务流程,开发人员只需要关注流程引擎接口,并对业务的流程模板的配置进行调整即可,使得流程模板有更好的扩展性,业务状态的确定不会受到业务更新的限制。

可选地,所述在所述流程流转过程中,按照预先针对所述流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,包括:

针对每个流程阶段,当流程流转至所述流程阶段时,获取预先针对所述流程阶段设置的静态业务状态值,并将所述业务状态更新为所述静态业务状态值。

可选地,所述流程阶段为流程节点或流程边。

可选地,当所述流程模板对应的业务场景更新时,相应更新所述流程模板中各个流程阶段对应的静态业务状态值。

在业务场景更新时,通过更新流程模板的流程节点和流程边进行静态业务状态值即可,而无需更改代码逻辑,使得流程模板在实际应用场景中有更好的扩展性。

可选地,所述在所述流程流转过程中,按照预先针对所述流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,还包括:

针对每个流程阶段,当流程流转至所述流程阶段时,将所述流程阶段对应的业务参数输入规则引擎,确定所述流程阶段对应的动态业务状态值;

将所述业务状态更新为所述动态业务状态值。

根据具体的业务参数来动态决策当前流程阶段的业务状态值,以适应更复杂的业务应用场景。

可选地,所述流程阶段对应的业务参数是从应用系统中获得的。

可选地,所述规则引擎的规则号与动态业务状态值的生成规则对应。

第二方面,本申请实施例提供了一种业务状态更新装置,应用于流程引擎设备,包括:

获取模块,用于获取流程触发请求;

处理模块,用于基于所述流程触发请求,确定相应的流程模板,并按照所述流程模板进行流程流转,获得流程结果,其中,在所述流程流转过程中,按照预先针对所述流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,所述流程模板包括多个流程阶段。

通过预先在业务的流程模板中配置相应的业务状态更新规则,简化了复杂的应用开发过程;面对不同的业务流程,开发人员只需要关注流程引擎接口,并对业务的流程模板的配置进行调整即可,使得流程模板有更好的扩展性,业务状态的确定不会受到业务更新的限制。

可选地,所述处理模块具体用于:

针对每个流程阶段,当流程流转至所述流程阶段时,获取预先针对所述流程阶段设置的静态业务状态值,并将所述业务状态更新为所述静态业务状态值。

可选地,所述处理模块具体用于:

所述流程阶段为流程节点或流程边。

可选地,所述处理模块具体用于:

当所述流程模板对应的业务场景更新时,相应更新所述流程模板中各个流程阶段对应的静态业务状态值。

可选地,所述处理模块具体用于:

针对每个流程阶段,当流程流转至所述流程阶段时,将所述流程阶段对应的业务参数输入规则引擎,确定所述流程阶段对应的动态业务状态值;

将所述业务状态更新为所述动态业务状态值。

可选地,所述处理模块具体用于:

所述流程阶段对应的业务参数是从应用系统中获得的。

可选地,所述处理模块具体用于:

所述规则引擎的规则号与动态业务状态值的生成规则对应。

第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行上述第一方面任意所述的业务状态更新方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当所述程序在计算机设备上运行时,使得所述计算机设备执行上述第一方面任意所述的业务状态更新方法。

第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述所述业务状态更新方法的步骤。

本申请实施例中,通过预先在业务的流程模板中配置相应的业务状态更新规则,简化了复杂的应用开发过程;面对不同的业务流程,开发人员只需要关注流程引擎接口,并对业务的流程模板的配置进行调整即可,使得流程模板有更好的扩展性,业务状态的确定不会受到业务更新的限制。

附图说明

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

图1为本发明实施例提供的一种业务状态更新系统架构图示意图;

图2为本发明实施例提供的一种业务状态更新方法的流程示意图;

图3为本发明实施例提供的一种静态机制业务状态更新方法的流程示意图;

图4为本发明实施例提供的一种动态机制业务状态更新方法的流程示意图;

图5为本发明实施例提供的一种业务状态更新装置的结构示意图;

图6为本发明实施例提供的一种计算设备的结构示意图。

具体实施方式

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

参见图1,其为本申请实施例使用的一种业务状态更新系统架构图,该系统架构100包括流程引擎设备101和应用系统102,其中,流程引擎设备101用于采集用户的请求;流程引擎设备101可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。

流程引擎设备101接收应用系统102发送的流程触发请求,流程引擎设备101确定相应的流程模板,并按照预先针对流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,将更新后的业务状态实时传递给应用系统102,以便应用系统102通过业务状态来判断当前的流程阶段,并采取相应的业务逻辑处理。应用系统102可以是独立的物理服务端,也可以是多个物理服务端构成的服务端集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务端。

流程引擎设备101和应用系统102可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。

基于上述系统架构,图2示例性的示出了一种业务状态更新方法的流程,该方法的流程应用于流程引擎设备,包括以下步骤:

步骤S201,获取流程触发请求;

具体地,流程引擎设备获取请求,该请求触发相应的业务流程。

步骤S202,基于流程触发请求,确定相应的流程模板,并按照流程模板进行流程流转,获得流程结果,其中,在流程流转过程中,按照预先针对流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,流程模板包括多个流程阶段。

具体地,流程引擎设备基于流程触发请求,确定相应的流程模板,其中,不同的业务场景下,流程模板也不相同。流程引擎根据预先配置好的流程模板进行流转,在一个流程模板中,包括多个流程阶段,每个流程阶段都配置有相应的状态更新规则;从一个流程阶段到下一个流程阶段的过程中,业务状态会根据状态更新规则进行相应的更新,直到流程结束时,流程引擎获得流程结果。

通过预先在业务的流程模板中配置相应的业务状态更新规则,简化了复杂的应用开发过程;面对不同的业务流程,开发人员只需要关注流程引擎接口,并对业务的流程模板的配置进行调整即可,使得流程模板有更好的扩展性,业务状态的确定不会受到业务更新的限制。

在一些实施例中,流程阶段为流程节点或流程边。

具体地,流程阶段中包含多个流程节点,每个节点对应一个业务状态。其中,流程节点类型包括任务节点、活动节点、分支节点、聚合节点、决策节点和边缘节点,通过不同类型节点的组合实现流程逻辑。流程边为任意两个流程节点之间的连线,流程边也有对应的业务状态。其中,流程边具有方向性,举例来说,节点1到节点2的流程阶段为提交,节点2到节点1的流程阶段为退回,因此在节点1到节点2时的业务状态与节点2到节点1的业务状态并不相同。

在一些实施例中,在流程流转过程中,按照预先针对流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,包括:针对每个流程阶段,当流程流转至流程阶段时,获取预先针对流程阶段设置的静态业务状态值,并将业务状态更新为静态业务状态值。

具体地,若该流程为可以预知的业务流程,则在该业务流程的流程模板中,每个流程阶段配置有确定的静态业务状态值。将确定的流程模板作为元数据导入到流程引擎中,流程引擎按照流程模板进行流转,并按照预先对各流程阶段设置的静态业务状态值,进行业务状态的更新,即跟随静态业务状态值进行相应的状态变迁。

举例来说,如图3所示,该业务流程包括两个流程节点:节点1、节点2,两个节点之间包括一个流程边,为该流程配置的流程模板包括以下内容:为节点1配置的静态业务状态值为“业务状态1”、节点1到节点2方向的边上配置为提交状态,提交状态下的静态业务状态值为“业务状态2”、节点2配置的静态业务状态值为“业务状态3”、节点2到节点1方向的边上配置为退回状态,退回状态下的静态业务状态值为“业务状态4”。将上述配置的流程模板作为元数据导入到流程引擎中进行运行,业务状态跟随流程流转进行相应的变迁,具体的业务状态的变迁过程为:流程引擎获取流程触发请求,流程到达节点1,此时节点1的业务状态值为“业务状态1”,经过应用提交后,业务状态值先变为“业务状态2”,到达节点2后业务状态值变为“业务状态3”,若此时应用驳回这个流程,则业务状态值经过“业务状态4”后,退回到节点1,此时,业务状态值回到“业务状态1”。

在一些实施例中,当流程模板对应的业务场景更新时,相应更新流程模板中各个流程阶段对应的静态业务状态值。

具体地,流程流转中的各个流程阶段的业务状态,均可以通过流程模板的流程节点和流程边进行配置,当流程模板对应的业务流程场景更新或者进行调整时,只需要调整、更新流程模板中各个流程阶段对应的流程节点和流程边的静态业务状态值。

在业务场景更新时,通过更新流程模板的流程节点和流程边进行静态业务状态值即可,而无需更改代码逻辑,使得流程模板在实际应用场景中有更好的扩展性。

在一些实施例中,在流程流转过程中,按照预先针对流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,还包括:针对每个流程阶段,当流程流转至流程阶段时,将流程阶段对应的业务参数输入规则引擎,确定流程阶段对应的动态业务状态值;将业务状态更新为动态业务状态值。

具体地,若在某一个业务流程中的业务状态为不可预知的,则在该业务流程的流程模板中,每个流程阶段的业务状态值需要根据不同的业务参数,将业务参数输入到规则引擎中,其中,规则引擎由流程引擎调用,最后由规则引擎确定出流程阶段相应的动态业务状态值,并将该动态业务状态值作为业务状态值。其中,在不同的业务流程中,规则引擎获取的业务参数的个数和参数类别不相同。

根据具体的业务参数来动态决策当前流程阶段的业务状态值,以适应更复杂的业务应用场景。

在一些实施例中,流程阶段对应的业务参数是从应用系统中获得的。

具体地,流程阶段的需要输入到规则引擎中的业务参数,是由应用系统通过上下文传递给流程引擎的。流程引擎从应用系统获取业务参数,根据业务参数确定出流程阶段对应的业务状态值,将业务状态值返回给应用系统,应用系统根据获取到的业务状态值来判断当前的流程阶段,并采取相应的业务逻辑处理。

在一些实施例中,规则引擎的规则号与动态业务状态值的生成规则对应。

具体地,通过流程引擎调用规则引擎来确定动态业务状态值,在规则引擎中有多个生成规则,记为RuleID。每个生成规则对应一个规则号,ID为规则号。业务状态取值公式为x=RuleID(a,b…),a、b为业务参数。

举例来说,规则引擎收到的业务参数为a、b、c,若采用规则引擎中的规则1,则记此时的业务状态为x,x=Rule1(a,b,c);若采用规则引擎中的规则2,则记此时的业务状态为y,y=Rule2(a,b,c)。

当业务状态值生成规则发生变化时,只需要调整规则引擎中配置的规则号即可,不需要改动代码,在动态机制下,使得流程模板在实际应用场景中有更好的扩展性。

参见图4,为本申请实施例提供一种在动态配置机制下,确定动态业务状态值方法的流程示意图,包括以下步骤:

该业务流程包括两个流程节点:节点1、节点2,两个节点之间包括一个流程边,为该流程配置的流程模板包括以下内容:节点1上使用状态取值公式为“x=Rule1(a,b…)”,节点2上使用状态取值公式为“y=Rule2(a,b…)”,在节点1到节点2方向的边上配置为提交状态,在提交状态下的动态业务状态值z使用“z=Rule3(a,b…)”,在节点2到节点1方向的边上配置为退回状态,在退回状态下的动态业务状态值使用“v=Rule4(a,b…)”。

具体的业务状态的变迁过程为:流程引擎获取流程触发请求,流程到达节点1,此时节点1的业务状态值根据接收到的业务参数a、b…和状态取值公式“x=Rule1(a,b…)”确定为“业务状态x”,经过应用提交后,业务状态值根据接收到的业务参数a、b…和状态取值公式“z=Rule3(a,b…)”确定为“业务状态z”,到达节点2后业务状态值根据收到的业务参数a、b…和状态取值公式“y=Rule2(a,b…)”确定为“业务状态y”,若此时应用驳回这个流程,则业务状态值根据收到的业务参数a、b…和状态取值公式“v=Rule4(a,b…)”确定为“业务状态v”经过“业务状态v”后,退回到节点1。

根据具体的业务参数来动态决策当前流程阶段的业务状态值,以适应更复杂的业务应用场景。

基于相同的技术构思,本申请实施例提供了一种业务状态更新装置结构示意图,如图5所示,该装置500包括:

获取模块501,用于获取流程触发请求;

处理模块502,用于基于所述流程触发请求,确定相应的流程模板,并按照所述流程模板进行流程流转,获得流程结果,其中,在所述流程流转过程中,按照预先针对所述流程模板中各个流程阶段配置的状态更新规则,相应更新业务状态,所述流程模板包括多个流程阶段。

可选地,所述处理模块502具体用于:

针对每个流程阶段,当流程流转至所述流程阶段时,获取预先针对所述流程阶段设置的静态业务状态值,并将所述业务状态更新为所述静态业务状态值。

可选地,所述处理模块502具体用于:

所述流程阶段为流程节点或流程边。

可选地,所述处理模块502具体用于:

当所述流程模板对应的业务场景更新时,相应更新所述流程模板中各个流程阶段对应的静态业务状态值。

可选地,所述处理模块502具体用于:

针对每个流程阶段,当流程流转至所述流程阶段时,将所述流程阶段对应的业务参数输入规则引擎,确定所述流程阶段对应的动态业务状态值;

将所述业务状态更新为所述动态业务状态值。

可选地,所述处理模块502具体用于:

所述流程阶段对应的业务参数是从应用系统中获得的。

可选地,所述处理模块502具体用于:

所述规则引擎的规则号与动态业务状态值的生成规则对应。

通过预先在业务的流程模板中配置相应的业务状态更新规则,简化了复杂的应用开发过程;面对不同的业务流程,开发人员只需要关注流程引擎接口,并对业务的流程模板的配置进行调整即可,使得流程模板有更好的扩展性,业务状态的确定不会受到业务更新的限制。

基于相同的技术构思,本申请实施例提供了一种计算机设备,该计算机设备可以是图1所示的流程引擎设备101或应用系统102,如图6所示,包括至少一个处理器601,以及与至少一个处理器连接的存储器602,本申请实施例中不限定处理器601与存储器602之间的具体连接介质,图6中处理器601和存储器602之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。

在本申请实施例中,存储器602存储有可被至少一个处理器601执行的指令,至少一个处理器601通过执行存储器602存储的指令,可以执行上述业务状态更新方法的步骤。

其中,处理器601是计算机设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器602内的指令以及调用存储在存储器602内的数据,从而实现对业务状态的更新。可选的,处理器601可包括一个或多个处理单元,处理器601可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以集成到处理器601中。在一些实施例中,处理器601和存储器602可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。

处理器601可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器602作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器602可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器602是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机设备存取的任何其他介质,但不限于此。本申请实施例中的存储器602还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。

基于同一发明构思,本申请实施例提供了一种计算机可读存储介质,其存储有可由计算机设备执行的计算机程序,当程序在计算机设备上运行时,使得计算机设备执行上述业务状态更新方法的步骤。

基于同一发明构思,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机设备执行时,使所述计算机设备执行上述业务状态更新方法的步骤。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

相关技术
  • 消息推送方法、装置、计算机设备及存储介质
  • 视频集合的消息推送方法、装置、计算机设备及存储介质
  • 视频消息推送方法、装置、计算机设备及存储介质
  • 消息推送方法、装置、计算机设备和存储介质
  • 视频集合的视频消息推送方法、装置、设备及存储介质
  • 消息推送方法、装置、计算机设备及计算机可读存储介质
  • 消息推送方法、装置、计算机设备及计算机可读存储介质
技术分类

06120116550800