一、JVS规则引擎的决策流可视化组成
决策流的可视化拼装
规则引擎是由多个组件组成的,这些组件共同协作实现规则的管理、执行和决策流的构建。
决策流:决策流是由多个业务节点连接而成的流程,用于实现复杂的业务逻辑。决策流中的业务节点按照特定的顺序执行,每个节点根据输入数据和规则引擎的执行结果,决定下一个要执行的节点。决策流的构建可以基于业务需求和流程图进行设计和拼装。
决策流的组成包括规则定义、数据变量库、判断路由、决策引擎、业务节点等组成。规则定义用于描述和定义业务规则,变量库用于存储和管理规则,决策引擎用于规则的执行和决策的生成,业务节点用于表示业务流程中的步骤或任务,决策流由业务节点连接而成,实现复杂的业务逻辑。
通过业务节点的拼装,可以将一系列业务规则组成决策流,使得规则引擎能够根据特定的业务需求自动执行相关的规则。通过决策流的设计和组装,可以实现复杂的业务流程和决策逻辑,提高系统的灵活性和可维护性。
决策流的构建可以基于业务需求和流程图进行设计和拼装。通过可视化编辑器或编程接口,规则引擎的用户可以定义业务节点、规则之间的依赖关系和执行顺序。这种可视化的方式使得规则引擎的配置和管理更加直观和易于理解。 规则引擎的用户可以根据具体的业务需求灵活地设计和调整决策流,以适应不同的场景和变化。这种模块化和可配置的特性使得规则引擎能够提高系统的灵活性、可维护性和可扩展性。
配置方式如下所示:
决策流配置步骤如下:
1、拖拽对应的组件,组件包括开始、结束以及相应的 路由判断、规则分析等业务节点
2、将组件通过组件之间的连线,形成决策流程
3、对每个组件的属性进行独立设置,以实现业务的功能
4、点击测试执行,可以对决策流进行测试
二、判断节点介绍
在规则引擎中,判断节点(或条件节点)是用于对规则条件进行评估和判断的组件。判断节点通常是规则引擎中的核心部分,用于确定是否满足规则条件,并决定是否执行相关的操作或触发其他规则。
判断节点通常由一个或多个条件组成,这些条件可以是简单的逻辑表达式、比较操作符、函数调用或者其他规则引擎所支持的表达式。判断节点将评估这些条件,并基于评估结果决定下一步的操作。
判断节点的评估结果通常是布尔值(True或False),表示条件是否满足。如果所有条件都满足,判断节点将返回True,触发相关的操作。如果有任何一个条件不满足,判断节点将返回False,并根据配置的规则引擎行为执行相应的操作,执行其他规则或者终止规则执行。
判断节点可以使用各种逻辑运算符(如AND、OR、NOT)来组合条件,以实现更复杂的判断逻辑。这使得规则引擎能够处理多个条件之间的关系,并根据需要灵活地执行相应的操作。
判断节点在规则引擎中的作用非常关键,它们使得规则引擎能够根据预定义的条件自动进行决策和处理。通过合理配置判断节点,规则引擎可以灵活应对各种业务场景,并根据条件的变化自动调整执行流程,提高业务处理的效率和准确性。
配置如下图所示:
1、拖入判断节点,链接决策流开始节点或者上游节点
2、设置判断的变量,将入参设置为判断节点的判断内容。
3、设置判断的路由
拉入后续路由节点,链接对应的链路,系统将自动形成不同的路由条件,绑定变量,设置变量的路由的条件,这里设置的路由条件有多种方式,如下图所示:
三、规则节点介绍
在规则引擎中,规则节点是决策流的基本组成单位。规则节点用于描述条件和操作,它们定义了规则引擎在执行时要遵循的逻辑和行为。
规则节点通常由两个主要部分组成:条件和操作。条件定义了规则执行的触发条件,而操作定义了在满足条件时要执行的动作。
关系表达式用于描述规则节点的条件部分。它们定义了规则节点中条件之间的关系,以确定何时触发规则。关系表达式可以包含比较操作符(如相等、不相等、大于、小于等等),逻辑操作符(如AND、OR、NOT)和变量。
关系表达式允许您使用规则引擎的条件语法来构建复杂的条件逻辑。您可以使用比较操作符比较变量的值,使用逻辑操作符组合多个条件,或者使用括号来控制条件的求值顺序。
下面介绍关系节点的具体配置
1、引入变量
选择对应规则配置节点,可以选择新增变量,也可以点击引入变量,这里的新增变量是基于本决策流生成的私有变量,引入的变量是可以引入公有变量和本决策流的其他私有变量。
2、设置关系表达式
点击添加关系组,这里的关系组支持复杂的关系表达式,且系统自动生成配置的关系表达式的简化式。
四、赋值节点介绍
在规则引擎中,变量赋值节点用于在规则执行过程中将值分配给一个或多个变量。它们是规则引擎的操作节点之一,用于修改或更新变量的值,以便后续的规则条件和操作可以使用这些更新后的值。
变量赋值节点通常包含两个主要部分:变量和赋值表达式。变量是规则引擎中的命名实体,用于存储数据或中间结果。赋值表达式定义了要分配给变量的新值。
如下图所示:
配置方式:
1、新建变量或者引入变量
2、引入变量赋值的节点
3、设置变量的值的内容,可以是固定值,也可以是其他变量的结果
在线demo:http://jvs-rules.bctools.cn/
基础框架开源地址:https://gitee.com/software-minister/jvs