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 表格,而不是简单判断时,就应该考虑使用决策表。