了解议程组的锁定活动

2023-12-22

我尝试了一个示例来了解锁定活动的工作原理。当我在不使用议程组的情况下触发规则时,一切似乎都很好。但是,当我取消注释下面代码中的议程组并将焦点设置为组“B 组”时,不会触发任何规则。

Rule

rule "Additional Rs.1 tax for books above Rs.10"

//agenda-group "Group B"
lock-on-active true
when 
    $o: Product(name=="Book",amount>10)
then
    System.out.print($o.getAmount()+"-->");

    modify ($o) {
        setAmount($o.getAmount()+1); 
    }

    System.out.println($o.getAmount());
end

rule "Additional Rs.2 tax for books above Rs.20"

//agenda-group "Group B"
lock-on-active true
when 
    $o: Product(name=="Book",amount>20)
then
    System.out.print($o.getAmount()+"-->");
    modify ($o) {
        setAmount($o.getAmount()+1); 
    }

    System.out.println($o.getAmount());
end

用于触发规则的代码

KieServices kieServices=KieServices.Factory.get();
KieContainer kieContainer=kieServices.getKieClasspathContainer();
KieSession kieSession=kieContainer.newKieSession("ksession-lockOnActive");

Product product=new Product();
product.setName("Book");
product.setAmount(11);

Product product2=new Product();
product2.setName("Book");
product2.setAmount(21);

kieSession.getAgenda().getAgendaGroup("Group B").setFocus();

kieSession.insert(product);
kieSession.insert(product2);
kieSession.fireAllRules();

没有议程组的输出

21-->22
11-->12
22-->23

我使用的是旧版本的 Drools(6.2.0 Final)。当我将其更改为7.4.1时。代码有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解议程组的锁定活动 的相关文章

随机推荐

  • ListView 显示项目但不显示组

    我正在创建一个简单的模式对话框 其中包含列表视图 当我将项目添加为组的一部分时 项目将显示 但组标题不会显示 我一直在尝试在构造函数中使用一些虚拟对象 这是代码 Initialize and create columns public Co
  • SLICK 3.0 - 多个查询相互依赖 - db.run(action)

    我是 Slick 3 的新手 到目前为止我已经了解 db run 是异步调用 一旦 Future 返回 map 或 flatMap 就会运行 下面我的代码中的问题是所有子查询都不起作用 嵌套db run 从概念上讲 我没有得到什么 执行下面
  • 如何处理未跟踪的文件并提高 git status 性能

    我目前在 Mac 上 在 Git 2 35 1 中 当我克隆我的存储库时 枚举未跟踪的文件花了 7 秒 当我这样做时time git status 大约花了2秒 而且 当我签出到其他分支时 大约需要 15 秒 当我签出回我的主存储库时 大约
  • SQL Server bacpac 在最新更新中本地导入失败(在线索引操作只能在 SQL Server 企业版中执行)

    我有一个 SQL Azure 数据库并在 SQL Server Management Studio 中连接到它 我导出数据层应用程序 然后导入数据层应用程序 bacpac文件以将其放入我的 localdb 中 或者我使用任务 部署数据库 不
  • 有没有办法根据不同列中的离散变量制作 matplotlib 散点图标记或颜色?

    我正在使用 matplotlib 从 DF 中制作散点图 为了为每个数据集获取不同的颜色 我对 plt scatter 进行了两次单独的调用 plt scatter zzz HFmV zzz LFmV label dut groups 0
  • 无缝音频循环到任意位置

    我最喜欢 MOD 格式的事情之一是能够循环回到歌曲中的任何给定点 这使其非常适合具有 前奏 和 主循环 的歌曲 当然MP3做不到这一点 到目前为止 我已经做了这样的事情
  • 如何用Python绘制时间序列热图? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想绘制一个图表 其中 x 轴作为时间轴 y 轴作为其值 颜色将指示其频率 频率越高 颜色越深 我认为您正在寻找二维直方图 impor
  • 在oracle11g中创建参数化视图

    我有一个带有嵌套和左连接的大查询 我需要从中创建一个视图 以免从应用程序中运行它 问题是我需要日期范围和其他一些字段作为输入参数 因为每个请求的前端都会有所不同 我刚刚查了一下 看到一些帖子提到使用 SYS CONTEXT 进行参数化视图
  • Jersey - servlet 上下文路径和/或 servlet 路径包含百分比编码的字符

    我正在使用 Jersey 和 Tomcat 每当我单击链接时都会收到以下消息 HTTP Status 500 The servlet context path and or the servlet path contain characte
  • 读者-作者访问多个读者

    在 UNIX 中实现 WRITER READER 问题时 我有一些无法解决的问题 第一个是我不知道如何修改代码才能像线程总是调用进入阅览室一样工作 例如 当作家在阅览室时 读者正在等待进入阅览室 当作家逃离阅览室 读者进入阅览室时 他仍在等
  • 在 DigitalOcean 应用程序平台上为 HTTPS 节点应用程序使用 Let's Encrypt 证书

    我习惯于使用 Docker Express 框架和 https 包在 DigitalOcean 服务器上部署 HTTPS 节点应用程序 如下所示 const https require https const app express con
  • 为什么我的 MIPS 基础转换器在当前值之后打印出前一个循环的值?

    我对 MIPS 很陌生 这让我完全困惑 我编写了一个程序来转换基数 第一次运行时效果很好 但是当它循环时 它会显示先前循环迭代中其他寄存器的值 输出如下 我已经尝试了我能想到的一切 但我没有想法 Enter a decimal number
  • Javascript 的 sort() 是如何工作的?

    下面的代码如何按数字顺序对该数组进行排序 var array 25 8 7 41 array sort function a b return a b 我知道如果计算结果是 小于0 a 被排序为比 b 更低的索引 Zero a 和 b 被认
  • jQuery Mobile 无法刷新可折叠集

    我正在使用 jQuery mobile 创建一个应用程序 并从 wordpress throw jsonp 加载其菜单和页面 我以可折叠集和列表视图的形式加载其菜单 但我不断收到错误 当我尝试通过此代码刷新可折叠集时 childnev ht
  • 如何快速取消多个线程之一

    我有一个启动 3 个异步线程的函数 每个线程都会做一些需要一些时间的事情 当某个线程首先完成时 我需要它来停止其他两个线程 但我不知道该怎么做 还 My code class SomeController UIViewController
  • django、phpmyadmin 和 mysql?

    我想开始使用 Django 和 MYSQL 而不是一直使用 sqlite 但是我使用 MSQL 的唯一经验是通过 XAMPP 通过 phpmyadmin 操作数据库 我真的很想保持与 mysql 的 GUI 交互 而不必通过命令行完成所有操
  • pyinstaller:ModuleNotFoundError:没有名为“cv2”的模块

    我正在尝试创建一个简单的软件 pyinstaller 激活计算机摄像头 但我遇到了错误ModuleNotFoundError No module named cv2 但是 当我使用命令提示符运行相同的代码时 它会按照我想要的方式完美运行 i
  • JVM Hotspot 上的 PrintAssembly 选项已启用,但未显示任何程序集跟踪

    我正在使用 intel i386 Ubuntu 14 OpenJDK 版本信息显示为 java version is java version 1 7 0 65 OpenJDK Runtime Environment IcedTea 2 5
  • Windows 10 inkscape 0.92 中无法识别 libxml

    Inkscape 抱怨没有 libxml 所以我安装了 Windows 10 的 lxml 在修改路径 gt 抖动节点期间它再次抱怨 所以我重新启动了 Inkscape 它仍然在抱怨 有谁知道如何解决这个问题吗 提前致谢 错误 inkex
  • 了解议程组的锁定活动

    我尝试了一个示例来了解锁定活动的工作原理 当我在不使用议程组的情况下触发规则时 一切似乎都很好 但是 当我取消注释下面代码中的议程组并将焦点设置为组 B 组 时 不会触发任何规则 Rule rule Additional Rs 1 tax