基于二叉树的流程控制系统及控制方法与流程

文档序号:15850257发布日期:2018-11-07 09:44阅读:243来源:国知局
基于二叉树的流程控制系统及控制方法与流程

本发明涉及一种基于二叉树的流程控制系统,本发明还涉及基于二叉树的流程控制方法,属于软件领域。

背景技术

由于流程模型是工作流引擎的核心部件,出于对性能和稳定性等方面的考虑,一般不能随意修改。在实际项目实施时,一般根据项目需求进行二次开发,且二次开发通常会选择在工作流引擎的外围进行二次封装,并放弃了工作流引擎的部分性能和稳定性。显然,这种实现方式灵活性、通用性都很差,因此该功能也一直未能够产品化,导致实施成本也较大。

另外由于由程序动态修改流程模型,导致修改后的模型不能再次被流程编辑器识别和编辑。



技术实现要素:

本发明的目的在于提供一种基于二叉树的流程控制系统及控制方法,以解决上述问题。

本发明提供一种基于二叉树的流程控制方法,其特征在于,包括:

步骤一:标记原有流程的各个节点作为根节点,审批流程开始;

步骤二:判断是否需要在预定根节点前或后插入新的节点,若是,则在预定根节点之前插入一个审批节点a1和/或在预定根节点之后插入一个审批节点a2;若否,则进入原有流程的下一个根节点;

步骤三:当插入新的节点后,按照二叉树的遍历控制进行流转控制,即先完成左子树节点a1,再完成预定根节点,然后完成节点a2;

步骤四:当进行节点a1时,判断是否需要在节点a1前或后插入新的节点,若是,则在a1前插入节点a11和/或在节点a1后面插入节点a12;若否,则按照步骤二中形成的新的流程进行流转;

步骤五:按照二叉树的遍历控制进行流转控制,即先完成左子树的节点a11的流转,再完成父节点a1,然后完成右子树a12。

进一步,本发明的基于二叉树的流程控制方法,还可以具有这样的特征:其中,步骤二和步骤四中新加入的审批节点,分别对应一个审批帐户。

进一步,本发明的基于二叉树的流程控制方法,还可以具有这样的特征:其中,审批帐户被赋予添加新的审批节点的权限。

进一步,本发明的基于二叉树的流程控制方法,还可以具有这样的特征:其中,在步骤二或者步骤四中,还包括在未开始的审批节点前后插入新的审批节点的步骤。

进一步,本发明的基于二叉树的流程控制方法,还可以具有这样的特征:其中,步骤一中,审批流程由申请进行审批的帐户发起,此帐户称为申请帐户。

进一步,本发明的基于二叉树的流程控制方法,还可以具有这样的特征:其中,申请帐户具有在预定节点之前或之后插入审批节点的权限。

本发明还提供一种基于二叉树的流程控制系统,其特征在于,包括:原有流程模块,包括多个根节点模块,原有工作流引擎,控制流程在各个根节点之间流转,二叉树生成模块,将新建的审批节点与根节点相关联,扩展工作流引擎,根据二叉树新建的审批节点,按照二叉树遍历的规则进行新建二叉树的流程流转。

进一步,本发明的基于二叉树的流程控制系统,还具有这样的特征:其中,二叉树生成模块,在当前节点或未开始的节点处生成新的审批节点。

进一步,本发明的基于二叉树的流程控制系统,还具有这样的特征:其中,每个根节点和新建的审批节点分别对应一个审批帐户,审批帐户被赋予通过二叉树生成模块添加新的审批节点的权限。

进一步,本发明的基于二叉树的流程控制系统,还具有这样的特征:申请帐户,用于发起审批流程,申请帐户具有通过二叉树生成模块在预定节点之前或之后插入审批节点的权限。

发明的有益效果

本发明的基于二叉树的流程控制系统及控制方法,不对模型进行修改,保证模型的稳定性和可修改性。

另外,本发明能够在运行时动态、灵活的配置审批环节,实现产品化。

附图说明

图1是基于二叉树的流程控制系统的框图;

图2是标准的流程模型;

图3是抽象化后的根节点流程图;

图4是插入一个审批节点的示意图;

图5是插入两个审批节点的示意图;

图6是插入多个节点形成多级二叉树的示意图。

具体实施方式

以下结合附图来说明本发明的具体实施方式。

如图1所示,基于二叉树的流程控制系统,包括:

原有流程模块12,包括多个根节点模块,如图3所示,分别是根节点s、根节点b、根节点c和根节点e。原有流程模块12中具有与申请帐户和审批帐户相对应的根节点。

原有工作流引擎11,控制流程在各个根节点之间流转。

二叉树生成模块15,在当前节点或未开始的节点处生成新的审批节点,并且将新建的审批节点与根节点相关联。

扩展工作流引擎16,根据二叉树生成模块新建的审批节点,按照二叉树遍历的规则进行新建二叉树的流程流转。重构后的工作流引擎,其根节点和二叉树节点同为“审批节点”,在其信息结构、控制方式上保持了高度一致性(同构)。在扩展灵活性的同时,稳定性和性能也得到了保证。

每个根节点和新建的审批节点分别对应一个审批帐户14,审批帐户14被赋予通过二叉树生成模块添加新的审批节点的权限。

申请帐户13,用于发起审批流程,申请帐户13具有通过二叉树生成模块在预定节点之前或之后插入审批节点的权限。申请帐户13对应根节点s。

本发明的基于二叉树的流程控制方法,包括如下步骤:

步骤一:标记原有流程的各个节点作为根节点,审批流程开始;审批流程由申请进行审批的帐户发起,此帐户称为申请帐户。申请帐户具有在预定节点之前或之后插入审批节点的权限。

步骤二:当审批流程运行到根节点b时,判断是否需要在根节点b前或后插入新的节点,若是,则在根节点b之前插入一个审批节点a1和/或在根b节点之后插入一个审批节点a2;若否,则进入原有流程的下一个根节点;

步骤三:当插入新的节点后,按照二叉树的遍历控制进行流转控制,即先完成左子树节点a1,再完成根节点b,然后完成节点a2;

步骤四:当进行节点a1时,判断是否需要在节点a1前或后插入新的节点,若是,则在a1前插入节点a11和/或在节点a1后面插入节点a12;若否,则按照步骤二中形成的新的流程进行流转;

步骤五:按照二叉树的遍历控制进行流转控制,即先完成左子树的节点a11的流转,再完成父节点a1,然后完成右子树a12。

步骤二和步骤四中新加入的审批节点后,分别对应一个审批帐户14。审批帐户14被赋予添加新的审批节点的权限。

在步骤二或者步骤四中,还包括在未开始的审批节点前或后插入新的审批节点的步骤。

如图4所示,在一个实施方式中,在根节点b处加入新的审批节点a1。

此时,在进行根节点b的审批操作前,先进行节点a1,然后再进行根节点b以及之后的审批操作。

如图5所示,在另一个实施方式中,根节点b的前后分别加入新的审批节点a1和a2。

此时,动态增加的审批环节,在根节点上构建动态二叉树,左节点描述前置审批节点,右节点描述为后置审批节点。二叉树中序遍历进行流转控制,即先完成“左子树”的流转,再完成父节点,最后完成“右子树”的流转。即先进行节点a1,再进行根节点b,再进行节点a2。

还可以进行删除二叉树子节点的步骤,此时意味着该动态增加的审批环节不再需要。

如图6所示,在另一个实施方式中,根节点b的前后分别加入新的审批节点a1和a2。并且在节点a1的前后,分别加入新的审批节点a11和a12。此时的流转过程是:a11-->a1-->a12-->b-->a2-->c-->e。

同样道理,也可以在根节点c和e处增加多级二叉树。从而实现更为灵活的审批控制。

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