You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中编写实现字段级联依赖的Drools规则

Drools Excel决策表规则实现方案

针对你提到的多字段联动场景,直接给出落地的Excel规则编写方式,对应三个联动逻辑:

一、Excel决策表基础结构

Drools Excel规则表分为条件区(CONDITION)和动作区(ACTION),表头需按Drools规范设置,核心列包括:

  • RuleSet:规则集名称(比如LoanProductRules)
  • RuleTable:规则表名称(可分三个表对应三个逻辑,或合并为一个表按优先级区分)
  • 条件列:以$fact:开头绑定业务数据对象,比如$loan:LoanApplication(),后续行写字段判断逻辑
  • 动作列:对绑定的$loan对象执行字段赋值操作

二、具体规则实现

1. 任意产品触发customerType赋值

RuleSetLoanProductRules
RuleTableCustomerTypeRule
CONDITION$loan:LoanApplication
product != null
ACTION
$loan.setCustomerType(Arrays.asList("260", "262"));

说明:若customerType为数字类型,去掉引号;使用Arrays.asList是因为要返回多个值,需确保业务对象中customerType为集合类型(如List<String>或List<Integer>)

2. customerType=260触发SubProduct赋值

RuleSetLoanProductRules
RuleTableSubProductRule
CONDITION$loan:LoanApplication
customerType contains "260"
ACTION
$loan.setSubProduct(Arrays.asList("001", "002", "004"));

说明:若customerType是单个值而非集合,条件改为customerType == 260

3. SubProduct=002触发LoanPurpose赋值

RuleSetLoanProductRules
RuleTableLoanPurposeRule
CONDITION$loan:LoanApplication
subProduct contains "002"
ACTION
$loan.setLoanPurpose("05");

说明:若LoanPurpose为数字类型,去掉引号;若SubProduct是单个值,条件改为subProduct == "002"

三、关键注意事项

  • 规则执行顺序:给每个RuleTable设置salience(优先级),比如CustomerTypeRule设10,SubProductRule设8,LoanPurposeRule设6,确保先执行产品到客户类型的规则,再依次触发后续联动
  • 业务对象定义:你的业务对象(如LoanApplication)必须包含对应字段,集合类型字段需提前初始化,避免空指针
  • Excel格式:保存为.xls格式(Drools对.xlsx支持有限),规则表表头严格遵循Drools决策表规范,不要合并单元格

内容的提问来源于stack exchange,提问作者Rashmi Patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:02:00