JVS-Rules规则引擎系列篇(四):决策表实战——把复杂多条件判断配置成表格
摘要:当业务规则变成多条件、多结果组合时,继续写 if-else 会让代码越来越难维护。本文介绍JVS-Rules中决策表的适用场景,并用客户额度匹配案例说明如何把复杂判断配置成业务可读的表格。
关键词:决策表、规则引擎、JVS-Rules、多条件判断、低代码
一、什么时候该用决策表
如果规则可以整理成“条件组合对应结果”,就适合使用决策表。
例如:
- 客户等级不同,额度不同。
- 风险分不同,审批结果不同。
- 产品类型不同,费率不同。
- 地区和渠道不同,营销权益不同。
这类规则如果写在代码中,通常会变成多层 if-else。
一旦规则变多,开发人员难维护,业务人员也难验证。
决策表的价值就是把这些规则变成表格,让业务口径更清晰。
二、案例:客户额度匹配
假设业务规则如下:
客户等级 | 风险分 | 逾期次数 | 授信额度 |
A | >= 80 | 0 | 50000 |
B | >= 70 | 0 | 30000 |
C | >= 60 | 0 | 10000 |
任意 | 任意 | > 0 | 0 |
这个规则天然适合决策表。
它不是简单的一条分支,而是多个条件共同决定一个结果。
三、准备入参和变量
决策表需要有可判断的数据。
这个案例中需要:
字段 | 含义 |
customerLevel | 客户等级 |
riskScore | 风险分 |
overdueCount | 逾期次数 |
这些字段可以来自外部入参,也可以来自前面的评分卡、函数或赋值节点。
实际项目中,建议先统一字段含义,再配置决策表。
否则容易出现“字段名一样但业务口径不同”的问题。
四、配置决策表条件
在JVS-Rules中添加决策表节点后,可以围绕判断字段配置条件组。
例如:
第一条规则:
输出:
第二条规则:
输出:
决策表配置时,要特别关注规则顺序和默认结果。
五、为什么决策表比 if-else 更适合业务维护
决策表有几个明显优势:
- 条件和结果放在一起,业务人员容易阅读。
- 多条规则可以集中比较。
- 修改阈值不一定需要开发改代码。
- 适合会议评审和规则确认。
- 后续可以配合执行日志排查命中情况。
相比代码,决策表更像业务规则说明书。
六、普通决策表和交叉决策表怎么选
普通决策表适合按行配置规则。
比如:
交叉决策表适合两个或多个维度交叉形成结果。
比如:
如果规则看起来像 Excel 的二维矩阵,可以优先考虑交叉决策表。
七、常见问题
决策表没有命中结果怎么办?
优先检查:
- 入参是否传对。
- 字段类型是否一致。
- 条件范围是否覆盖。
- 是否配置默认结果。
- 规则顺序是否影响命中。
决策表和条件分支怎么选?
简单两三条路径,用条件分支。
多条件、多结果、需要业务维护,用决策表。
八、小结
决策表适合把复杂多条件判断变成表格。
在JVS-Rules中,决策表可以和入参、变量、评分卡、函数、结束节点组合使用,形成完整的在线决策流程。
当你的规则越来越像 Excel 表格,而不是简单判断时,就应该考虑使用决策表。