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

调用KIE API容器时,如何通过REST API使用activation-group触发规则组?

解决Drools REST API触发指定Activation Group的问题

我看了你配置的规则和当前的REST请求,问题出在触发指定activation-group的命令格式上——你用的fire-targetgroup并不是Drools REST API支持的参数,咱们来调整一下请求格式就能实现你想要的效果。

首先,你的规则代码已经正确给规则分配了activation-group(gold和silver),这部分没问题。要通过REST API触发特定组的规则,需要用fire-all-rules命令搭配activation-group参数,有两种常用写法:

方式1:直接指定activation-group

这是最直接的写法,把activation-group作为fire-all-rules的属性传入:

{
  "commands": [
    {
      "insert": {
        "object": {
          "com.myteam.arduinodevre2.ArduinoEntity": {
            "switchOn": true,
            "voltaj": 1100
          }
        },
        "out-identifier": "ArduinoEntity",
        "return-object": true
      }
    },
    {
      "fire-all-rules": {
        "activation-group": "silver"
      }
    }
  ]
}

方式2:使用规则过滤器

如果需要更复杂的规则筛选(比如同时指定多个条件),可以用filter来指定activation-group:

{
  "commands": [
    {
      "insert": {
        "object": {
          "com.myteam.arduinodevre2.ArduinoEntity": {
            "switchOn": true,
            "voltaj": 2.0
          }
        },
        "out-identifier": "ArduinoEntity",
        "return-object": true
      }
    },
    {
      "fire-all-rules": {
        "filter": {
          "activation-group": "silver"
        }
      }
    }
  ]
}

额外说明

  • 记住activation-group的核心特性:同一组内的规则是互斥的——比如你gold组的3条规则,当事实满足多个规则的条件时,只会触发第一个匹配的规则,不会全部执行。
  • 如果要触发gold组,只需要把示例中的"silver"换成"gold"即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:18:57