一种业务流程处理方法、装置及设备
文献发布时间:2024-04-18 19:58:26
技术领域
本申请涉及任务调度领域,提供一种业务流程处理方法、装置及设备。
背景技术
执行某个业务的流程涉及多个子流程的集合,以业务为例机构代理销售业务为例,该业务的多个子流程可包括准入评审、要素调整与补充、产品报批、代销协议签订等子流程。业务一般是由系统执行,系统包括多个组件,这多个组件一般是独立部署的。而在系统执行业务时,是由多个组件执行这多个子流程。而多个组件相对独立部署,因此多个组件如何同步数据是一大难点。
发明内容
本申请实施例提供一种业务流程处理方法、装置及设备,用于多个组件如何同步数据。
第一方面,本申请实施例提供一种业务流程处理方法,应用于业务流程处理系统,所述业务流程处理系统包括第一组件和第二组件,所述方法包括:所述第一组件执行第一子流程,所述第一子流程对应至少一个状态,所述第一子流程为执行第一业务的流程所包括的多个子流程中的一个子流程,状态指示子流程的进度;如果第一子流程的状态变更为所述第一子流程对应的至少一个状态中的第一状态,所述第一组件向所述第二组件发送所述第一子流程的第一信息,所述第一信息包括第一编码,第一编码为所述第一状态对应的编码;所述第二组件根据所述第一信息,同步所述第一子流程的状态。
本申请实施例中,可以利用编码表示子流程的状态,在一个组件(如第二组件)同步数据时,可以根据另一个组件(如第一组件)发送所述另一个组件的状态的编码,同步第一组件的状态,一方面提供了多个组件同步执行业务的状态的机制,另一方面,采用编码的方式表示状态,可以减少组件之间的交互的数据量。
可选的,所述业务流程处理系统还包括第三组件,在所述第一组件执行所述第一子流程之前,所述方法还包括:确定所述多个子流程中每个子流程对应的状态;按照所述多个子流程的预期执行顺序,遍历所述多个子流程中每个子流程对应的状态,并对遍历的状态进行编码,获得编码集合,其中,所述编码集合中先获得的编码比后获得的编码的取值小,所述编码集合包括所述第一编码。
按照第一业务的多个子流程的预期执行顺序,对其中每个子流程的每个状态进行从小到大的编码,使编码的取值大小可以直接指示第一业务的流程进度,使同步流程的时候能够更加准确。
可选的,所述业务流程处理系统还包括第四组件,所述第一信息还包括第一时刻和第一方向,所述第一时刻为所述第一子流程的状态变更为所述第一状态的时刻,所述第一方向为与所述预期执行顺序同向,或与所述预期执行顺序反向;其中,在根据所述第一信息,同步所述第一子流程的状态之前,所述方法还包括:接收来自所述第四组件的第二信息,所述第二信息包括第二编码和第二时刻,其中,所述第二编码为第二状态的编码,所述第二编码属于所述编码集合,所述第二时刻为第二子流程变更为所述第二状态的时刻;在同步所述第一子流程的状态之前,所述方法包括:所述第二组件确定所述第一信息满足第一条件,其中所述第一条件包括所述第一方向为与所述预期执行顺序同向、所述第一编码大于所述第二编码,以及所述第一时刻晚于所述第二时刻,或所述第一方向为与所述预期执行顺序反向、所述第一编码小于所述第二编码,以及所述第一时刻晚于所述第二时刻。
通过第一编码,第一时刻和第一方向,三个数据联合判断,如果第一方向与预期执行顺序同向,按照编码方式应该第一编码大于第二编码,两者可以相互印证,再通过第一时刻确认是在第二时刻之后发生的,则理解为流程按照预期方向执行;如果第一方向与预期执行顺序同反,按照编码方式应该第一编码小于第二编码,两者可以相互印证,再通过第一时刻确认是在第二时刻之后发生的,则理解为流程撤回。在这两种情况之外的,均理解为此刻无法同步的数据,确保流程数据同步时的准确度。
可选的,在按照所述多个子流程的预期执行顺序,遍历所述多个子流程中每个子流程对应的状态之前,所述方法还包括:
所述第三组件根据所述第一业务的业务类型,确定与所述第一业务对应的编码集合的第一取值范围和/或方式,其中,对所述第一业务中每个子流程对应的状态进行编码是按照所述方式进行的编码,所述编码集合中的任一编码的取值位于所述第一取值范围内。
相同的子流程在不同的业务可能对应不同的编码,通过对相同类型业务的编码集合进行复用,可以节约重新确定编码集合的时间,对编码集合的取值做限定和选择合适的编码方式,可以获得更加合理科学的编码集合。
可选的,所述第一组件向所述第二组件发送所述第一子流程的第一信息,包括:所述第一组件向所述第二组件发送所述第一信息;若所述第一组件未接收来自所述第二组件的响应消息,或所述第二组件未正确解析所述第一信息,则所述第一组件向所述第二组件重发所述第一信息。
在组件间同步存在同步数据失败的可能性,需要良好的同步兜底机制来处理数据同步失败后对业务的影响。将第一信息补充同步给第二组件时,面临第二组件中业务的当前状态与第一信息中的状态无法衔接问题,该业务的状态将无法回到正确的状态。该兜底机制不需要回滚业务状态,降低业务流程处理难度。响应消息可以反馈给第一组件,第一消息是否同步成功,从而根据响应消息内容决定是否还要将第一信息加入待同步队列,确保第一业务状态的正确性和完整性。
可选的,所述第一组件向所述第二组件重发所述第一信息,包括:所述第一组件将所述第一信息加入待同步队列;按照所述待同步队列的顺序,所述第一组件将所述第一信息发送给所述第二组件。
第一组件的发送速度跟不上时,将来不及发送的消息加入待同步队列,可以缓冲第一组件的发送压力;通过待同步队列解耦第一组件和第二组件,可以使业务流程处理系统更健壮、稳定。可选的,所述第二组件还可执行所述多个子流程中的第三子流程,所述第三子流程与所述第一子流程不同;同步所述第三子流程的状态。
第二组件可以同时具备整合第一业务状态的功能和与第一组件类似的执行子流程的功能,无需单独的整合组件承担整合功能,可以降低系统结构复杂程度,可减少开发时间。
第二方面,本申请实施例提供一种业务流程处理装置,应用于业务流程处理系统,所述业务流程处理系统包括第一组件和第二组件,所述装置包括:
确定模块,用于执行第一子流程,所述第一子流程对应至少一个状态,所述第一子流程为执行第一业务的流程所包括的多个子流程中的一个子流程,状态指示子流程的进度;
发送模块,如果第一子流程的状态变更为所述第一子流程对应的至少一个状态中的第一状态,用于向所述第二组件发送所述第一子流程的第一信息,所述第一信息包括第一编码,所述第一编码为所述第一状态对应的编码;
同步模块,用于根据所述第一信息,同步所述第一子流程的状态。
可选的,所述业务流程处理系统还包括第三组件,所述确定模块还用于:
在所述第一组件执行所述第一子流程之前,确定所述多个子流程中每个子流程对应的状态;
按照所述多个子流程的预期执行顺序,遍历所述多个子流程中每个子流程对应的状态,并对遍历的状态进行编码,获得编码集合,其中,所述编码集合中先获得的编码比后获得的编码的取值小,所述编码集合包括所述第一编码。
可选的,所述业务流程处理系统包括第四组件,所述第一信息还包括第一时刻和第一方向,所述第一时刻为所述第一子流程的状态变更为所述第一状态的时刻,所述第一方向为与所述预期执行顺序同向,或与所述预期执行顺序反向;
所述同步模块还用于:
在根据所述第一信息,同步所述第一子流程的状态之前,接收来自所述第四组件的第二信息,所述第二信息包括第二编码和第二时刻,其中,所述第二编码为第二状态的编码,所述第二编码属于所述编码集合,所述第二时刻为第二子流程变更为第二状态的时刻;
所述同步模块还用于:
在同步所述第一子流程的状态之前,确定所述第一信息满足第一条件,其中所述第一条件包括所述第一方向为与所述预期执行顺序同向、所述第一编码大于所述第二编码,以及所述第一时刻晚于所述第二时刻,或所述第一方向为与所述预期执行顺序反向、所述第一编码小于所述第二编码,以及所述第一时刻晚于所述第二时刻。
可选的,所述确定模块还用于:
在按照所述多个子流程的预期执行顺序,遍历所述多个子流程中每个子流程对应的状态之前,根据所述第一业务的业务类型,确定与所述第一业务对应的编码集合的第一取值范围和/或方式,其中,对所述第一业务中每个子流程对应的状态进行编码是按照所述方式进行的编码,所述编码集合中的任一编码的取值位于所述第一取值范围内。
可选的,发送模块具体用于:所述第一组件向所述第二组件发送所述第一信息;若所述第一组件未接收来自所述第二组件的响应消息,或所述第二组件未正确解析所述第一信息,则所述第一组件向所述第二组件重发所述第一信息。
可选的,发送模块702具体用于:所述第一组件将所述第一信息加入待同步队列;按照所述待同步队列的顺序,所述第一组件将所述第一信息发送给所述第二组件。
可选的,所述确定模块还用于:所述第二组件还可执行所述多个子流程中的第三子流程,所述第三子流程与所述第一子流程不同;同步所述第三子流程的状态。
第三方面,本申请实施例提供一种业务流程处理设备,包括:
至少一个处理器,以及
与所述至少一个处理器通信连接的存储器;
其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述至少一个处理器通过执行所述存储器存储的指令实现如第一方面中任一项所述的方法。
第四方面,本申请实施例提供一种计算机程序产品,包含有计算机指令,当其在计算机上运行时,使得上述如第一方面中任一项所述的方法被实现。
第五方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。
关于第二方面至第五方面的有益效果可参照第一方面论述的内容,此处不再赘述。
附图说明
图1为本申请实施例提供的一种业务流程处理场景的示意图;
图2为本申请实施例提供的一种业务流程处理方法的流程图;
图3为本申请实施例提供的业务流程的状态的示意图;
图4为本申请实施例提供的第一业务流程第一种进度的示意图;
图5为本申请实施例提供的第一业务流程第二种进度的示意图;
图6为本申请实施例提供的第一业务流程第三种进度的示意图;
图7为本申请实施例提供的业务流程处理装置的一种结构图;
图8为本申请实施例提供的业务流程处理设备的一种结构图。
具体实施方式
为了更好地理解本申请实施例提供的技术方案,下面将结合说明书附图以及具体的实施方式进行详细的说明。
需要说明的是,本申请实施例的技术方案中,对数据的采集、传播、使用等,均符合国家相关法律法规要求。
以业务为机构代理销售业务(后文简称为代销业务)为例,代销业务是机构接受由监督管理机构依法实施监督管理、持有金融牌照的机构委托,在机构销售渠道向客户推介、销售由持牌机构依法发行的金融产品的代理业务活动。代销业务的销售对象是金融产品,金融产品在机构销售前需要经过严格的调研、审查、审核、签订协议等前序流程,也可称之为,代销产品准入业务,以保障机构客户利益,降低经营风险。在这种背景下,加之流程类业务极为适合系统化的特点,对业务处理系统的需要显得极为突出。
代销产品准入业务中,准入评审、要素调整与补充、产品报批、代销协议签订、产品发行审核、产品参数制定这些子流程都具有严格的先后依赖关系,当前系统中,不同子流程会存在于不同组件内,对于子流程数据的整合,一套健全的业务流程处理方法,就是业务流程处理系统需要解决的关键问题。
鉴于此,本申请实施例提供一种业务流程处理方法,该方法应用业务流程处理系统,业务流程处理系统可以通过具有处理功能的设备实现,例如可以通过一个或多个服务器实现,服务器可以是虚拟的服务器或者实体的服务器等,虚拟的服务器例如云服务器。业务流程处理系统也可以通过安装在服务器或者其他电子设备中的硬件模块或软件模块来实现。软件模块例如应用程序,本文不具体限制业务流程处理系统的具体实现形式。
该业务流程处理方法可以应用于业务流程处理系统处理任意业务的场景,下面结合附图,对本申请实施例可应用的场景进行示例介绍。
图1示意了本申请实施例提供的一种场景。该场景包括业务流程处理系统。业务流程处理系统包括多个组件(如图1所示的第一组件、第二组件、第三组件和第四组件)。
多个组件中的任一组件均可是软件模块或硬件模块,例如,多个组件中的任一组件均为一个进程或者线程,或任一组件为服务器或服务器的硬件模块等。多个组件中的任意两个组件可通过有线或无线方式进行通信。
可选的,第一组件和第三组件可能是同一个组件,第二组件和第三组件可能是同一个组件,第三组件和第四组件可能是同一个组件。
下面结合附图,对本申请实施例涉及的一种业务流程处理方法进行介绍。
请参照图2,为本申请实施例提供的一种业务流程处理方法的流程示意图。该业务流程处理方法应用于业务流程处理系统,该业务流程处理系统例如为图1中业务流程处理系统,图2中涉及的第一组件、第二组件、第三组件和第四组件例如可分别对应图1中的第一组件、第二组件、第三组件和第四组件,其中S201和S202是可选的。
S201,第三组件确定第一业务中多个子流程中每个子流程对应的状态。
第一业务的类型可以有多种,例如,机构代理销售业务或代销产品准入业务。执行第一业务的整个过程可视为第一业务的流程。第一业务的流程可包括多个子流程。其中一个子流程可视为执行第一业务的过程中的至少一个环节或节点。例如,第一业务为代销产品准入业务,第一业务的流程包括代销产品这一流程,相应的,多个子流程包括准入评审、要素调整与补充、产品报批、代销协议签订、产品发行审核和产品参数制定等。
多个子流程中的每个子流程的一个或多个状态。状态表示子流程的进度,或可理解为子流程所处的节点或环节等。其中一个子流程的一个或多个状态包括该子流程可能会出现的状态,但实际执行过程中,该子流程可能会出现这一个或多个状态中的部分或全部状态,本申请实施例对此不做具体限定。一个子流程中每个状态对应表示子流程的不同进度,如代销协议签订子流程可包括机构签订协议状态和机构签订协议状态。
示例性的,第三组件可预存有第一对应关系,当业务流程处理系统需要执行第一业务时,可基于第一对应关系,确定第一业务对应的多个子流程的状态。第一对应关系可包括多个业务,以及多个业务中每个业务对应的多个子流程的状态。或者,第三组件可基于用户的输入,获得第一业务中多个子流程中每个子流程对应的状态。为简化描述,下文也可将第一业务中多个子流程中每个子流程对应的状态称为第一业务对应的多个状态,或简称为多个状态。
请参照图3,为本申请实施例提供的一种多个子流程的状态的示意图,如图3所示,第一业务包含子流程1和子流程2,子流程1包括状态1、状态2和状态3,子流程2包括状态4和状态5。图3中的箭头方向表示多个子流程的预期执行顺序。
S202,第三组件按照多个子流程的预期执行顺序,遍历多个子流程中每个子流程对应的状态,并对遍历的状态进行编码,获得编码集合。
示例性的,第三组件也可以直接对第一业务对应的多个状态中的每个状态进行编码。或者,第三组件在对第一业务对应的多个状态进行编码之前,可确定是否已保存有第二业务对应的多个状态的编码。如果存在第二业务对应的多个状态的编码,则第三组件可直接使用第二业务对应的多个状态的编码作为第一业务对应的多个状态的编码。其中,第一业务和第二业务为同一种类型的业务。如果没有保存有第二业务对应的多个状态的编码,那么第三组件可分别对第一业务对应的多个状态中的每个状态进行编码。
例如,第三组件可按照多个子流程的预期执行顺序,遍历多个子流程中每个子流程对应的状态,并对遍历的状态进行编码,获得编码集合。预期执行顺序是指正常执行第一业务的情况下,执行这多个子流程的先后顺序。
一种可能的实施方式中,在第三组件对其中一个状态进行编码之前,第三组件可基于第一业务的业务类型,确定第一业务对应的编码集合的第一取值范围和方式。如此,第三组件在对第一业务对应的多个状态进行编码时,可以按照该方式对多个状态分别进行编码,以及还可按照该方式,对这多个状态进行编码。方式例如可为独热编码或哈希编码等。第一取值范围例如为数值大小的范围或者是编码位数的范围。
可选的,在对第一业务的多个状态进行编码时,可以先用数值更小的编码对状态进行编码,再用数值大的编码对状态进行编码,如此获得编码集合中先获得的编码的取值比后获得的编码的取值小。
编码方式一,第三组件按照预期执行顺序,遍历第一业务对应的多个状态,对每个状态进行编码。
在编码方式一下的获得的第一业务对应的多个状态,以及编码集合的一种例子可参照下表1所示。表1中的多个子流程依旧以图3所示的子流程1和2,以及多个状态包括状态1至状态5为例。
表1
如上述表1,第三组件遍历第一业务对应的多个状态时,第三组件可将遍历的第一个状态(即状态1)的编码确定为1,将遍历的第二个状态(即状态2)的编码确定为2,以此类推,获得编码集合。
编码方式二,第三组件按照遍历的所有子流程的顺序,对每个子流程进行编码得到子流程编码,再对遍历的每个子流程的状态的次序进行编码,生成中间编码,并基于每个子流程编码和该子流程的状态的次序的中间编码,从而获得该子流程的状态的编码。例如,对每个子流程编码和该子流程的状态的次序的中间编码进行拼接或填充等,获得该状态对应的编码。
在编码方式二下的获得的第一业务对应的多个状态,以及编码集合可参照下表2所示。表2中的多个子流程依旧以图3所示的子流程1和2,以及多个状态包括状态1至状态5为例。
表2
如上述表2,第三组件先按照预期执行顺序对子流程进行编码,例如将子流程1的子流程编码设定为1,将子流程2的子流程编码设定为2。
第三组件对每个子流程的状态的次序,按照预期执行顺序进行编码,例如子流程1的状态1的次序的编码为1,子流程1的状态2的次序的编码为2,以此类推。
第三组件将子流程1的子流程编码和状态1的中间编码进行拼接,编码位数为2,编码方式2中第一取值范围限定编码的位数为3,则在子流程编码和状态1的中间编码中间填充0,进行补位,获得子流程1的状态1的编码为101,以此类推,可获得子流程1的状态2的编码为102,子流程1的状态3的编码为103,子流程2的状态1的编码为201,子流程2的状态2的编码为202。
可选的,第三组件在获得编码集合之后,可以将编码集合共享给其他组件(如第二组件、第三组件和第四组件)等。
S203,第一组件执行第一子流程。
本申请实施例中是以执行多个子流程中的第一子流程为例,实际上多个子流程均会被执行。第一子流程对应至少一个状态。这至少一个状态可理解为第一业务对应的多个状态中与第一子流程对应的至少一个状态。
本申请实施例中是以多个组件中的第一组件执行第一子流程为例进行介绍。第一组件除了处理第一子流程的相关事务之外,还可储存第一子流程的当前状态。
S204,如果第一子流程的状态变更为所述第一子流程对应的至少一个状态中的第一状态,第一组件向第二组件发送第一子流程的第一信息。
其中,第一信息包括第一编码,第一编码为第一状态对应的编码,第一编码即为前文中编码集合中与第一状态对应的编码。
在第一组件和第三组件相同的情况下,第三组件获得编码集合,那么第一组件可直接从编码集合获得与第一状态对应的第一编码。在第一组件和第三组件不同的情况下,第三组件可以将编码集合发送给第一组件,第一组件可直接从编码集合获得与第一状态对应的第一编码。或者,第一组件可以将第一状态发送给第三组件,从第三组件获取第一编码。
在本申请实施例中,第一组件每次更新第一子流程的状态时,均会向第二组件发送与当前状态相关的信息。在本申请实施例中是以第一子流程的当前状态为第一状态进行示例。在这种假设下,第一组件可向第二组件发送第一信息。第一信息包括第一编码。由于第一编码相当于携带了第一子流程的状态,因此,第一信息相当于也就指示了第一子流程的进度。
可选的,第一信息还可包括第一时刻和第一方向。第一时刻为第一子流程的状态变更为第一状态的时刻。第一方向为与预期执行顺序同向,或与预期执行顺序反向。
在一种可能的实施方式中,如果满足第二条件,表示第二组件并未成功接收第一信息,因此第一组件向第二组件重发第一信息,直到第二组件成功接收第一信息。
第二条件包括第一组件未接收来自所述第二组件的第一响应消息。该第一响应消息指示第二组件已成功接收第一信息。第一响应消息也可称为响应消息。
例如,第一组件设置响应预计时长,如果超过响应预计时长没有接收到第二组件返回的第一响应信息,则认为第二组件没有接收到第一信息,第二组件没有接收到第一信息的原因可能有因为网络异常或接口占用等。
或者,第二条件包括第二组件未正确解析第一信息。
下面对第二组件重发第一信息的方式进行介绍。
示例性的,第一组件将第一信息加入待同步队列,按照待同步队列的顺序,将第一信息发送给第二组件。
为不影响第一组件内的第一子流程执行,第一组件为处理待同步队列另起线程,设置间隔时间,每经过一个间隔时间,就发送待同步队列中的第一个消息,然后清除该消息,直到清空消息队列。
在另一种可能的情况下,在第二组件接收到第一信息,但第一信息的内容异常时,第二组件向第一组件发送第二响应信息,第二响应消息指示第一信息数据异常。这种情况下,第一组件可放弃向第二组件发送第一信息,或者,第一组件可对第一信息进行校验,直到确认第一信息无误之后,再发送向第二组件重新发送第一信息。
可选的,第二组件还可记录接收第一信息的时刻,即第三时刻。
S205,第二组件根据第一信息,同步第一子流程的状态。
当第二组件接收到第一信息之后,第二组件可确定在接收第一信息之前,是否接收到第一业务的状态信息。
如果第二组件在接收第一信息之前,没接收到第一业务的状态信息,则可以直接记录或同步第一信息。
如果第二组件在接收第一信息之前,接收到来自第四组件的第二信息,那么第二组件需要对比第一信息和第二信息,再同步第一子流程的状态,保证同步第一子流程的状态的准确性。
第二信息包括第二编码、第二时刻和第二方向。第二编码为编码集合中与第二状态对应的编码。第二时刻为第二子流程变更为第二状态的时刻,并且属于第一业务的第二子流程的状态发生变更的最后时刻。
可选的,第二组件可存储第一业务的状态表,状态表包括编码、方向和时刻之间的对应关系。
在接收第一信息之前,第二组件中基于第一业务的状态表,确定存储的第一业务的当前时刻的状态(如第二状态)。
图4为本申请实施例提供的一种第一业务的流程的状态示意图。图4中是以子流程1为第二子流程的一种示例,状态3为第二状态的一种示例。在图4中以第一业务流程的当前进度为第二状态为例。
表3中记录表的以第一业务的当前进度为第二状态时为例,记录n中的第二编码、第二方向和第二时刻,分别对应第二状态对应的第二编码、第二信息中的第二方向和第二时刻。
一种第一业务的状态表如下表3所示。
表3
第二组件在确定第一信息与所述第二信息的关系满足第一条件的情况下,对第一子流程的状态进行同步。
第一条件包括第一方向为与预期执行顺序同向、第一编码大于第二编码,以及第一时刻晚于第二时刻。这种情况表示与按照预期顺序相同的方向执行业务执行第一业务。因此第一组件可按照第一信息,同步第一业务的流程。
图5示意了一种同步后的业务的流程的状态示意图。在图5中是以子流程1为第二子流程的一种示例,子流程2为第一子流程的一种示例,以及状态4为第一状态的一种示例进行介绍。
如图5所示,第二组件确定第一业务流程沿预期执行顺序,进入子流程2,子流程2的当前状态为状态4。这种情况下,第二组件可根据第一信息,将第一业务的状态更新状态4,相当于对第一业务执行了正常操作。
或者,第一条件包括第一方向为与预期执行顺序反向、第一编码小于第二编码,以及第一时刻晚于第二时刻。这种情况表示与按照预期顺序相反的方向执行业务执行第一业务。因此第一组件可按照第一信息,同步第一业务的流程。
图6示意了一种同步后的业务的流程的状态示意图。在图6中是以子流程1为第二子流程的一种示例,子流程2为第一子流程的一种示例,以及状态3为第一状态的一种示例进行介绍。这种情况下,第二组件可根据第一信息,将第一业务的状态回撤至状态3,相当于对第一业务执行了回滚操作。
第二组件更新后的第一业务的状态之后,可以对应更新第一业务的状态表。
第二组件在表3的基础上,更新第一业务的状态表。表4是第二组件接收第一信息,且第一业务的当前进度为第一状态时的记录表,记录n+1中的第一编码、第一方向和第一时刻,分别对应第一状态对应的第一编码、第一信息中的第一方向和第一时刻。
一种更新第一业务的状态表可参照下表4所示。
表4
第二组件对第一子流程的状态同步完成后,向第一组件发送第三响应消息,该第三响应消息指示第一组件完成第一信息的同步。
在第一信息与第二信息的关系不满足第一条件的情况下,且第一时刻早于第二时刻的情况下,第二组件可按照第一时刻在第一业务的状态表的时刻先后,找到对应的位置,生成记录m,m 第二组件在表3的基础上,更新第一业务的状态表。一种更新第一业务的状态表可参照下表5所示。表5是第二组件接收第一信息,且第一业务的当前进度为第二状态时的记录表,记录m中的第一编码、第一方向和第一时刻,分别对应第一状态对应的第一编码、第一信息中的第一方向和第一时刻。 表5 第二组件同步第一业务的流程之后,用户可以通过第二组件查询当前第一业务的状态,也就能获得第一业务的进度。 基于同一发明构思,本申请实施例提供一种业务流程处理装置。请参照图7,本申请实施例提供了一种业务流程处理装置。该业务流程处理装置例如为前文描述的业务流程处理系统中的软件模块或硬件模块,或为前文描述的业务流程处理系统。 如图7所示,该业务流程处理装置700包括确定模块701、发送模块702和同步模块703。该业务流程处理装置700可应用于业务流程处理系统中,该业务流程处理系统包括第一组件和第二组件。 示例性的,确定模块701,用于执行第一子流程,第一子流程对应至少一个状态,第一子流程为执行第一业务的流程所包括的多个子流程中的一个子流程,状态指示子流程的进度;发送模块702,如果第一子流程的状态变更为第一子流程对应的至少一个状态中的第一状态,用于向第二组件发送第一子流程的第一信息,第一信息包括第一编码,第一编码为第一状态对应的编码;同步模块703,用于根据第一信息,同步第一子流程的状态。 可选的,业务流程处理系统还包括第三组件,确定模块701还用于:在第一组件执行第一子流程之前,确定多个子流程中每个子流程对应的状态;按照多个子流程的预期执行顺序,遍历多个子流程中每个子流程对应的状态,并对遍历的状态进行编码,获得编码集合,其中,编码集合中先获得的编码比后获得的编码的取值小,编码集合包括第一编码。 可选的,业务流程处理系统包括第四组件,第一信息还包括第一时刻和第一方向,第一时刻为第一子流程的状态变更为第一状态的时刻,第一方向为与预期执行顺序同向,或与预期执行顺序反向;同步模块703还用于:在根据第一信息,同步第一子流程的状态之前,接收来自第四组件的第二信息,第二信息包括第二编码和第二时刻,其中,第二编码为第二状态的编码,第二编码属于编码集合,第二时刻为第二子流程变更为第二状态的时刻;同步模块703还用于:在同步第一子流程的状态之前,确定第一信息满足第一条件,其中第一条件包括第一方向为与预期执行顺序同向、第一编码大于第二编码,以及第一时刻晚于第二时刻,或第一方向为与预期执行顺序反向、第一编码小于第二编码,以及第一时刻晚于第二时刻。 可选的,确定模块701还用于:在按照多个子流程的预期执行顺序,遍历多个子流程中每个子流程对应的状态之前,根据第一业务的业务类型,确定与第一业务对应的编码集合的第一取值范围和/或方式,其中,对第一业务中每个子流程对应的状态进行编码是按照方式进行的编码,编码集合中的任一编码的取值位于第一取值范围内。 可选的,发送模块702具体用于:第一组件向第二组件发送第一信息;若第一组件未接收来自第二组件的响应消息,或第二组件未正确解析第一信息,则第一组件向第二组件重发所述第一信息。 可选的,发送模块702具体用于:第一组件将第一信息加入待同步队列;按照待同步队列的顺序,第一组件将第一信息发送给第二组件。 可选的,确定模块701还用于:第二组件还可执行多个子流程中的第三子流程,第三子流程与第一子流程不同;同步第三子流程的状态。 关于确定模块701、发送模块702和同步模块703执行的步骤可参照前文图2论述的内容,此处不再赘述。 基于同一发明构思,本申请实施例提供一种业务流程处理设备。请参照图8,本申请实施例提供一种业务流程处理设备,该业务流程处理设备800包括:至少一个处理器801,以及与至少一个处理器801通信连接的存储器802;其中,存储器802存储有可被至少一个处理器801执行的指令,至少一个处理器801通过执行存储器802存储的指令实现如图2所示的业务流程处理方法中任一项所述的方法。 其中,处理器801可以是中央处理单元(central processing unit,CPU),还可以是其它通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(Application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其它可编程逻辑器件、晶体管逻辑器件,硬件部件或者其任意组合。 存储器802可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。 基于同一发明构思,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在计算机上运行时,使得计算机执行如图2所示的业务流程处理方法中任一项所述的方法。 基于同一发明构思,一种计算机程序产品,包含有计算机指令,当其在计算机上运行时,使得上述图2所示的业务流程处理方法中任一项所述的方法。 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。 本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。 显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
- 业务流程数据的处理方法、装置、设备及可读存储介质
- 一种数据处理方法、装置、网络侧设备及终端设备
- 一种声音采集设备及其信号处理方法、装置、设备
- 一种信息处理方法及装置、一种计算设备及存储介质
- 一种数据处理方法及装置、一种计算设备及存储介质
- 一种业务流程处理方法、装置及设备
- 一种业务流程异常处理方法、装置、存储介质及电子设备