问题标签 [ibm-odm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ilog - IBM ODM aka iLog JRules 数据库基于查询的规则在执行时抛出 NPE
我正在尝试克服由特定要求引起的挑战,该要求需要几个规则查询数据库并根据从 SELECT 语句获得的值返回结果。虽然我知道让 JRules 连接到数据库本身并不是“最佳实践”,但在这个阶段它实际上是必需的。
我在 XOM 中创建了一个包装类,生成了它的 BOM 等价物,并描述了它的构造函数和方法,如下所示。虽然我从规则引擎中得到了一个 NPE 异常,但我似乎无法弄清楚为什么。
此外,当在单独的 java 项目中使用时,包含查询数据库的语言化方法的类工作正常,没有任何错误。
任何人都知道为什么在调用规则时会引发异常?
规则集参数:
姓名-- | 类型 | 方向 | 默认值 | 语言化
合同 | 模型.合同 | 输入 | (无)| 收到的合同
会费 | java.math.BigDecimal | 输出 | (无)| 会费
代理引擎 | wrapper.AgencyCampEngine | 输出 | (无)| 在引擎中
规则流程
例外:
jrules - 如何确定是否对 JRules 进行了不会自动转换为 ODM 的扩展?
我正面临将我们应用程序的 JRules 7.112 部分升级到 ODM 8.5。不幸的是,做 JRules 工作的人已经不在了,而且我们缺乏很多内部专业知识。
从 JRules 迁移到 ODM列出了升级所需的步骤。显然,有几个脚本可以帮助升级到 ODM,但有几件事必须手动完成。其中包括迁移规则模型扩展和扩展数据。搜索 *.brmx 文件和 *.brdx 文件是否足以确定这些扩展名是否已完成?也欢迎有关迁移过程的其他智慧之词(例如,关于不兼容性、“陷阱”)。
business-rules - 如何在 (ILOG) IBM ODM 中将自定义属性设置为业务规则
我需要为每个规则设置一个新属性(例如:唯一 ID),并在执行期间从相应规则的操作部分访问它。例如:如果人的年龄超过 18 岁,则将输出设置为规则的 ID。
(这里的 ID 应该来自正在添加的新属性。)
我正在使用 IBM ODM 8.5。请建议从业务规则中获取唯一ID的所有方法是什么?
在虚方法的 B2X 映射中,我使用instance.getRule().properties
. 我期待自定义属性和所有其他规则属性。但是,属性地图只有以下六个:
键:ilog.rules.business_name 值:测试分数
键:ilog.rules.package_name 值:检查分数
键:请求者邮件值:
键:状态值:新
键:ilog.rules.package 值:check_score
键:ilog.rules.group 值:check_score.test_score
ilog - ILOG 动态规则集
我们如何从一组规则中创建一个动态规则集?这个群体是动态的。我正在使用 IBM ODM 8.0.1
ilog - ILog ODM 8.0.1:在执行中记录名称规则
我想记录规则的名称,问题:
如何在 XOM 中获取规则名称?
或者
我可以在执行规则之前注入代码吗?
java - (ILOG) IBM ODM 8.5 在执行时记录规则的名称
我想创建一个日志,例如 System.out.println("RuleName : "+ruleName); 在 IBM ODM 规则引擎中。
这就是我所做的;
1- 创建静态的 BOM 虚拟方法并获取实例的参数,该实例是 ilog.rules.engine.IlrRuleInstance 的对象。
2-通过以下创建 BOM 到 XOM 的映射
3- 在规则流中将其称为初始或最终操作。
但是当我执行流程时,我的日志不起作用实例为null并且 ruleName 也为null;
我应该如何使用 bom.xml 配置和设置日志记录功能。你能给我一个例子吗?
谢谢。
java - (ILOG)IBM ODM 无论如何都可以使用像查找表这样的决策表,还是使用不好?
我实施了一些规则,例如;
- 检查身份证。如果是在方便的日期,则添加相关组,例如,aaaa
- 在操作规则中,检查项目是否在相关组中添加消息或删除消息
但是我认为规则引擎使用一些表来添加新组并检查操作规则中的组比添加一些值不方便。
正如我在这里看到的,我需要使用一些查找表。但我的想法是我不想使用数据库来实现这些条件。
有没有办法将决策表用作查找表,或者我应该使用数据库来实现该实现?或者有什么办法可以解决这个问题?
谢谢你的帮助。
jrules - 如何生成可以在 ODM 规则执行服务器控制台中检查的业务规则输出?
我是 ODM 8.5(JRules 的后续版本)的新手,我正在尝试在 ODM 规则执行服务器控制台中测试一些规则。此时,我只是想确认我的规则更改已成功部署到 RES。根据 ODM 的测试规则集执行帮助页面,我应该能够检查输出文本框,以查看来自网页下的“写入 print.out 的字符串” Explorer > RuleApps > RuleApp > Ruleset > Test Ruleset
。我部署了一个包含以下代码段的规则:
println
但是,执行规则后,我在“输出”框中看不到 的输出。当他们说“print.out”时,println 是文档所指的吗?如果我尝试将“System.out.println”替换为“print.out”,则会出现语法错误。如何让简单的调试输出出现在输出框中?
jrules - 如何修复 Java 项目的 ODM/JRules 映射中的重复术语错误?
我刚刚开始使用 ODM 8.5(JRules 的后续版本),并且正在尝试使用预先存在的 Java 项目作为业务对象模型 (BOM) 的基础。大多数课程似乎翻译得很好;但是,我有一个无法修复的错误 -
不幸的是,规则设计器不知道重复发生在哪里,我也找不到保留字列表。在我这样做之前,我会假设“事件”是保留的。
我确实有一个Event
抽象的 Java 类,我也有字段等,其中“事件”作为名称的一部分,例如eventType
. 这会产生默认的语言表达,例如
和
假设我确实想要我的Event
班级和名称中带有“事件”的字段,我该如何调整我的 BOM 以免出现错误?我已经编辑了我的 BOM,使得“事件”这个词不再单独出现在 .voc 文件中,例如,我现在有如下表述:
和
然而,我仍然有同样的错误信息。我能做些什么?
编辑:
我在 IBM 文档中找到了保留字列表,该列表指定了 ILOG 规则语言的保留字列表,其中包括“事件”。但是,文档不清楚。它指出,“保留了许多关键字,并且命名限制适用于包名称。” 这是否意味着限制仅适用于包名称?它还说,“自 V7.5 起已弃用。” 如何弃用保留字列表?这是否意味着v7.5之后就没有限制了?
jrules - 如何消除在我的 BOM 文件中引用 java.util 类的“未定义”警告?
我正在使用 ODM 8.5(JRules 的继任者)。我从现有的 Java 项目生成了 BOM。我的 bom 文件中生成的类之一如下所示:
我收到警告:
我需要做什么才能让 ODM 识别 BOM 中的 Java 类?我还看到关于 java.sql.Timestamp 和其他人的类似警告。