如何在 Drools 中从 Java API 操纵引导决策 table?

How to manipulate guided decision table from Java API in Drools?

我在我的项目中有一个要求,我需要从基于自定义 Web 的 UI.

操作 Drools 指导决策 table 内容(只是数据而不是结构)

我搜索了很多,但我无法在 Drools 中找到任何 Java 或 REST API 来访问引导决策 table。

如有任何帮助,我们将不胜感激。

我假设您正在谈论 kie-workbench 中的指导决策 table。

据我所知,没有 public API 来操纵引导决策 table,但是您可以做另一件事。 kie-workbench 中的每个项目实际上都是一个保存在本地 git 存储库中的 Maven 项目。好消息是您实际上可以制作 clone of that repository.

获得项目的本地克隆后,您可以将要修改的引导决策 table 定位为扩展名为 .gdst 的文件。

例如,这是 kie-workbench 附带的 uf-playground 示例项目的目录结构:

在上面的屏幕截图中,您可以看到一个 Pricing loans.gdst 文件。此文件的内容是一个 xml,其中包含 "Pricing loans" 指导决策 table 的结构和数据。

这里是事情变得有趣的地方。如果您深入研究 kie-workbench 代码,我相信您会发现某种未记录且非常易变的 API 来处理这些 .gdst 文件。毕竟,kie-workbench 实际上是在创建和修改这些文件。这里的挑战是:

  1. 找到这个API
  2. 理解这个API

另一个解决方案,从技术的角度来看可能不是最好的,但对于数据操作等简单的事情更容易实现,是使用一个解析和修改那些 .gdst 文件XML 图书馆。

完成更改后,您可以将它们推送回 kie-workbench,它们将可供 GUI 用户使用。

当然,这 2 个提议的解决方案中 none 是理想的。使用未记录在案的 API 不打算被第三方使用并且将来肯定会改变可能听起来不是一个好主意。但是手动解析 XML 文件的语义可能会在不同版本的 kie-workbench 上发生变化,这也带来了一些挑战。

希望对您有所帮助,