摘要
语句规则不够用?Decisions提供真值表、规则集、公式规则、顺序规则、矩阵规则、规则链六大进阶规则类型。本文详解每种类型的核心逻辑、适用场景与配置要点,并附赠业务场景选型指南——从信贷评级、电商定价到客户画像、供应商审核,帮你精准匹配最合适的规则类型,实现复杂业务高效自动化。
前言
在Decisions规则引擎系列的前两篇中,我们先后掌握了规则引擎基础核心逻辑和使用频率最高的语句规则配置,能够实现单/多条件判断、流程分支控制、简单业务逻辑自动化等需求。但实际业务中,会遇到更复杂的场景:比如多条件组合的多结果评级、按顺序执行的规则流、批量运行多规则、算法类的数值计算等,此时仅用语句规则难以高效实现。
Decisions提供了7种规则类型,除语句规则外,真值表、规则集、公式规则、顺序规则、矩阵规则、规则链为进阶类型,各自适配不同的复杂业务场景。本文将详细讲解这些进阶规则类型的核心逻辑、适用场景、核心配置要点,并给出不同业务场景的规则类型选型指南,让你能根据实际需求精准选择,实现复杂业务逻辑的高效自动化配置。
一、真值表(Truth Table):多条件多结果的精准匹配
真值表是Decisions中处理多条件组合、多结果输出的核心进阶规则类型,也是除语句规则外使用频率最高的类型,适合评级、定价、资格审核、贷款档位判断等场景,可同时对比多组输入条件,根据匹配结果返回指定输出。
1.1 核心逻辑
真值表的逻辑可总结为列是AND,行是OR,是理解和配置的关键:
- 列:每一列代表一个判断条件,列与列之间为AND(与) 关系,要匹配某一行,必须满足该行所有列的条件;
- 行:每一行代表一个条件组合方案,行与行之间为OR(或) 关系,满足任意一行的条件组合,即可返回该行对应的输出结果;
- 兜底配置:支持设置No Match(无匹配) 结果,当输入不满足任何一行条件时,返回兜底值,避免规则无结果。
1.2 两大类型
根据数据来源,真值表分为普通和外部两种,适配不同的配置需求:
- 普通真值表:直接在Decisions设计器内手动配置行、列条件和输出结果,适合条件固定、变更频率低的场景;
- 外部真值表:从Excel/CSV文件、外部数据库读取数据,动态生成规则的行和列,适合条件组合多、变更频率高的场景(如电商定价表、信贷评级表),修改外部数据源即可更新规则,无需重新配置。
1.3 核心配置步骤
真值表的配置围绕输入、列条件、行值、输出展开,步骤清晰且可视化:
- 点击Create Rule,选择Truth Table,命名后完成创建;
- 点击顶部Setup Input Data,配置需要判断的输入变量(如年龄、金额、分数,支持数字、字符串、日期、布尔等类型);
- 配置列条件:每一列定义一个判断逻辑,结构为「输入变量+判断符」(如年龄≥21、金额≤500),支持数字(>/-≥/< /≤)、字符串(Equals/Contains)等各类判断符;
- 填写行值:为每一列条件设置具体的对比值,形成一行完整的条件组合;
- 配置输出结果:为每一行设置对应的输出(支持字符串、数字、复杂对象等,可多列输出,同列输出类型需一致);
- 兜底设置:勾选Has No Match Outcome,配置无匹配时的默认兜底结果,类型与输出列保持一致;
- 保存并测试,验证条件匹配与结果返回是否符合预期。
1.4 流程中使用技巧
将真值表嵌入Flow时,通过Run Truth Table节点执行,在Advanced中设置执行结果类型,适配不同需求:
- All Matches(默认):返回所有满足条件行的结果,以列表形式输出;
- First Match Only:仅返回第一个满足条件的行结果,适合唯一结果场景;
- Last Match Only:仅返回最后一个满足条件的行结果,适合按顺序匹配的场景。
1.5 典型适用场景
- 信贷业务:根据「信用评分+月收入+负债比」多条件组合,判断客户贷款档位(Tier1/Tier2/Tier3);
- 电商定价:根据「采购量+会员等级+合作年限」,匹配对应的产品批发价;
- 会员评级:根据「消费金额+消费次数+活跃天数」,评定会员等级(普通/黄金/铂金);
- 保险核保:根据「年龄+健康状况+投保金额」,判断核保结果(通过/加费/拒保)。
二、规则集(Rule Sets):批量运行多规则的高效方案
在实际业务中,常会遇到需要同时运行多个规则、统一输入并返回多结果的场景,若在流程中逐个调用规则,会导致流程繁琐、执行效率低,而规则集正是为解决该问题设计的进阶类型。
2.1 核心逻辑
规则集是多个规则的集合容器,可将语句规则、真值表、公式规则等多种规则类型加入集合,配置统一的输入数据,运行时会批量执行集合内所有规则,且规则间可共享输入,最终返回所有规则的执行结果,相比逐个调用,执行效率大幅提升。
2.2 核心特点
- 批量执行:一次调用即可运行集合内所有规则,简化流程节点配置;
- 统一输入:为规则集配置一次输入,集合内所有规则均可直接使用,无需重复定义;
- 多结果返回:保留每个规则的独立执行结果,支持按需获取单个/多个规则结果;
- 灵活管理:可随时添加/删除/启用/禁用集合内的规则,适配业务逻辑的动态调整;
- 类型兼容:支持整合Decisions中所有规则类型,无类型限制。

2.3 核心配置要点
- 点击Create Rule,选择Rule Sets,命名后创建:
- 配置统一输入数据:与语句规则输入配置一致,定义集合内所有规则共用的输入变量;
- 添加规则:在规则集设计器中,点击Add,选择需要加入的现有规则,或新建规则直接加入;
- 规则管理:对集合内的规则进行启用/禁用、排序操作,按需控制规则的执行状态;
- 保存后,可嵌入流程或通过API调用,运行后会返回包含所有规则结果的集合数据。
2.4 典型适用场景
- 客户画像分析:同时运行「客户等级判断、消费能力评估、活跃度分析、需求匹配」多个规则,批量生成客户画像数据;
- 订单审核:批量运行「订单金额校验、收货地址验证、支付方式校验、库存判断」多个规则,一次性完成订单全维度审核;
- 员工考核:同时运行「业绩完成率判断、考勤达标校验、团队贡献评估」多个规则,批量生成员工考核结果。
三、公式规则(Formulas):算法类数值计算的专属规则
当业务需求以数值计算、算法逻辑为主,而非条件判断时,语句规则、真值表等类型操作繁琐,而公式规则是Decisions专为算法计算设计的规则类型,支持定义带变量的函数,可在流程中动态配置参数并计算结果。
3.1 核心逻辑
公式规则的核心是定义自定义计算函数,通过「输入变量+数学/逻辑公式」组成计算逻辑,运行时传入变量的具体值,系统会自动执行公式计算并返回结果,支持复杂的数学运算、逻辑运算,适配各类计算场景。
3.2 核心特点
- 偏算法计算:脱离传统的If/Then条件判断,专注于数值计算;
- 支持丰富运算:包含基础算术(+/-/*/÷)、高级数学运算(开方、指数、三角函数、对数)、逻辑运算等;
- 动态配置参数:定义的输入变量可在流程中动态传入不同值,实现一次配置、多次复用;
- 结果可复用:计算结果可直接作为其他规则/流程的输入,实现计算与判断的联动。
3.3 核心配置要点
- 点击Create Rule,选择Formulas,命名后创建;
- 配置输入变量:定义计算所需的输入参数,指定变量名和数据类型(以数字类型为主,如Double/Integer/Decimal);
- 编写计算公式:在公式编辑区,通过「变量名+运算符号+函数」编写计算逻辑,Decisions提供可视化的函数选择面板,支持直接调用系统函数(如pow/exp/sqrt/pi);
- 配置输出类型:指定公式计算结果的输出数据类型,与计算结果匹配;
- 可通过Unit Tests单元测试,传入测试值验证计算结果的准确性;
- 保存后,可嵌入流程或API调用,传入参数即可返回计算结果。
3.4 典型适用场景
- 财务计算:计算订单折扣金额、贷款利息、利润提成、税费金额等;
- 数据统计:计算业绩完成率、平均值、增长率、百分比等;
- 工程计算:简单的工程数值运算、参数换算等;
- 电商计算:计算满减金额、运费、拼团价格、积分兑换比例等。
四、其他进阶规则类型:适配小众专属场景
除了上述高频使用的进阶规则类型外,Decisions还提供了顺序规则、矩阵规则、规则链三种类型,各自适配小众的专属业务场景,补充了规则引擎的场景覆盖能力。
4.1 顺序规则(Sequential Rules):简易规则流的顺序执行
- 核心逻辑:以简易流程设计器的形式,按固定顺序执行多个规则,后一条规则可依赖前一条规则的执行结果,支持根据前一条规则的True/False选择不同的执行分支,是规则与简易流程的结合体;
- 核心特点:可视化的流程式规则执行、支持结果依赖、可设置分支走向、操作比纯流程更轻量化;
- 典型适用场景:需要按步骤执行且步骤间有结果依赖的简单规则流,如「先判断用户是否为会员→会员则执行折扣计算,非会员则执行原价校验→最后执行金额合规判断」。
4.2 矩阵规则(Matrix Rules):双维度交叉判断的规则
- 核心逻辑:以行+列双维度形成判断矩阵,行和列各代表一类规则条件,行与列的交叉点即为匹配结果,满足行和列条件时,返回交叉点的结果,本质是双条件的精准匹配;
- 核心特点:双维度交叉判断、配置简洁、结果直观、适合二维条件匹配;
- 典型适用场景:双条件组合的结果判断,如「以会员等级为行、消费金额为列」,交叉点返回对应的礼品等级;「以学历为行、工作年限为列」,交叉点返回对应的面试档位。
4.3 规则链(Rule Chains):专业流程图式的规则串联
- 核心逻辑:通过专用的流程图设计器,将多个规则(语句规则、真值表、公式规则等)以流程图的形式串联起来,支持复杂的分支、跳转、循环逻辑,是比顺序规则更强大的规则工作流;
- 核心特点:专业的流程图设计、支持复杂分支/跳转/循环、规则间联动性极强、可实现超复杂的规则执行逻辑;
- 典型适用场景:需要多规则复杂联动、包含大量分支和跳转的超复杂业务逻辑,如「企业供应商准入审核」,包含多轮规则判断、不同结果对应不同审核分支、未通过则触发复核规则等。
五、Decisions规则类型选型指南:按业务场景精准匹配
掌握了7种规则类型的核心逻辑和适用场景后,如何根据实际业务需求选择最合适的规则类型,是落地使用的关键。以下按业务场景类型分类,给出清晰的选型建议,覆盖绝大多数日常业务需求,可直接参考使用。
5.1 基础条件判断场景(单/多条件、单结果)
- 核心需求:通过1个或多个条件判断,返回True/False,或简单的自定义结果,控制流程分支;
- 推荐类型:语句规则(Statement Rule);
- 典型场景:表单校验、订单金额判断、用户身份验证、简单的资格筛选。
5.2 多条件组合+多结果输出场景
- 核心需求:多个条件组合匹配,不同的组合对应不同的输出结果,需要兜底配置;
- 推荐类型:真值表(Truth Table)(条件固定选普通,条件多变选外部);
- 典型场景:客户评级、产品定价、信贷档位判断、会员等级评定。
5.3 算法数值计算场景
- 核心需求:无复杂条件判断,以数值计算、算法逻辑为主,需要动态传入参数并返回计算结果;
- 推荐类型:公式规则(Formulas);
- 典型场景:财务计算、税费计算、业绩统计、折扣金额计算、贷款利息计算。
5.4 批量运行多规则场景
- 核心需求:需要同时运行多个独立规则,统一输入数据,批量返回结果,提升执行效率;
- 推荐类型:规则集(Rule Sets);
- 典型场景:客户画像分析、订单全维度审核、员工多维度考核、产品多指标检测。
5.5 规则按顺序执行+结果依赖场景
- 核心需求:多个规则需要按固定顺序执行,后一条规则依赖前一条的执行结果,有简单的分支走向;
- 推荐类型:顺序规则(Sequential Rules);
- 典型场景:按步骤的简单规则流、带结果依赖的多规则执行、简易的分级判断。
5.6 双维度交叉条件判断场景
- 核心需求:仅两个维度的条件组合,交叉点返回对应结果,条件和结果均直观;
- 推荐类型:矩阵规则(Matrix Rules);
- 典型场景:双条件礼品匹配、双条件面试档位判断、双维度评分结果。
5.7 超复杂规则联动+多分支跳转场景
- 核心需求:多个规则复杂联动,包含大量分支、跳转、循环逻辑,需要流程图式的可视化设计;
- 推荐类型:规则链(Rule Chains);
- 典型场景:企业供应商准入审核、复杂的风控规则判断、多轮次的客户审核。
5.8 选型核心原则
- 简单优先:能通过语句规则实现的,不使用其他复杂类型,降低配置和维护成本;
- 匹配场景:根据核心需求(判断/计算/批量/联动)选择,而非盲目使用复杂类型;
- 易维护性:业务逻辑变更频繁的场景,优先选择可动态更新的类型(如外部真值表、规则集);
- 效率优先:批量运行多规则的场景,优先使用规则集,而非逐个调用规则。
六、Decisions规则引擎系列总结
至此,Decisions规则引擎系列的三篇内容已全部讲解完毕,从基础逻辑到核心实操,再到进阶类型和选型指南,形成了完整的知识体系,以下对落地使用规则提供几点建议:
- 从简单到复杂:先从语句规则入手,完成简单的业务逻辑配置,熟悉设计器操作后,再尝试真值表、规则集等进阶类型;
- 重视单元测试:所有规则配置完成后,通过Unit Tests传入测试数据,验证规则结果的准确性,避免上线后出现逻辑错误;
- 善用属性配置:灵活使用规则的启用/禁用、生效时间、API调用权限等配置,适配业务的动态调整;
- 规则与流程联动:将规则嵌入Decisions工作流中,实现「规则判断+流程执行」的全自动化,真正落地业务场景;
- 做好规则管理:对创建的规则进行分类命名、备注,批量规则使用规则集管理,方便后续的查找、修改和维护。






