如何在 ODM 8.9.1 中更改系统 class 的默认 varbalization?

How do I change the default varbalization of a system class in ODM 8.9.1?

我想在内置 class 上修改内置方法的表达方式。此类方法描述显示在词汇表视图的 System 部分。例如,date class 有一个表达为 {a date} is after {a date} 的方法。当然,我可以自己class用我想看的词汇定义自己的方法,但是我也想把已有的词汇去掉,这样在写规则的时候不会造成混乱。有什么方法可以更改这些预定义的语言表达或完全删除它们吗?

这很容易实现,但很难理解。看来 ODM 正在用 ilog.rules.brl.Date BOM class 替换 java.time.ZonedDateTime BOM class,至少在编辑器中的可见性方面是这样。

如果您使用自己的同名 BOM class 覆盖内置 BOM class,则内置 class 和方法在 BOM 中不再可见.只需在任何规则项目的任何 BOM 条目中定义 BOM class ilog.rules.brl.Date,并将 class 描述为 'date'。就像变魔术一样,日期 class 及其所有方法从 Vocabulary 视图的系统部分消失,并且这些方法将不再出现在 Rule Designer 的 Intellirule 编辑器中。

我正在使用此功能来隐藏基于 java.util.Date 的内置日期处理方法。我们所有的代码现在都使用 java.time.ZonedDateTime,现在我可以避免 ODM 尝试按照内置日期处理方法的要求将我的 ZonedDateTime 实例转换为 java.util.Date。我现在可以自由定义自己的方法来处理 ZonedDateTime 实例,而不会在编辑器中将它们与内置方法混淆。

一个棘手的方面是我定义的 ZonedDateTime BOM class 无法用语言表达。相反,ODM 使用我的 ilog.rules.brl.Date BOM class 的语言化。我的 ZonedDateTime BOM class 的成员(实际或虚拟)也不能用语言表达。当我将虚拟 BOM 成员添加到 ilog.rules.brl.Date 时,我还必须为该日期指定一个执行名称 class -- ZonedDateTime 似乎工作正常并且 {this} 在这些成员描述中表现直观。

在 ODM distrib 示例中,您将找到一个名为 boot.bom 的文件 studio\samples\authoring\bomextensions\rules\resources.

此文件包含“启动”(初始)词汇表的标准信息。

您可以更改日期区域词汇表,然后在您的项目中使用该 bom。