如何在Drools中从Java API操作指导决策表?

在我的项目中,我需要从基于Web的自定义UI操作Drools引导的决策表内容(只是数据而不是结构)。

我已经搜索了很多但是我无法在Drools中找到任何Java或REST API来访问指导决策表。

任何帮助,将不胜感激。

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

据我所知,没有公共API来操纵指导决策表,但还有另一件事你可以做。 kie-workbench中的每个项目实际上都是一个持久存储在本地git存储库中的maven项目。 好消息是,您实际上可以复制该存储库 。

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

例如,这是与kie-workbench一起发布的uf-playground示例项目的目录结构:

uf-playground项目的树结构

在上面的屏幕截图中,您可以看到Pricing loans.gdst文件。 该文件的内容是一个xml,包含“定价贷款”指导决策表的结构和数据。

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

  1. 找到这个API
  2. 了解此API

另一种解决方案,从技术角度来看可能不是最好的,但是对于诸如数据操作这样的简单事物来说更容易实现 – 是使用XML库解析和修改这些.gdst文件。

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

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

希望能帮助到你,