流程回退补偿方法、装置、存储介质及电子设备与流程

文档序号:20583700发布日期:2020-04-29 01:39阅读:202来源:国知局
流程回退补偿方法、装置、存储介质及电子设备与流程

本公开涉及流程处理领域,具体地,涉及一种流程回退补偿方法、装置、存储介质和电子设备。



背景技术:

在流程运行的过程中,可能会因为人工操作或突发情况(如,网络中断)等导致流程需要回退。在回退的过程中,可能会针对某些流程节点进行补偿操作。现有技术中,在对流程节点进行补偿时,通常需要对流程引擎对流程节点进行解析,从而创建补偿应用程序,从而基于该补偿应用程序对该流程节点进行补偿。



技术实现要素:

本公开的目的是提供一种降低程序资源和存储资源的开销的流程回退补偿方法、装置、存储介质和电子设备。

为了实现上述目的,根据本公开的第一方面,提供一种流程回退补偿方法,所述方法包括:

在流程运行发生驳回时,确定待回退流程节点;

若确定所述待回退流程节点需要进行自动补偿,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,其中,所述异步消息中包括与所述待回退流程节点对应的应用程序的应用标识,所述应用程序为所述待回退流程节点进行业务操作时获取的,所述应用程序中包括用于对所述待回退流程节点进行补偿的补偿子程序;

根据所述异步消息对所述待回退流程节点进行补偿。

可选地,所述方法还包括:

在流程运行时,对待执行流程节点进行解析,获得所述待执行流程节点对应的应用标识;

根据所述应用标识获取所述待执行流程节点对应的应用程序;

若所述待执行流程节点对应的应用程序的类型为自动补偿类型、且所述待执行流程节点对应的应用程序的运行方式为异步处理,创建与所述待执行流程节点对应的异步消息;

若所述待执行流程节点成功执行,设置所述待执行流程节点对应的异步消息的状态为挂起态。

可选地,所述与所述待回退流程节点对应的异步消息中还包括所述待回退流程节点的节点标识;

所述根据所述异步消息对所述待回退流程节点进行补偿,包括:

将所述异步消息发送至应用程序处理器,以由所述应用程序处理器根据所述异步消息中所述节点标识对应的流程节点信息执行所述补偿子程序。

可选地,所述方法还包括:

在根据所述异步消息对所述待回退流程节点进行补偿完成之后,根据流程运行信息,确定下一待回退流程节点;

将所述下一待回退流程节点确定为新的待回退流程节点,并重新执行若确定所述待回退流程节点需要进行自动补偿,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态;以及根据所述异步消息对所述待回退流程节点进行补偿的步骤。

可选地,所述方法还包括:

在对所述待回退流程节点进行补偿后,将与所述待回退流程节点的对应的异步消息删除。

根据本公开的第二方面,提供一种流程回退补偿装置,所述装置包括:

第一确定模块,用于在流程运行发生驳回时,确定待回退流程节点;

更新模块,用于在确定所述待回退流程节点需要进行自动补偿的情况下,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,其中,所述异步消息中包括与所述待回退流程节点对应的应用程序的应用标识,所述应用程序为所述待回退流程节点进行业务操作时获取的,所述应用程序中包括对所述待回退流程节点进行补偿的补偿子程序;

补偿模块,用于根据所述异步消息对所述待回退流程节点进行补偿。

可选地,所述装置还包括:

解析模块,用于在流程运行时,对待执行流程节点进行解析,获得所述待执行流程节点对应的应用标识;

获取模块,用于根据所述应用标识获取所述待执行流程节点对应的应用程序;

创建模块,用于在所述待执行流程节点对应的应用程序的类型为自动补偿类型、且所述待执行流程节点对应的应用程序的运行方式为异步处理的情况下,创建与所述待执行流程节点对应的异步消息;

设置模块,用于在所述待执行流程节点成功执行的情况下,设置所述待执行流程节点对应的异步消息的状态为挂起态。

可选地,所述与所述待回退流程节点对应的异步消息中还包括所述待回退流程节点的节点标识;

所述补偿模块包括:

将所述异步消息发送至应用程序处理器,以由所述应用程序处理器根据所述异步消息中所述节点标识对应的流程节点信息执行所述补偿子程序。

可选地,所述装置还包括:

第二确定模块,用于在根据所述异步消息对所述待回退流程节点进行补偿完成之后,根据流程运行信息,确定下一待回退流程节点,并将所述下一待回退流程节点确定为新的待回退流程节点,并触发所述更新模块在确定所述待回退流程节点需要进行自动补偿的情况下,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态;以及所述补偿模块根据所述异步消息对所述待回退流程节点进行补偿。

可选地,所述装置还包括:

删除模块,用于在对所述待回退流程节点进行补偿后,将与所述待回退流程节点的对应的异步消息删除。

根据本公开的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述第一方面任一所述方法的步骤。

根据本公开的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现上述第一方面任一所述方法的步骤。

在上述技术方案中,在流程运行发生驳回时,确定待回退流程节点;在确定待回退流程节点需要进行自动补偿,将与待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,从而根据该异步消息对待回退流程节点进行补偿。通过上述技术方案,应用程序为流程节点进行业务操作时获取的,应用程序中包括对退流程节点进行补偿的补偿子程序,从而使得在对流程节点进行补偿时,可以基于该流程节点在执行业务操作时的应用程序和异步消息进行补偿,避免对流程节点的重复解析,提高流程回退补偿的效率。并且,无需重新创建应用程序和异步消息,可以有效降低程序资源和存储资源的开销,降低对数据库的读写频率,提高流程回退补偿的简捷易用性。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开的一种实施方式提供的流程回退补偿方法的流程图;

图2是根据本公开的一种实施方式提供的流程回退补偿装置的框图;

图3是根据一示例性实施例示出的一种电子设备的框图;

图4是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

申请人发现,在流程运行时需要对流程节点进行解析,并需要创建业务应用程序和程序消息以实现该流程节点对应的业务操作。而在流程运行发生驳回时,在对已经执行的节点进行补偿时,也需要对流程节点进行解析,并创建用于补偿的应用程序和消息,程序资源和存储资源的开销较大。基于此,本公开提供一种流程回退补偿方法,可以有效降低程序资源和存储资源的开销。

图1所示,为根据本公开的一种实施方式提供的流程回退补偿方法的流程图,如图1所示,所述方法包括:

在s11中,在流程运行发生驳回时,确定待回退流程节点。

其中,该流程可以是运行在单一本地系统中的流程,也可以是运行在分布式系统中的流程,通过多系统合作进行流程的运行。示例地,流程运行发生驳回可以是在流程运行至某节点时,流程当前状态不能够满足该节点任务的审批条件,该任务不能通过,则该流程运行发生驳回。例如,用户提交了请假审批,而在主管进行审核时拒绝了该请假审批,将该请假审批退回至用户节点,此时流程发生驳回。又一示例中,流程运行发生驳回也可以是在流程运行至某节点时,在该节点任务执行时由于网络或系统中断等原因导致节点任务未成功执行,则该流程运行发生驳回。例如,在用户的缴费流程中,用户提交缴费请求并完成扣款,而在进行缴费时,由于网络中断缴费失败,此时退回至用户节点,并需要为用户进行补款,此时流程运行发生驳回。

示例地,在流程运行发生驳回确定待回退流程节点时,可以根据流程节点的完成时间进行确定,将完成时间最晚的流程节点确定为该待回退流程节点。

在s12中,若确定待回退流程节点需要进行自动补偿,将与待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,其中,所述异步消息中包括与所述待回退流程节点对应的应用程序的应用标识,所述应用程序为所述待回退流程节点进行业务操作时获取的,所述应用程序中包括用于对所述待回退流程节点进行补偿的补偿子程序。

其中,流程节点的自动补偿为只需要通过执行补偿子程序的逻辑即可实现的补偿,例如,缴费流程中缴费失败时的自动退款。

示例地,可以针对流程中需要进行自动补偿的流程节点预先设置一补偿标识,该标识信息则用于表示该流程节点需要进行自动补偿,因此,可以通过检测待回退流程节点是否设置有该补偿标识而确定该待回退流程节点是否需要进行自动补偿。

在s13中,根据异步消息对待回退流程节点进行补偿。

示例地,该应用程序中包括用于对该待回退流程节点进行补偿的补偿子程序,则可以基于流程的业务数据直接执行该异步消息中包括的应用标识对应的应用程序中的该补偿子程序,从而对流程节点进行补偿。其中获取流程的业务数据可以通过节点标识确定该节点标识对应的节点所属的流程,从而获取流程的业务数据,该方式为现有技术,在此不再赘述。

在上述技术方案中,在流程运行发生驳回时,确定待回退流程节点;在确定待回退流程节点需要进行自动补偿,将与待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,从而根据该异步消息对待回退流程节点进行补偿。通过上述技术方案,应用程序为流程节点进行业务操作时获取的,应用程序中包括对退流程节点进行补偿的补偿子程序,从而使得在对流程节点进行补偿时,可以基于该流程节点在执行业务操作时的应用程序和异步消息进行补偿,避免对流程节点的重复解析,提高流程回退补偿的效率。并且,无需重新创建应用程序和异步消息,可以有效降低程序资源和存储资源的开销,降低对数据库的读写频率,提高流程回退补偿的简捷易用性。

可选地,所述方法还包括:

在流程运行时,对待执行流程节点进行解析,获得所述待执行流程节点对应的应用标识。

根据所述应用标识获取所述待执行流程节点对应的应用程序。

示例地,在流程设置时,针对需要进行自动补偿的流程节点,则为其设置自动补偿类型的应用程序,其中该应用程序中既包括该用于执行该流程节点的正常业务的业务子程序,也包括用于对流程节点进行补偿的补偿子程序,并将该应用程序的应用标识与该流程节点进行关联。现有技术中,通常需要创建多个全局的扩展属性以执行补偿应用程序。这会导致流程中需要进行自动补偿的节点存在多个扩展属性。而在上述技术方案中,通过将应用程序与流程节点进行关联,从而无需创建多个扩展属性,也可以有效降低扩展属性对应的存储资源占用,进一步降低存储资源的开销。

在该实施例中,在流程运行时,可以对流程节点进行解析,从而可以获得该流程节点对应的应用标识,进而可以根据该应用标识获取该应用标识对应的应用程序。

若所述待执行流程节点对应的应用程序的类型为自动补偿类型、且所述待执行流程节点对应的应用程序的运行方式为异步处理,创建与所述待执行流程节点对应的异步消息;

若所述待执行流程节点成功执行,设置所述待执行流程节点对应的异步消息的状态为挂起态。

其中,可以对应用程序的类型和运行方式进行预先设置。例如,可以通过流程设计器设置流程节点对应的应用程序,并在设置对应的应用程序时,对其类型和运行方式进行设置。

在该实施例中,若该流程节点对应的应用程序的类型为自动补偿类型,则表示该流程节点在流程运行发生驳回时需要进行自动补偿。因此,在该待执行流程节点成功执行后,可以将该待执行流程节点对应的异步消息的状态设置为挂起态。示例地,可以通过为异步消息关联一状态标识以实现其状态的设置和更新。例如,该异步消息在生成时,该状态标识可以默认为空值或运行态,在待执行流程节点成功执行后,将该异步消息的状态标识设置为挂起态。又例如,该状态标识也可以用二进制数进行表示,如1表示运行态,0表示挂起态。通过上述技术方案,使得在对流程节点进行补偿时,无需重新生成异步消息,从而可以有效降低对数据库的读写频率,并降低创建消息的资源开销。

可选地,若待执行流程节点对应的应用程序的运行方式为同步处理,则可以直接执行该待执行流程节点的业务操作。若待执行流程节点对应的应用程序的类型不是自动补偿类型、且应用程序的运行方式为异步处理,则创建与该待执行流程节点对应的异步消息,并在该待执行流程节点成功执行之后,可以直接删除该异步消息。

可选地,所述与所述待回退流程节点对应的异步消息中还包括所述待回退流程节点的节点标识;

根据所述异步消息对所述待回退流程节点进行补偿,包括:

将所述异步消息发送至应用程序处理器,以由所述应用程序处理器根据所述异步消息中所述节点标识对应的流程节点信息执行所述补偿子程序。

其中,应用程序处理器可以对异步消息进行统一调度处理。应用程序处理器在对异步消息进行调度处理时,可以基于该异步消息中的应用标识获取对应的应用程序,从而确定该应用程序中的补偿子程序;基于该异步消息中的节点标识从流程实例中获取该节点标识对应的流程节点的流程节点信息。因此,应用程序处理器可以根据该流程节点信息执行该补偿子程序,从而对该流程节点进行补偿。例如,根据节点标识获取对应的流程节点为扣费节点,流程节点信息为用户账户余额,在执行补偿子程序可以获取到业务数据,如,扣费的数额,从而将该扣费的数额补偿到用户余额中,以完成对扣费节点的补偿。

因此,在上述技术方案中,通过将异步消息发送至应用程序处理器,以由应用程序处理器对异步消息进行调度处理,一方面便于异步消息的统一处理,另一方面,可以将补偿业务单独进行处理,以提高流程处理的效率和吞吐量,降低流程引擎的压力。

可选地,所述方法还包括:

在对所述待回退流程节点进行补偿后,将与所述待回退流程节点的对应的异步消息删除。

在对待回退流程节点进行补偿后,在该流程的后续处理过程中无需使用到该异步消息,此时可以将该待回退流程节点对应的异步消息删除,从而可以进一步降低对存储资源的占用,节省存储空间。

可选地,所述方法还包括:

在根据所述异步消息对所述待回退流程节点进行补偿完成之后,根据流程运行信息,确定下一待回退流程节点;其中,可以根据流程运行信息,将在流程运行过程中待回退流程节点的上一流程节点作为该下一待回退流程节点,以对已完成的流程节点反向遍历,进行流程回退补偿。

将所述下一待回退流程节点确定为新的待回退流程节点,并重新执行若确定所述待回退流程节点需要进行自动补偿,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态;以及根据所述异步消息对所述待回退流程节点进行补偿的步骤。

其中,上述补偿的具体实施已在上文进行详述,在此不再赘述。

通过上述技术方案,可以根据流程运行信息,对流程中已完成的流程节点进行反向遍历,并在反向遍历的过程中,对该流程中各个需要自动补偿的流程节点进行补偿,从而保证流程运行中的数据一致性。

本公开还提供一种流程回退补偿装置,如图2所示,所述装置10包括:

第一确定模块100,用于在流程运行发生驳回时,确定待回退流程节点;

更新模块200,用于在确定所述待回退流程节点需要进行自动补偿的情况下,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态,其中,所述异步消息中包括与所述待回退流程节点对应的应用程序的应用标识,所述应用程序为所述待回退流程节点进行业务操作时获取的,所述应用程序中包括用于对所述待回退流程节点进行补偿的补偿子程序;

补偿模块300,用于根据所述异步消息对所述待回退流程节点进行补偿。

可选地,所述装置还包括:

解析模块,用于在流程运行时,对待执行流程节点进行解析,获得所述待执行流程节点对应的应用标识;

获取模块,用于根据所述应用标识获取所述待执行流程节点对应的应用程序;

创建模块,用于在所述待执行流程节点对应的应用程序的类型为自动补偿类型、且所述待执行流程节点对应的应用程序的运行方式为异步处理的情况下,创建与所述待执行流程节点对应的异步消息;

设置模块,用于在所述待执行流程节点成功执行的情况下,设置所述待执行流程节点对应的异步消息的状态为挂起态。

可选地,所述与所述待回退流程节点对应的异步消息中还包括所述待回退流程节点的节点标识;

所述补偿模块包括:

将所述异步消息发送至应用程序处理器,以由所述应用程序处理器根据所述异步消息中所述节点标识对应的流程节点信息执行所述补偿子程序。

可选地,所述装置还包括:

第二确定模块,用于在根据所述异步消息对所述待回退流程节点进行补偿完成之后,根据流程运行信息,确定下一待回退流程节点,并将所述下一待回退流程节点确定为新的待回退流程节点,并触发所述更新模块在确定所述待回退流程节点需要进行自动补偿的情况下,将与所述待回退流程节点对应的、挂起态的异步消息的状态更新为运行态;以及所述补偿模块根据所述异步消息对所述待回退流程节点进行补偿。

可选地,所述装置还包括:

删除模块,用于在对所述待回退流程节点进行补偿后,将与所述待回退流程节点的对应的异步消息删除。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图3是根据一示例性实施例示出的一种电子设备700的框图。如图3所示,该电子设备700可以包括:处理器701,存储器702。该电子设备700还可以包括多媒体组件703,输入/输出(i/o)接口704,以及通信组件705中的一者或多者。

其中,处理器701用于控制该电子设备700的整体操作,以完成上述的流程回退补偿方法中的全部或部分步骤。存储器702用于存储各种类型的数据以支持在该电子设备700的操作,这些数据例如可以包括用于在该电子设备700上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器702可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件703可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器702或通过通信组件705发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口704为处理器701和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件705用于该电子设备700与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g、4g、nb-iot、emtc、或其他5g等等,或它们中的一种或几种的组合,在此不做限定。因此相应的该通信组件705可以包括:wi-fi模块,蓝牙模块,nfc模块等等。

在一示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的流程回退补偿方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的流程回退补偿方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器702,上述程序指令可由电子设备700的处理器701执行以完成上述的流程回退补偿方法。

图4是根据一示例性实施例示出的一种电子设备1900的框图。例如,电子设备1900可以被提供为一服务器。参照图4,电子设备1900包括处理器1922,其数量可以为一个或多个,以及存储器1932,用于存储可由处理器1922执行的计算机程序。存储器1932中存储的计算机程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理器1922可以被配置为执行该计算机程序,以执行上述的流程回退补偿方法。

另外,电子设备1900还可以包括电源组件1926和通信组件1950,该电源组件1926可以被配置为执行电子设备1900的电源管理,该通信组件1950可以被配置为实现电子设备1900的通信,例如,有线或无线通信。此外,该电子设备1900还可以包括输入/输出(i/o)接口1958。电子设备1900可以操作基于存储在存储器1932的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm等等。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的流程回退补偿方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器1932,上述程序指令可由电子设备1900的处理器1922执行以完成上述的流程回退补偿方法。

在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的流程回退补偿方法的代码部分。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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