CN113590235A - 业务流程的执行方法、装置、电子设备及存储介质 - Google Patents
业务流程的执行方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113590235A CN113590235A CN202110852770.9A CN202110852770A CN113590235A CN 113590235 A CN113590235 A CN 113590235A CN 202110852770 A CN202110852770 A CN 202110852770A CN 113590235 A CN113590235 A CN 113590235A
- Authority
- CN
- China
- Prior art keywords
- state
- node
- state transition
- sub
- node type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 135
- 230000008569 process Effects 0.000 title claims abstract description 87
- 230000007704 transition Effects 0.000 claims abstract description 152
- 238000004891 communication Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000012790 confirmation Methods 0.000 description 61
- 238000010586 diagram Methods 0.000 description 14
- 238000005406 washing Methods 0.000 description 10
- 230000009471 action Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4498—Finite state machines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例涉及一种业务流程的执行方法、装置、电子设备及存储介质,通过获取业务流程信息,并根据所述业务流程信息配置有限状态机;响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果;提高了业务流程执行的流畅性。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种业务流程的执行方法、装置、电子设备及存储介质。
背景技术
随着业务流程的复杂化,会有多种数据状态、处理动作等。现有技术中,为了提高对业务运维过程的可读性、维护性,并提高扩展性,有限状态机被认为是一种很好的解决方案。
但是目前的有限状态机的当前状态节点只能选择其中一条路径向前执行,后续再流转回该状态节点时,该状态节点仍会呈现,进而导致该状态节点的信息被重复确认,业务流程的执行过程不流畅。
发明内容
本发明提供了一种业务流程的执行方法、装置、电子设备及存储介质,以解决现有技术中有限状态机的某些状态节点信息被重复确认,业务流程的执行过程不流畅的技术问题。
第一方面,本发明提供了一种业务流程的执行方法,包括:获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
作为可选的实施例,所述循环执行如下步骤之前,还包括:确定缓存结构中是否存在顺序节点记录,其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移;若存在,则执行所述循环执行如下步骤;若不存在,则构建所述顺序节点记录,并执行所述循环执行如下步骤。
作为可选的实施例,所述依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移,包括:根据所述缓存结构中的顺序节点记录中,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;更新所述缓存结构中的顺序节点记录中的子状态分支路径的状态转移信息。
作为可选的实施例,所述响应于当前状态节点为所述顺序节点类型之前,还包括:若响应于所述当前状态节点为所述开始节点类型,则输出当前状态节点信息,并自动转移至下一状态节点。
作为可选的实施例,所述方法还包括:若响应于所述当前状态节点为结束节点类型,则进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点。
作为可选的实施例,所述方法还包括:若响应于所述当前状态节点不是所述开始节点类型,不是所述结束节点类型,且不是所述顺序节点类型,则输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点。
作为可选的实施例,所述驱动条件通过插件输入。
第二方面,本发明提供一种业务流程的执行装置,包括:配置模块,用于获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;执行模块,用于响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;输出模块,用于根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
第三方面,本发明提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面任一项所述的业务流程的执行方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的业务流程的执行方法的步骤。
本发明实施例提供的业务流程的执行方法、装置、电子设备及存储介质,通过获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果;即本发明的实施例,通过配置有限状态机的状态节点为顺序节点类型,通过循环对顺序节点下的未进行过状态转移的子状态分支路径中确认目标路径并进行状态转移,可以避免对顺序节点信息的重复确认,提高了业务流程执行的流畅性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术提供的一种有限状态机的示意图;
图2为现有技术提供的一种商品订单确认的状态流转图;
图3为现有技术提供的另一种商品订单确认的状态流转图;
图4为本发明实施例提供的一种业务流程的执行方法的流程示意图;
图5为本发明实施例提供的一种有限状态机的示意图;
图6为本发明实施例提供的一种商品订单确认业务的有限状态机的状态流转示意图;
图7为本发明实施例提供的另一种业务流程的执行方法的流程示意图;
图8为本发明实施例提供的又一种业务流程的执行方法的流程示意图;
图9为本发明实施例提供的一种业务流程的执行方法的流程示意图;
图10为本发明实施例提供的一种业务流程的执行装置的结构示意图;
图11为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明所涉及的名词进行解释:
有限状态机:是一个状态节点在一定驱动条件的驱动下转移到下一个状态节点,状态转移依赖于驱动条件分支。图1为现有技术提供的一种有限状态机的示意图,如图1所示,有限状态机的状态节点包括开始状态、中间状态以及结束状态三种类型,如开始状态节点包括N1,中间状态节点包括N2、N3、N4、N4_2、N5、N5_2、N6、N6_2、N7、N7_2、N8、N8_2以及N9,结束状态节点包括N4_1、N5_1、N6_1、N7_1、N8_1;每个状态节点在一定的驱动条件下转移到下一状态节点,如图1中的直实线Px代表驱动条件,其中x=1,2,……16,虚直线代表状态转移方式,即某状态节点最终只能沿一条路径向前流转。
随着业务流程的复杂化,会有多种数据状态、处理动作等。现有技术中,为了降低代码的可读性、维护性,并提高扩展性,有限状态机被认为是一种很好的解决方案,但是目前采用的如图1所示的有限状态机,当前状态节点只能选择其中一条路径向前执行,后续再流转回该状态节点时,该状态节点仍回呈现,进而导致该状态节点的信息被重复确认,业务流程的执行过程不流畅。
以商场的订单确认的场景为例进行说明。图2为现有技术提供的一种商品订单确认的状态流转图,如图2所示,当商家仅有一种产品,例如冰箱时,其状态流转过程包括:首先该商品订单确认流程开始启动,可通过交流平台和用户开启会话,输出开场白,例如“这里是某某某店”;然后从开始状态节点自动流转到姓名确认的状态节点,即询问用户“您是谁谁谁么”,若用户回答“否”,则转移到结束状态节点,结束会话;若用户回答“是”,则转移到商品确认节点,即询问用户“买了冰箱么”,若用户回答“否”,则可以转移到其余确认节点,例如确认是不是家人买的;若用户回答“是”,则转移到地址确认的状态节点,即向用户确认“地址是哪哪哪么”;若用户回答“是”,则可以继续就冰箱的产品细节等进行进一步的询问;若用户回答“否”,则状态节点转移到其他节点。
图3为现有技术提供的另一种商品订单确认的状态流转图。随着商家扩大经营范围,除了冰箱外,还新增了产品洗衣机,此时状态流转过程可参考图3所示,如图3所示,在进行姓名确认后,会拉取该账户下对应的订单品类信息,在拉取过程中,需要对品类进行排列组合,比如冰箱、洗衣机2种品类的情况下,需要两者皆买、两者皆不买、只买冰箱、只买洗衣机4种状态。此外,在商品确认通过后,都需要进行地址确认。由此可见,随着品类的增多,会带来状态的繁多,维护的困难,且条件路径的命中率低。
更甚者,若该用户下对应有多个订单品类信息,则商家通过图3所示的状态流程图结束一个订单确认后,还需要再拉起另一个订单品类信息再次按照有限状态机走一遍订单确认流程,也就是说,商家会再次向用户进行姓名确认和地址确认等,造成信息的重复确认,用户体验不佳,业务流程不顺畅。
针对上述技术问题,本发明的技术构思在于,通过对有限状态机的某些状态节点,例如姓名确认状态节点配置为顺序节点类型,当当前状态节点为顺序节点时,通过循环对顺序节点下的未进行过状态转移的子状态分支路径中确认目标路径进行状态转移,可以避免对顺序节点信息的重复确认,提高了业务流程执行的流畅性。
图4为本发明实施例提供的一种业务流程的执行方法的流程示意图,如图4所示,该业务流程的执行方法包括:
步骤S101、获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型。
具体来说,业务流程信息包括各流程节点的逻辑关系,以及各流程节点所允许的用户输入操作和/或所述流程节点可调用的业务处理操作;然后根据业务流程信息配置有限状态机,其中,有限状态机的状态节点对应各流程节点,状态节点进行转移的驱动条件根据各流程节点所允许的用户输入操作和/或所述流程节点可调用的业务处理操作生成;同时,本实施例中,所配置的有限状态机的各状态节点包括执行类型和状态类型,其中,执行类型包括顺序节点类型等,状态类型包括开始节点、结束节点类型等,本步骤中为各状态节点分别配置对应的顺序节点、开始节点以及结束节点等类型。
图5为本发明实施例提供的一种有限状态机的示意图;如图5所示,有限状态机的状态节点包括执行类型和状态类型,其中执行类型包括顺序节点和普通节点(非开始、非结束、非顺序),如顺序节点包括N2、N4_2,普通节点包括N3、N4、N5、N5_2、N6、N6_2、N7、N7_2、N8、N8_2以及N9;状态类型包括开始节点和结束节点,如开始节点包括N1,结束节点包括N4_1、N5_1、N6_1、N7_1、N8_1;每个状态节点在一定的驱动条件下转移到下一状态节点,如图1中的直实线Px代表驱动条件,其中x=1,2,……16,虚直线代表状态转移方式,即某状态节点最终只能沿一条路径向前流转;虚曲线代表顺序节点流转方式,即该状态能够在某一路径下的状态流转到底,且是非结束节点时,能够继续流转该状态的其余路径;图5中的虚线方框代表了顺序节点下的某一路径下的流转范围。也就是说,本步骤中,将业务流程配置成与图5类似的有限状态机。
图6为本发明实施例提供的一种商品订单确认业务的有限状态机的状态流转示意图,如图6所示,该有限状态机包括开始节点(这里是某某某店)、姓名确认节点、会话结束节点、冰箱确认节点、洗衣机确认节点、燃气灶确认节点以及地址确认节点,其中,配置姓名确认节点为顺序执行节点,冰箱确认节点、洗衣机确认节点、燃气灶确认节点以及地址确认节点为顺序节点下的、与输入的驱动条件(用户姓名确认为是)相对应的子状态分支路径的第一个节点。在确认姓名后,拉取订单品类信息,若订单品类包括冰箱、洗衣机以及燃气灶,则该顺序执行节点下包括冰箱商品确认、洗衣机商品确认、燃气灶商品确认以及地址确认四条子状态分支路径。
步骤S102、响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移。
具体来说,业务流程启动后,判断当前状态转移节点是否为顺序节点,若为顺序节点,则会从该顺序节点下所有未进行过状态转移的子状态分支路径中确定一条目标路径,进行状态转移,若完成该子状态分支路径的非结束驱动后,会再次从未进行过状态转移的子状态路径中再确定一条目标路径,进行状态转移;依次类推,直至循环完毕该顺序节点下的所有未进行状态转移的路径,或者说状态转移到顺序节点下的某子状态分支路径下的结束节点。
仍以图6为例,若当前状态节点为姓名确认节点,姓名确认节点在步骤S101中已被配置为顺序节点类型。在姓名确认后,会驱动分支通过组件或其它配置来获取该用户的订单信息,该订单中包括冰箱、燃气灶;首先会进行冰箱的商品确认,冰箱的商品确认后,会进行洗衣机商品确认,洗衣机商品确认后,会进行地址确认,地址确认对应的分支路径通常包括结束节点,在进行地址确认完毕后,会移动到结束节点。
步骤S103、根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
具体来说,在执行有限状态机的过程中,状态节点会输出对应的信息,将对应的信息作为输出结果。以图6为例,首先开始节点输出开头语:这是A店;然后进行姓名确认,若是,输出姓名确认结果,例如姓名:张三;然后输出冰箱、洗衣机的商品确认和地址确认作为业务流程的执行结果。
其对应的商品订单确认对话流程如下:
商家:你好,这里是某某某店。(对应开始节点)
客户:你好
商家:请问您是谁谁谁么?(对应姓名确认节点)
客户:是的
(状态驱动分支通过组件或其它配置来获取该客户的订单信息,该订单中包括冰箱、燃气灶)
商家:您是买了冰箱么?(对应商品确认节点)
客户:是的
(这里可以继续进行冰箱其他具体细节的确认,直到冰箱的细节确认结束,且对话仍未结束)
(对话仍未结束,默认回到姓名确认,但是由于姓名已确认过,因此不再进行二次确认。默认进行内部驱动,看是否满足剩余的未驱动过的、与输入的驱动条件相对应的其他子状态分支路径,这里满足了燃气灶)
客服:您是买了燃气灶么?
客户:是的
(这里可以继续进行燃气灶其他具体细节的确认,直到燃气灶的细节确认结束,且对话仍未结束)
对话仍未结束,默认回到姓名确认,但是由于姓名已确认过,因此不再进行二次确认。默认进行内部驱动,看是否满足剩余的未驱动过的、与输入的驱动条件相对应的其他子状态分支路径,这里只剩下最后一条通往地址确认的驱动条件)
客服:您的地址是某某么?
客户:是的
(这里可以继续进行其他订单派送相关信息的确认,直至本次对话结束)
通过以上例子可见,状态节点的维护得到简化后,对统一场景的对话效果并未产生影响,此外,对话流程衔接处理更加恰当,并避免了信息的重复确认。
作为可选的实施例,所述驱动条件通过插件输入,输入的驱动条件,或者状态节点调用的业务处理操作可以通过插件输入。
本发明的实施例提供的业务流程的执行方法,通过获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果;即本发明的实施例,通过配置有限状态机的状态节点为顺序节点类型,通过循环对顺序节点下的未进行过状态转移的子状态分支路径中确认目标路径并进行状态转移,可以避免对顺序节点信息的重复确认,提高了业务流程执行的流畅性。
在上述实施例的基础上,图7为本发明实施例提供的另一种业务流程的执行方法的流程示意图,如图7所示,该业务流程的执行方法包括:
步骤S201、获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型。
步骤S202、响应于当前状态节点为所述顺序节点类型,确定缓存结构中是否存在对应的顺序节点记录。
其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移。
若不存在,执行步骤S203-步骤S205,结束;若存在,执行步骤S204、步骤S205,结束。
步骤S203、构建所述顺序节点记录。
步骤S204、循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移。
步骤S205、根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
本实施例中的步骤S201、步骤S204以及步骤S205的实现方式分别与上述实施例中的步骤S101、步骤S102中的循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移以及步骤S103的实现方式类似,此处不再赘述。
与上述实施例的区别在于,本实施例进一步限定了如何获取顺序节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径的具体实现方式,在本实施例中,响应于当前状态节点为所述顺序节点类型,确定缓存结构中是否存在对应的顺序节点记录,其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移;若存在,则循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;若不存在,则构建所述顺序节点记录,并循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移。
具体来说,若首次到达顺序节点,就会新建顺序节点记录,该顺序节点记录记载有该节点下、与输入的驱动条件相对应的所有未进行状态转移的子状态分支路径,然后根据顺序节点记录,确定该顺序节点下的、与输入的驱动条件对应的子状态分支路径的状态转移信息,从未进行过状态转移的子状态分支路径选中一条目标路径进行状态转移;若非首次到达该顺序节点,则可以直接从缓存结构中调取对应的顺序节点记录,直接根据顺序节点记录中记载的该顺序节点下的、与输入的驱动条件对应的子状态分支路径的状态转移信息,从未进行过状态转移的子状态分支路径选中一条目标路径进行状态转移。
可选的,所述步骤S204中从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移之后,还包括:更新所述缓存结构中的顺序节点记录中的子状态分支路径的状态转移信息。
具体来说,在根据顺序节点记录确定一条未进行过状态转移的子状态分支路径为目标路径后,则更新顺序节点记录中该子状态分支路径的状态信息为已进行过状态转移,以便于下次循环时,可以及时根据顺序节点记录,从未进行过状态转移的子状态分支路径中确定下一条目标路径。
作为可选的实施例,顺序节点记录可以存储在缓存结构(redis)中以sessionId为标识(key)的session处。
本发明的实施例提供的业务流程的执行方法,通过响应于当前状态节点为所述顺序节点类型,确定缓存结构中是否存在对应的顺序节点记录,其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移;若存在,则循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;若不存在,则构建所述顺序节点记录,并循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;即本发明的实施例通过配置有限状态机的状态节点为顺序节点类型,通过循环从顺序节点记录中获取未进行过状态转移的子状态分支路径,并从中确认目标路径并进行状态转移,可以避免对顺序节点信息的重复确认,提高了业务流程执行的流畅性。
在上述实施例的基础上,图8为本发明实施例提供的又一种业务流程的执行方法的流程示意图,如图8所示,该业务流程的执行方法包括:
步骤S401、获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型。
步骤S402、响应于所述当前状态节点是否为所述开始节点类型。
若是,执行步骤S403;若否,执行步骤S404。
步骤S403、输出当前状态节点信息,并自动转移至下一状态节点。
步骤S404、响应于所述当前状态节点是否为结束节点类型。
若是,则执行步骤S405;若否,则执行步骤S406。
步骤S405、进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点。
步骤S406、响应于所述当前状态节点是否为所述顺序节点类型。
若是,则循环执行步骤S407,直至所述有限状态机的状态转移到所述结束节点类型的状态节点;若否,执行步骤S408。
步骤S407、依次遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移。
步骤S408、输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点。
步骤S409、根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
本实施例中的步骤S401、S407以及步骤S409的实现方式分别与上述实施例中的步骤S101-步骤103的实现方式类似,此处不再赘述。
与上述实施例的区别在于,通过若响应于所述当前状态节点为所述开始节点类型,则输出当前状态节点信息,并自动转移至下一状态节点;若响应于所述当前状态节点为结束节点类型,则进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点;;若响应于所述当前状态节点不是所述开始节点类型,不是所述结束节点类型,且不是所述顺序节点类型,则输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点。
以图6所示的商品订单确认流程为例,订单确认的业务流程启动后,即会话开启,此时相当于当前状态节点为空,会自动转移至开始节点,首先判断有限状态机的当前状态节点是否为开始节点类型,若是,则输出开始节点信息,例如:这里是某某店,并默认自动转移至下一状态节点,如姓名确认节点;若当前状态节点不是开始节点类型,则继续判断是否为结束节点类型,若是,则进行挂断处理或者自动转移到开始节点,如图6所示,若当前状态节点为会话结束节点,则直接结束会话,或者自动转移至开始节点;若当前状态节点也不为结束节点类型,则可以继续判断当前状态节点是否为顺序节点类型,若是,顺序节点类型,如图6中的姓名确认节点,则可以根据输入的驱动条件(姓名确认为是)确认该顺序节点下、未进行过状态转移的子状态分支路径,并从中选取一条目标路径进行状态转移,若当前状态节点也不是顺序节点类型,则可以确定当前状态节点为普通节点类型,可以根据输入的驱动条件直接转移到对应的下一状态节点,并输出当前状态节点的信息,例如商品确认节点,输入的驱动条件为用户确认购买,可以输出用户确认购买商品的信息,并可以转移至对商品细节进一步确认的状态节点。
另外,需要说明的是,有限状态机会包括一个开始节点、若干个中间节点和若干个结束节点,一般开始节点后先转移至中间节点,再转移至结束节点。因此,在本实施例中,在确认当前状态节点为开始节点类型后,会默认的自动转移至下一状态节点,可以直接判断下一状态节点是否为顺序节点类型即可。可选的,在缓存结构(redis)中存储普通节点对应的子状态分支路径,在确认当前状态节点为普通节点后,可以根据输入的驱动条件,从缓存中存储的普通节点对应的子状态分支路径中确定目标路径进行转移。
作为可选的实施例,若当前状态节点为结束节点类型,则清空缓存结构中所有顺序节点对应的顺序节点记录。具体来说,在该轮次会话结束后,会清空所有顺序节点记录,以便于下一次业务流程开始时,重新构建并存储新的顺序节点记录。
本实施例提供的业务流程的执行方法,通过若响应于所述当前状态节点为所述开始节点类型,则输出当前状态节点信息,并自动转移至下一状态节点;若响应于所述当前状态节点为结束节点类型,则进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点;;若响应于所述当前状态节点不是所述开始节点类型,不是所述结束节点类型,且不是所述顺序节点类型,则输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点;即本发明实施例通过配置有限状态机的状态节点为顺序节点类型,通过循环从未进行过状态转移的子状态分支路径中确认目标路径并进行状态转移,可以避免对顺序节点信息的重复确认,提高了业务流程执行的流畅性。
为了更进一步了解本发明的实施例,图9为本发明实施例提供的一种业务流程的执行方法的流程示意图,如图9所示,业务流程启动后,判断当前状态节点是否为开始节点,若否,则继续判断当前状态节点是否为结束节点,若是结束节点,则进行挂断或者重回开始节点(又称之为跟节点),并清空缓存结构中的所有顺序节点记录;若不是结束节点,则判断当前状态节点是否为顺序节点,若是,则从缓存结构中记载的顺序节点记录中,从未进行过状态转移的子状态分支路径确认一条目标路径,并找到该目标路径的有效节点,即从当前状态节点转移的下一状态节点(通常为目标路径的第一个节点),并更新顺序节点记录中的选中的子状态分支路径的状态转移信息,即该选中的子状态分支路径的状态转移信息由未进行过状态转移变更为进行过状态转移,并判断有效节点是否为顺序节点,若不是,则为普通节点记录,输出该节点信息;若有效节点是顺序节点,则可以继续判断是否存在对应的顺序节点记录,若不存在,说明该顺序节点为首次到达,则可以输出当前节点的信息,并新建顺序节点记录;若存在顺序节点记录,则可以确认是非首次到达,则可以继续根据缓存结构中的顺序节点记录中的从未进行过状态转移的子状态分支路径中确认下一条目标路径进行转移。
若在业务流程启动后,判断当前状态节点为开始节点,则输出开始节点信息(例如这里是某某某店的类似的欢迎语),然后自动转移至下一状态节点,然后判断下一状态节点是否为顺序节点,若是,则构建该顺序节点记录,若否,可以根据输入的驱动条件转移至下一状态节点,此处不再赘述。
综上所述,本实施例针对顺序节点类型,若是顺序节点首次到达时,会显示呈现该状态;完成任意子状态的非结束驱动后,默认回到该顺序节点;若同一会话内,非首次到达时,并不会显示呈现该顺序节点,自动做内部驱动,继续循环该顺序节点下的、其他满足驱动体条件的子状态分支路径。
图10为本发明实施例提供的一种业务流程的执行装置的结构示意图,如图10所示,该业务流程的执行装置包括:
配置模块10,用于获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;执行模块20,用于响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;输出模块30,用于根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
作为本发明的可选实施例,所述执行模块20,还用于在所述循环执行如下步骤之前,确定缓存结构中是否存在对应的顺序节点记录,其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移;若存在,则执行模块20用于循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;若不存在,则执行模块20用于构建所述顺序节点记录,并循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移。
作为本发明的可选实施例,所述执行模块20,还用于从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移之后,更新所述缓存结构中的顺序节点记录中的子状态分支路径的状态转移信息。
作为本发明的可选实施例,所述执行模块20还用于,响应于当前状态节点为所述顺序节点类型之前,若响应于所述当前状态节点为所述开始节点类型,则输出当前状态节点信息,并自动转移至下一状态节点。
作为本发明的可选实施例,所述执行模块20还用于:若响应于所述当前状态节点为结束节点类型,则进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点。
作为本发明的可选实施例,所述执行模块20还用于:若响应于所述当前状态节点不是所述开始节点类型,不是所述结束节点类型,且不是所述顺序节点类型,则输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点。
作为本发明的可选实施例,所述驱动条件通过插件输入。
本发明实施例提供的业务流程的执行装置,其实现原理和技术效果与上述实施例类似,此处不再赘述。
如图11所示,本发明实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信,
存储器113,用于存放计算机程序;
在本发明一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的业务流程的执行方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述任意一个方法实施例提供的业务流程的执行方法的步骤。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种业务流程的执行方法,其特征在于,包括:
获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;
响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;
根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述循环执行如下步骤之前,还包括:
确定缓存结构中是否存在对应的顺序节点记录,其中,所述顺序节点记录记载有当前状态节点下、与输入的驱动条件相对应的子状态分支路径的状态转移信息,所述状态转移信息包括已进行过状态转移和未进行过状态转移;
若存在,则循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移;
若不存在,则构建所述顺序节点记录,并循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:根据所述缓存结构中的顺序节点记录,确定未进行过状态转移的子状态路径,并从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移。
3.根据权利要求2所述的方法,其特征在于,所述从所述未进行过状态转移的子状态分支路径确定目标路径进行状态转移之后,还包括:
更新所述缓存结构中的顺序节点记录中的子状态分支路径的状态转移信息。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述响应于当前状态节点为所述顺序节点类型之前,还包括:
若响应于所述当前状态节点为所述开始节点类型,则输出当前状态节点信息,并自动转移至下一状态节点。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若响应于所述当前状态节点为结束节点类型,则进行挂断处理或者自动转移至与所述开始节点类型对应的状态节点。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若响应于所述当前状态节点不是所述开始节点类型,不是所述结束节点类型,且不是所述顺序节点类型,则输出当前状态节点信息,并根据输入的驱动条件转移至下一状态节点。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述驱动条件通过插件输入。
8.一种业务流程的执行装置,其特征在于,包括:
配置模块,用于获取业务流程信息,并根据所述业务流程信息配置有限状态机,其中,所述有限状态机的状态节点包括顺序节点类型、开始节点类型以及结束节点类型;
执行模块,用于响应于当前状态节点为所述顺序节点类型,循环执行如下步骤,直至所述有限状态机的状态转移到与所述结束节点类型对应的状态节点:遍历所述当前状态节点下、与输入的驱动条件相对应且并未进行过状态转移过的子状态分支路径,并从所述未进行过状态转移过的子状态分支路径中确定目标路径进行状态转移;
输出模块,用于根据所述有限状态机的状态转移过程输出对应的业务流程的执行结果。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-7任一项所述的业务流程的执行方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的业务流程的执行方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110852770.9A CN113590235B (zh) | 2021-07-27 | 2021-07-27 | 业务流程的执行方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110852770.9A CN113590235B (zh) | 2021-07-27 | 2021-07-27 | 业务流程的执行方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113590235A true CN113590235A (zh) | 2021-11-02 |
CN113590235B CN113590235B (zh) | 2024-07-16 |
Family
ID=78250713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110852770.9A Active CN113590235B (zh) | 2021-07-27 | 2021-07-27 | 业务流程的执行方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113590235B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114240033A (zh) * | 2021-11-08 | 2022-03-25 | 普强时代(珠海横琴)信息技术有限公司 | 流程分析方法及装置 |
CN115587564A (zh) * | 2022-10-17 | 2023-01-10 | 北京云枢创新软件技术有限公司 | 一种提取有限状态机中状态变化的方法及系统 |
CN115829521A (zh) * | 2023-01-29 | 2023-03-21 | 国家工业信息安全发展研究中心 | 业务流程管理方法、装置、终端设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063333A (zh) * | 2011-01-14 | 2011-05-18 | 南京莱斯信息技术股份有限公司 | 一种递归结构工作流模型及其调度方法 |
CN108090177A (zh) * | 2017-12-15 | 2018-05-29 | 上海智臻智能网络科技股份有限公司 | 多轮问答系统的生成方法、设备、介质及多轮问答系统 |
CN108763568A (zh) * | 2018-06-05 | 2018-11-06 | 北京玄科技有限公司 | 智能机器人交互流程的管理方法、多轮对话方法及装置 |
CN110147986A (zh) * | 2019-05-21 | 2019-08-20 | 天津卡达克数据有限公司 | 流节点跳转方法、装置、服务器及存储介质 |
CN110377720A (zh) * | 2019-07-26 | 2019-10-25 | 中国工商银行股份有限公司 | 智能多轮交互方法和系统 |
CN111290677A (zh) * | 2018-12-07 | 2020-06-16 | 中电长城(长沙)信息技术有限公司 | 一种自助设备导航方法及其导航系统 |
US20200218989A1 (en) * | 2019-01-08 | 2020-07-09 | International Business Machines Corporation | Conversational system management |
-
2021
- 2021-07-27 CN CN202110852770.9A patent/CN113590235B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063333A (zh) * | 2011-01-14 | 2011-05-18 | 南京莱斯信息技术股份有限公司 | 一种递归结构工作流模型及其调度方法 |
CN108090177A (zh) * | 2017-12-15 | 2018-05-29 | 上海智臻智能网络科技股份有限公司 | 多轮问答系统的生成方法、设备、介质及多轮问答系统 |
CN108763568A (zh) * | 2018-06-05 | 2018-11-06 | 北京玄科技有限公司 | 智能机器人交互流程的管理方法、多轮对话方法及装置 |
CN111290677A (zh) * | 2018-12-07 | 2020-06-16 | 中电长城(长沙)信息技术有限公司 | 一种自助设备导航方法及其导航系统 |
US20200218989A1 (en) * | 2019-01-08 | 2020-07-09 | International Business Machines Corporation | Conversational system management |
CN110147986A (zh) * | 2019-05-21 | 2019-08-20 | 天津卡达克数据有限公司 | 流节点跳转方法、装置、服务器及存储介质 |
CN110377720A (zh) * | 2019-07-26 | 2019-10-25 | 中国工商银行股份有限公司 | 智能多轮交互方法和系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114240033A (zh) * | 2021-11-08 | 2022-03-25 | 普强时代(珠海横琴)信息技术有限公司 | 流程分析方法及装置 |
CN115587564A (zh) * | 2022-10-17 | 2023-01-10 | 北京云枢创新软件技术有限公司 | 一种提取有限状态机中状态变化的方法及系统 |
CN115829521A (zh) * | 2023-01-29 | 2023-03-21 | 国家工业信息安全发展研究中心 | 业务流程管理方法、装置、终端设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113590235B (zh) | 2024-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113590235A (zh) | 业务流程的执行方法、装置、电子设备及存储介质 | |
US20180261223A1 (en) | Dialog management and item fulfillment using voice assistant system | |
CN103404111B (zh) | 用于在异构环境中提供会话的方法与系统 | |
WO2020020248A1 (zh) | 移动端页面构建方法、系统和移动端 | |
US20150142699A1 (en) | Driving an Interactive Decision Service From a Forward-Chaining Rule Engine | |
CN106485495A (zh) | 交易信息订阅方法、装置、服务器以及系统 | |
CN101087307A (zh) | 用于面向服务的协作的方法和系统 | |
KR102307009B1 (ko) | 복수의 로봇들을 제어하기 위한 방법, 컴퓨터 프로그램 및 시스템, 및 컴퓨터 판독가능 저장 매체 | |
CN112733511A (zh) | 表单处理方法、系统、电子设备及计算机可读存储介质 | |
CN108921407A (zh) | 一种任务处理系统和方法 | |
JP2023103229A (ja) | 関連アイテムを識別しウェブページに提示するための統合プラグイン | |
CN116643854A (zh) | 一种服务编排方法、装置、流程控制器及任务处理器 | |
JP6998162B2 (ja) | 抽出装置、抽出方法、及び抽出プログラム | |
WO2016101725A1 (zh) | 一种状态机可拼接性和拼接规则判定方法和装置 | |
US20150331974A1 (en) | Product configuration | |
US20230216934A1 (en) | Method for operating relation server and system using the same | |
US20090299882A1 (en) | Converting assets for reuse during manufacturing | |
CN110516006A (zh) | 平行链区块生成方法、设备和存储介质 | |
Singh et al. | Tango: Declarative semantics for multiagent communication protocols | |
US9996795B2 (en) | Generating a non-deterministic model of a process for a goal | |
US11425218B1 (en) | Component state management for web application development | |
CN108073460A (zh) | 分布式系统中的全局锁抢占方法、装置及计算设备 | |
US11237835B2 (en) | System and method for processing data of any external services through API controlled universal computing elements | |
CN106815064B (zh) | 环状数据处理架构的检测方法和装置 | |
CN116151635B (zh) | 一种基于多维关系图的抗风险企业决策的优化方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |