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

如何在Drools决策表中使用单独字段而非完整对象编写规则?

适配修改后控制器的Drools决策表编写方案

因为现在你在Drools会话中同时插入了String类型的card对象和空的Order对象,决策表需要同时匹配这两个对象,再根据card的取值给Order设置折扣。以下是具体的编写方式:

决策表核心结构(对应Excel格式的Markdown示意)

规则描述条件:Card字符串条件:Order对象动作:设置折扣
VIP卡打8折$card: String(this == "VIP")$order: Order()$order.setDiscount(0.8);
普通卡打9.5折$card: String(this == "NORMAL")$order: Order()$order.setDiscount(0.95);
新用户无折扣$card: String(this == "NEW")$order: Order()$order.setDiscount(1.0);

关键说明

  1. 条件列的对象绑定:
    • 第一列条件专门匹配会话中的String类型card对象,用$card: String(...)绑定变量,括号内写card的取值判断逻辑。
    • 第二列条件匹配会话中的Order对象,用$order: Order()绑定变量,因为Order是新创建的空对象,这里无需额外属性判断,直接匹配即可。
  2. 动作列的赋值逻辑:
    通过绑定的$order变量调用setter方法设置折扣,直接修改会话中的Order对象,最后控制器返回这个对象就能拿到结果。
  3. Drools规范适配:
    实际Excel决策表的表头要遵循Drools标准:条件列标注CONDITION,动作列标注ACTION,规则描述列标注DESCRIPTION,确保Drools能正确解析表格规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 12:40:50