规则配置像填Excel?交叉决策表让业务逻辑可视化再升级
在规则引擎中,交叉决策表是一种特殊类型的决策表,它通过行和列的交叉维度来定义规则,适用于需要同时考虑两个或多个独立条件维度(例如用户属性、产品类型、场景状态等)组合的场景。其核心思想是将不同维度的条件分别放在行和列上,通过交叉点的单元格直接定义结果,从而简化复杂条件的组合逻辑。以下是JVS规则引擎决策表节点的主要功能、作用以及配置方式的介绍:
交叉决策表 vs 普通决策表
对比维度 | 普通决策表 | 交叉决策表 |
结构 | 所有条件在同一行中组合(单维度条件) | 行和列分别代表不同维度的条件(多维度交叉) |
适用场景 | 单一维度的条件组合(如用户等级+订单金额) | 两个或多个独立维度的条件组合(如用户等级 × 产品类型) |
复杂度 | 规则数量随条件数量线性增长 | 规则数量随维度交叉组合数增长(可能更高效) |
可读性 | 适合简单条件组合 | 适合多维条件交叉,直观展示复杂逻辑 |
决策表节点的核心功能意义
- 直观表达多维逻辑将多个独立维度的条件分离到行和列,避免普通决策表中冗长的条件组合(如 用户等级=VIP AND 产品类别=服装 直接简化为交叉点)。
- 减少规则冗余例如普通决策表中需要为每个用户等级和产品类别的组合单独写一条规则,而交叉表通过行和列自动覆盖所有组合。
- 便于动态扩展新增维度只需扩展列,无需修改其他规则。
- 业务友好
类似 Excel 的二维表格形式,非技术人员也能快速理解并维护。
配置如下图所示:
1、拖入交叉决策表节点,连接到决策的开始节点或者上游节点
2、点击交叉决策表,进入交叉决策表配置
3、可根据实际情况新增或引入变量(需要用到变量进行赋值时),然后在交叉决策表点击添加【横向】和【纵向】,即会新增一行横向和纵向的配置。多点几次即会多新增几行或几列。
4、点击编辑,即可选择变量/节点/入参,并以此作为条件组进行设置条件。具体配置如下:
5、配置好相关条件后,进行结果设置。其中结果可为固定值、变量值和节点值。以具体实际场景进行考虑,示例如下所示:
6、配置完成,即得到最后配置结果。
在线demo:**************************
基础框架开源地址:https://gitee.com/software-minister/jvs