CN111078371B - 基于Flowable流程引擎的支路任务重建方法及装置 - Google Patents
基于Flowable流程引擎的支路任务重建方法及装置 Download PDFInfo
- Publication number
- CN111078371B CN111078371B CN201911110758.XA CN201911110758A CN111078371B CN 111078371 B CN111078371 B CN 111078371B CN 201911110758 A CN201911110758 A CN 201911110758A CN 111078371 B CN111078371 B CN 111078371B
- Authority
- CN
- China
- Prior art keywords
- task node
- branch
- flow
- task
- execution flow
- 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.)
- Active
Links
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/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
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
本发明公开了一种基于Flowable流程引擎的支路任务重建方法及装置,该方法包括:基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例;将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中;根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。本发明将支路执行流与任务关联,能够实现对任意一个或多个支路进行任务重建的目的。
Description
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种基于Flowable流程引擎的支路任务重建方法及装置。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
随着计算机的快速发展,软件技术的不断提高,越来越多的工作依赖于计算机软件应用***(例如,办公自动化***、审批***、财务***等各种业务***)来实现。企业中存在各种类型的信息***,传统信息***将流程引擎集成在各个业务***中,使得业务***开发复杂,业务变更频繁,由于***间跳转会影响用户体验。
流程引擎是支持配置业务流转过程的一个关键模块,目前,已广泛应用于各种需要支持复杂业务流程的计算机软件***。流程引擎可根据一定的原则和过程来实施这些任务并加以监控,从而达到提高效率、控制过程、提升客户服务、增强有效管理业务流程等目的。
目前,现有技术常用的流程引擎是Flowable,Flowable是采用Java语言编写的一个轻量级业务流程引擎,支持部署BPMN2.0的流程定义,通过流程定义创建流程实例,进而查询和访问流程相关的实例与数据等。通过Flowable搭建各种复杂业务***,能够大大减少开发成本,避免写复杂而难以维护的条件代码。流程支路的任务驳回重建一直是流程引擎的一大难题,现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供一种基于Flowable流程引擎的支路任务重建方法,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该方法包括:基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,流程实例包括:主执行流和多个支路执行流;将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中;根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
本发明实施例还提供一种基于Flowable流程引擎的支路任务重建装置,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该装置包括:流程实例创建模块41,用于基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,流程实例包括:主执行流和多个支路执行流;支路任务记录模块42,用于将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中;重建支路任务确定模块43,用于根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;支路任务重建模块44,用于将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
本发明实施例还提供一种计算机设备,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于Flowable流程引擎的支路任务重建方法。
本发明实施例还提供一种计算机可读存储介质,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该计算机可读存储介质存储有执行上述于Flowable流程引擎的支路任务重建方法的计算机程序。
本发明实施例中,在基于基于Flowable流程引擎,根据预先定义的静态流程数据创建流程实例后,通过MAP变量记录流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,以便基于MAP变量确定待重建的支路执行流实体ID和待重建的任务节点ID,进而将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
通过本发明实施例,将支路执行流与任务关联,直接更改支路执行流本身来实现其关联任务重建,能够通用灵活地应对各种支路情况,任何时候都可根据需求对指定支路上已完成的任务进行重建。另外,本发明实施例仅对指定支路执行流进行操作,不会影响其他支路的状态,尤其对其他支路已完成任务的状态进行了保护。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中提供的一种基于Flowable流程引擎的支路任务重建方法流程图;
图2为本发明实施例中提供的基于Flowable流程引擎创建的一个流程实例示意图;
图3为本发明实施例中提供的基于Flowable流程引擎创建的某一研发交付平台排期工单的流程实例示意图;
图4为本发明实施例中提供的一种基于Flowable流程引擎的支路任务重建装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。
在详细介绍本发明实施例之前,首先对本发明实施例中涉及的一些术语进行如下定义说明
本发明实施例中提供了一种基于Flowable流程引擎的支路任务重建方法,图1为本发明实施例中提供的一种基于Flowable流程引擎的支路任务重建方法流程图,如图1所示,该方法可以包括如下步骤:
S101,基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,流程实例包括:主执行流和多个支路执行流。
需要说明的是,本发明实施例中预先定义的静态流程数据包含但不限于各个任务节点的任务节点ID和任务节点名称;事实上,预先定义的静态流程数据中包含了流程实例中所有节点的位置、节点类型、节点ID、节点属性等很多信息。
由于基于流程引擎创建的每一个流程实例都是基于其静态流程定义来生成的,一个静态流程定义可生成多个同样流程的不同业务工单对应的不同流程实例。因而,本发明实施例中,基于Flowable流程引擎,根据预先定义的静态流程数据来创建一个流程实例。可选地,针对不同的业务工单,可以生成多个流程实例,一个业务工单启动的同时,启动一个流程实例,两者相对应。作为一种可选的实施方式,上述S101在创建流程实例的同时,还可以为每个流程实例创建一个流程实例ID,以实现对不同工单的流程实例进行任务重建处理。
需要说明的是,一个流程实例最外层会对应一个主流程的执行流(即主执行流),每个分支自身再对应有分支执行流(即支路执行流)。流程实例中的任务节点、网关、信号节点被称为一个活动实例。一个分支执行流上可以有至多一个活动实例。每个活动实例都属于某一个分支执行流。
图2为本发明实施例中提供的基于Flowable流程引擎创建的一个流程实例示意图,如图2所示,该流程实例包括:一个开始事件节点、两个并行网关、三个任务节点和一个结束事件节点。
需要说明的是,并行网关可以将执行支路分为多条路径(例如,图2中的第一个并行网关),也可以合并多条入口路径的执行(例如,图2中的第二个并行网关),并行网关的功能取决于其入口与出口顺序流。如果并行网关同时具有多条入口与出口顺序流,可以同时具有支路与合并的行为。在这种情况下,网关首先合并所有入口顺序流,然后***为多条并行执行路径。
S102,将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中。
需要说明的是,上述S102可以具体包括:基于Flowable流程引擎,执行所述流程实例,获取执行结果数据,其中,所述执行结果数据中包含:所述流程实例中主执行流及支路执行流当前到达的任务节点;根据所述执行结果数据,将所述流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于所述流程实例中主执行流对应的MAP变量中。需要注意的是,MAP变量可以用于记录流程实施例每次执行完成后主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称。优选地,为了避免MAP变量中存储大量无关数据,本发明实施例中,MAP变量可以仅用于记录流程实例最新一次执行完成后主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称。
由于Flowable流程引擎提供了自定义命令模式,该模式提供了编写自定义命令的渠道,以便对流程引擎功能进行拓展开发。本发明实施例基于本发明实施例基于Flowable流程引擎提供的自定义命令模式,在流程实例执行的过程中,将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中,能够将支路执行流与任务进行关联,从而实现为流程引擎中任何属性任意数量的支路提供支路任务节点的重建。
如图2所示,在创建流程实例后,信号从开始事件流转经过第一个并行网关,得到并行的三个任务支路(分别对应任务1、任务2和任务3),三个任务支路同时呈现激活状态,由于某个任务节点的任务完成后,该任务节点对应的执行流仅剩余其到第二个并行网关的执行流,现有的Flowable流程引擎只有支路执行流,而没有相应任务,如果要对已完成支路进任务重建,且出现多个任务(例如,任务2和任务3)完成的情况,流程引擎无法辨别重建哪条任务支路。
S103,根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID。
需要说明的是,本发明实施例中的任务节点ID是指静态流程定义中为任务节点预先定义的一个唯一标识。
需要注意的是,由于MAP变量中记录了各个支路执行流的支路执行流实体ID和任务节点名称,用户可以指定任何一个或多个支路进行任务重建。因而,作为一种可选的实施方式,上述S103可以包括如下步骤:输出所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称;接收外部输入的选择指令,其中,所述选择指令用于选择任意一个支路执行流的支路执行流实体ID和任务节点名称,作为待重建的支路执行流实体ID和待重建的任务节点ID。通过该实施方式,能够实现对任意一个支路执行流的重建。
由于某个支路执行流上的任务节点执行完成,MAP变量中记录的该支路执行流对应的任务节点则会指向下一个节点,例如,图2中任务2对应的任务节点执行完成,第二条支路执行流流入第二个网关,则MAP变量中记录的第二条支路执行流对应的任务节点名称变为第二个网关的节点名称,因而,本发明实施例还可以根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,以及静态流程数据中包含的各个任务节点的任务节点ID和任务节点名称,确定任务节点已完成的支路执行流,进而对已完成的执行流执行任务重建。
作为一种可选的实施方式,上述S103可以通过如下步骤来实现已完成支路的任务重建:遍历流程实例的每个支路执行流实体,判断每个支路执行流实体在MAP变量中对应的任务节点名称,在静态流程数据中是否存在对应的任务节点ID,并将不存在对应任务节点ID的任务节点名称对应的支路执行流实体,确定为流程实例中待重建的支路执行流实体。通过该实施方式,能够实现对任务节点已完成的支路执行流的重建。
S104,将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
具体地,在确定待重建的支路执行流实体ID和待重建的任务节点ID之后,可以根据待重建的任务节点ID,查询待重建任务节点ID对应的静态任务节点实体,进而将待重建的支路执行流实体的当前任务节点修改为待重建任务节点对应的静态任务节点实体。
例如,图2中任务2执行完成后,第二支路执行流的当前任务节点为第二个并行网关,在对第二支路执行流实体的任务节点进行重建时,只需要将第二支路执行流的当前任务节点修改为任务2的任务节点ID对应的静态任务节点实体。静态任务节点是静态流程定义中具体的某个任务节点的静态属性定义包括其在流程图中的位置、ID、节点类型、属性、***等。
由于预先定义的静态流程数据中包含的数据很多,为了提高数据查询效率,作为一种可选的实施方式,本发明实施例提供的基于Flowable流程引擎的支路任务重建方法还可以包括如下步骤:根据预先定义的静态流程数据,构建一个自建常量表,其中,自建常量表中包含预先定义的各个任务节点ID与任务节点名称之间的对应关系;基于自建常量表,查询各个任务节点ID对应的任务节点名称。
一种优选的实施方式中,在根据预先定义的静态流程数据,构建一个自建常量表之后,本发明实施例提供的支路任务重建方法还可以包括:根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,以及自建常量表中包含的各个任务节点的任务节点ID和任务节点名称,确定任务节点已完成的支路执行流。
需要注意的是,由于MAP变量中记录的支路执行流当前执行到达的任务节点的任务节点名称,而自建常量表中包含的是任务节点ID和任务节点名称之间的对应关系是静态流程定义的,因而,通过比对MAP变量和自建常量表中同一任务节点名称对应的支路执行流实体ID与任务节点ID是否一致,如果不一致,则确定该任务节点名称对应的任务节点已完成,对应的支路执行流指向了下一个任务节点,因而,通过上述实施方式,可以确定哪些任务节点执行完成,哪些任务节点没有执行完成。
下面结合图2来对本发明实施例进行详细说明,设置MAP变量用于记录流程实例每次执行完成后执行流ID与所在支路的关系。假设任务2、任务3完成,任务1未完成,则在任务2、任务3完成的同时,向MAP变量中写入执行流ID与支路名称的关系。可选地,支路名称可以任务名称命名。
假设要对任务2进行重建,即将第二个任务节点的任务重新激活至待办状态,以出现任务1、任务2未完成、任务3已完成的情况,则具体的支路任务重建命令实现的步骤如下:
①获取工单创建时同步创建时保存关联的已知流程实例的ID、以及静态流程定义设计时已知的需要重建的任务节点ID(例如,任务1)。
②在自建常量表中可以查找到需要重建的任务节点ID所对应的是哪个任务节点名称。
③通过流程实例ID获取流程实例的主执行流,并查询到其对应的MAP变量(即用于记录关系的变量),此时MAP变量里应有任务2、3对应执行流与任务2、3名称的两组键值对。
④通过流程实例ID查询所有支路执行流实体,遍历查询结果集合。
⑤遍历过程中判断若此支路执行流实体的Id在map中对应的任务节点名称与步骤2中名称相同,且其上未对应任务节点ID的话(即任务2确实已完成,非未完成状态),则证明此支路执行流实体为所要重建的执行流实体。若遍历结束后仍未找到,则抛出重建的任务节点ID或所重建任务未完成的异常。
⑥根据主执行流ID获取流程实例对应的静态流程定义实体,之后可在其中查询到需要重建的任务节点ID对应的静态任务节点实体(即任务2的静态定义实体)。
⑦设置步骤5中找到的所要重建的执行流实体的当前任务节点为步骤6中的静态任务节点实体(即将任务2重新绑定到其对应支路执行流上)。
⑧最后根据流程引擎设定,此操作命令类型与补偿事件调用相同,使用代理类将此命令以补偿模式执行。
需要注意的是,在实际开发中,需要根据Flowable流程引擎的设定,将实现上述步骤的支路任务重建命令的使用代理类以补偿模式执行,与Flowable流程引擎中补偿事件调用相同。
以排期工单为例,图3为本发明实施例中提供的基于Flowable流程引擎创建的某一研发交付平台排期工单的流程实例示意图,当创建了排期工单后,会同时开启开发评估任务、测试评估任务、运维评估任务及待排优先级任务。将四个任务划分为上侧三个评估任务和下侧排优先级任务两部分。
当上侧评估任务未评估完全时,下侧先完成了待排优先级,MAP变量中记录上下侧支路对应执行流与“待排优先级”任务名称的对应关系,下侧执行流目前对应活动指向后面的并行网关。若发现优先级暂时还不应确定,需要重新建立待排优先级任务,以防止上侧评估任务完成后就直接进入到“通过且排序”任务节点。
通过本发明实施例提供的基于Flowable流程引擎的支路任务重建方案,基于MAP变量查找到待排优先级支路对应的支路执行流,重新将下侧待排优先级执行流对应的后面的当前任务节点(即并行网关)改为“待排优先级”对应静态任务节点实体,以实现支路任务定位及重建。
本发明实施例中还提供了一种基于Flowable流程引擎的支路任务重建装置,如下面的实施例所述。由于该装置实施例解决问题的原理与基于Flowable流程引擎的支路任务重建方法相似,因此该装置实施例的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中提供的一种基于Flowable流程引擎的支路任务重建装置示意图,如图4所示,该装置包括:流程实例创建模块41、支路任务记录模块42、重建支路任务确定模块43和支路任务重建模块44。
其中,流程实例创建模块41,用于基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,流程实例包括:主执行流和多个支路执行流;支路任务记录模块42,用于将流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于流程实例中主执行流对应的MAP变量中;重建支路任务确定模块43,用于根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;支路任务重建模块44,用于将流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
可选地,本发明实施例中提供的基于Flowable流程引擎的支路任务重建装置中,重建支路任务确定模块43还用于遍历流程实例的每个支路执行流实体,判断每个支路执行流实体在MAP变量中对应的任务节点名称,在静态流程数据中是否存在对应的任务节点ID,并将不存在对应任务节点ID的任务节点名称对应的支路执行流实体,确定为流程实例中待重建的支路执行流实体。
作为一种可选的实施方式,本发明实施例提供的基于Flowable流程引擎的支路任务重建装置中,流程实例创建模块41还可以用于基于Flowable流程引擎,为创建的每个流程实例生成一个流程实例ID。由于一个静态流程定义可生成多个同样流程的不同业务工单对应的不同流程实例,在创建流程实例的同时,为每个流程实例创建一个ID,能够实现对不同工单的流程实例进行任务重建处理。
在一种可选的实施例欧中,本发明实施例中提供的基于Flowable流程引擎的支路任务重建装置还可以包括:静态流程定义实体获取模块45,用于获取流程实例对应的静态流程定义实体;静态任务节点实体查询模块46,用于根据待重建的任务节点ID,在静态流程定义实体中查询对应的静态任务节点实体。
在一种可选的实施例欧中,本发明实施例中提供的基于Flowable流程引擎的支路任务重建装置还可以包括:自建常量表构建模块47,用于根据预先定义的静态流程数据,构建一个自建常量表,其中,自建常量表中包含预先定义的各个任务节点ID与任务节点名称之间的对应关系;自建常量表查询模块48,用于基于自建常量表,查询各个任务节点ID对应的任务节点名称。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于Flowable流程引擎的支路任务重建方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有执行上述于Flowable流程引擎的支路任务重建方法的计算机程序。
本发明实施例还提供一种计算机设备,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述基于Flowable流程引擎的支路任务重建方法。
本发明实施例还提供一种计算机可读存储介质,用以解决现有的流程引擎,由于流程支路的执行流与任务不存在对应关系,导致其无法对已完成任务的流程支路进行任务重建的技术问题,该计算机可读存储介质存储有执行上述于Flowable流程引擎的支路任务重建方法的计算机程序。
综上所述,本发明实施例基于FLowable流程引擎提供的自定义命令模式,通过设置MAP变量来记录流程实例每次执行完成之后支路执行流ID与所在任务支路的关系,直接更改支路执行流本身,使其关联的任务重建,具有极大的通用性、灵活性、广泛性、健壮性,可以支持各种支路状况的任务重建的应用场景,解决了原先只能对单路任务以画驳回线路实现重新激活任务的局限性。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Flowable流程引擎的支路任务重建方法,其特征在于,包括:
基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,所述静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,所述流程实例包括:主执行流和多个支路执行流;
将所述流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于所述流程实例中主执行流对应的MAP变量中;
根据所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;
将所述流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
2.如权利要求1所述的方法,其特征在于,在将所述流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体之前,所述方法还包括:
获取所述流程实例对应的静态流程定义实体;
根据待重建的任务节点ID,在所述静态流程定义实体中查询对应的静态任务节点实体。
3.如权利要求1所述的方法,其特征在于,根据所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID,包括:
遍历所述流程实例的每个支路执行流实体,判断每个支路执行流实体在所述MAP变量中对应的任务节点名称,在所述静态流程数据中是否存在对应的任务节点ID,并将不存在对应任务节点ID的任务节点名称对应的支路执行流实体,确定为所述流程实例中待重建的支路执行流实体。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
根据预先定义的静态流程数据,构建一个自建常量表,其中,所述自建常量表中包含预先定义的各个任务节点ID与任务节点名称之间的对应关系;
基于所述自建常量表,查询各个任务节点ID对应的任务节点名称。
5.如权利要求4所述的方法,其特征在于,在根据预先定义的静态流程数据,构建一个自建常量表之后,所述方法还包括:
根据MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,以及自建常量表中包含的各个任务节点的任务节点ID和任务节点名称,确定任务节点已完成的支路执行流。
6.如权利要求1所述的方法,其特征在于,根据所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID,包括:
输出所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称;
接收外部输入的选择指令,其中,所述选择指令用于选择任意一个支路执行流的支路执行流实体ID和任务节点名称,作为待重建的支路执行流实体ID和待重建的任务节点ID。
7.如权利要求1所述的方法,其特征在于,将所述流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于所述流程实例中主执行流对应的MAP变量中,包括:
基于Flowable流程引擎,执行所述流程实例,获取执行结果数据,其中,所述执行结果数据中包含:所述流程实例中主执行流及支路执行流当前到达的任务节点;
根据所述执行结果数据,将所述流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于所述流程实例中主执行流对应的MAP变量中。
8.一种基于Flowable流程引擎的支路任务重建装置,其特征在于,包括:
流程实例创建模块,用于基于Flowable流程引擎,根据预先定义的静态流程数据创建一个流程实例,其中,所述静态流程数据中至少包含:各个任务节点的任务节点ID和任务节点名称,所述流程实例包括:主执行流和多个支路执行流;
支路任务记录模块,用于将所述流程实例中主执行流对应的各个支路执行流的支路执行流实体ID和任务节点名称,记录于所述流程实例中主执行流对应的MAP变量中;
重建支路任务确定模块,用于根据所述MAP变量中记录的各个支路执行流的支路执行流实体ID和任务节点名称,确定待重建的支路执行流实体ID和待重建的任务节点ID;
支路任务重建模块,用于将所述流程实例中待重建支路执行流实体ID对应的支路执行流实体的当前任务节点,配置为待重建任务节点ID对应的静态任务节点实体。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述基于Flowable流程引擎的支路任务重建方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至7任一项所述基于Flowable流程引擎的支路任务重建方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110758.XA CN111078371B (zh) | 2019-11-14 | 2019-11-14 | 基于Flowable流程引擎的支路任务重建方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911110758.XA CN111078371B (zh) | 2019-11-14 | 2019-11-14 | 基于Flowable流程引擎的支路任务重建方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111078371A CN111078371A (zh) | 2020-04-28 |
CN111078371B true CN111078371B (zh) | 2023-04-18 |
Family
ID=70310893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911110758.XA Active CN111078371B (zh) | 2019-11-14 | 2019-11-14 | 基于Flowable流程引擎的支路任务重建方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078371B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112418796B (zh) * | 2020-11-20 | 2023-12-08 | 泰康保险集团股份有限公司 | 子流程任务节点激活方法、装置、电子设备及存储介质 |
CN114968405B (zh) * | 2022-05-25 | 2024-06-04 | 山东国子软件股份有限公司 | 一种自定义工作流引擎配置***及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063329A (zh) * | 2010-12-22 | 2011-05-18 | 北京邮电大学 | 基于多代理协作的管理任务动态分解方法及*** |
CN103984818A (zh) * | 2014-05-16 | 2014-08-13 | 大连理工大学 | 基于Flex技术的AUV设计流程可视化建模方法 |
CN110413390A (zh) * | 2019-07-24 | 2019-11-05 | 深圳市盟天科技有限公司 | 线程任务处理方法、装置、服务器及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2159742A1 (en) * | 2008-08-29 | 2010-03-03 | Accenture Global Services GmbH | Dynamic order workflow template instantiator and decoupler |
US9588994B2 (en) * | 2012-03-02 | 2017-03-07 | International Business Machines Corporation | Transferring task execution in a distributed storage and task network |
US10203992B2 (en) * | 2016-05-12 | 2019-02-12 | Futurewei Technologies, Inc. | Worker node rebuild for parallel processing system |
-
2019
- 2019-11-14 CN CN201911110758.XA patent/CN111078371B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063329A (zh) * | 2010-12-22 | 2011-05-18 | 北京邮电大学 | 基于多代理协作的管理任务动态分解方法及*** |
CN103984818A (zh) * | 2014-05-16 | 2014-08-13 | 大连理工大学 | 基于Flex技术的AUV设计流程可视化建模方法 |
CN110413390A (zh) * | 2019-07-24 | 2019-11-05 | 深圳市盟天科技有限公司 | 线程任务处理方法、装置、服务器及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111078371A (zh) | 2020-04-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6185486B2 (ja) | 分散型計算環境において負荷均衡化を実行する方法 | |
KR102013005B1 (ko) | 확장 가능한 환경에서의 파티션 관리 기법 | |
JP6928066B2 (ja) | Hyperledger Fabricネットワークの構築方法、コントローラ及び記憶媒体 | |
US7840857B2 (en) | Method and system for automated handling of resolvable and non-resolvable errors in execution of system management flows consisting of system management tasks | |
CN111078371B (zh) | 基于Flowable流程引擎的支路任务重建方法及装置 | |
JP2016541056A (ja) | ビジネスフローをスケジュールするためのコンピュータ装置、方法及び装置 | |
KR100411384B1 (ko) | 에뮬레이션을 통해 클러스터를 활동적으로마이그레이션하기 위한 방법, 시스템 및 프로그램 제품 | |
CN107016016B (zh) | 一种数据处理的方法及装置 | |
CN101710281B (zh) | 基于Agent的动态集成开发平台***和方法 | |
CN101593294A (zh) | 动态配置工作流的方法和*** | |
CN103309650A (zh) | 持久层代码的生成方法和装置 | |
CN108829545B (zh) | 一种实现分布式数据库备份的方法 | |
CN102110162B (zh) | 一种实现sql数据库监控的方法和装置 | |
CN101853165A (zh) | 一种用于组态软件中库的管理方法及*** | |
CN112035183A (zh) | 微应用的接入方法及装置 | |
CN107430510A (zh) | 数据处理方法、装置和*** | |
CN112418796B (zh) | 子流程任务节点激活方法、装置、电子设备及存储介质 | |
CN114168545A (zh) | 一种数据迁移方法及装置 | |
CN112131051B (zh) | 基于参数化配置的数据备份方法及装置 | |
CN114756293A (zh) | 业务处理方法、装置、计算机设备和存储介质 | |
Tragatschnig et al. | Runtime process adaptation for bpel process execution engines | |
JP3795107B2 (ja) | 分散処理システム | |
JP4815139B2 (ja) | データベースアクセスシステム及びデータベースオブジェクト生成プログラム | |
US7743244B2 (en) | Computer system model generation with tracking of actual computer system configuration | |
CN117931317B (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 |