Как манипулировать таблицей управляемых решений из Java API в Drools?

У меня есть требование в моем проекте, где мне нужно управлять содержимым таблицы решений Drools (только данные, а не структура) из пользовательского веб-интерфейса.

Я много искал, но не могу найти ни API Java, ни REST API в Drools, который дает доступ к таблице управляемых решений.

Любая помощь будет оценена.

1 ответ

Решение

Я предполагаю, что вы говорите о таблицах управляемых решений в kie-workbench.

Насколько я знаю, нет общедоступного API для управления таблицей управляемых решений, но есть еще одна вещь, которую вы можете сделать. Каждый проект в kie-workbench на самом деле является проектом maven, сохраняемым в локальном git-хранилище. Хорошая новость заключается в том, что вы можете сделать клон этого хранилища.

Когда у вас есть локальный клон вашего проекта, вы можете найти таблицу управляемых решений, которую вы хотите изменить, в виде файла с .gdst расширение.

Например, это структура каталогов примера проекта uf-playstation, поставляемого с kie-workbench:

Древовидная структура проекта uf-площадка

На скриншоте выше вы можете увидеть Pricing loans.gdst файл. Содержимое этого файла представляет собой XML-файл, содержащий как структуру, так и данные таблицы управляемых решений "Оценка ссуд".

И здесь все становится интересным. Если вы углубитесь в код kie-workbench, я уверен, что вы найдете какой-то недокументированный и очень изменчивый API для обработки этих файлов.gdst. В конце концов, kie-workbench фактически создает и модифицирует эти файлы. Задача здесь:

  1. Найти этот API
  2. Поймите этот API

Другое решение, которое с технической точки зрения может быть не самым лучшим, но которое легче реализовать для простых вещей, таких как манипулирование данными, - это анализ и модификация этих .gdst файлы с использованием библиотеки XML.

Как только вы закончите с изменениями, вы можете отправить их обратно в kie-workbench, и они будут доступны для пользователей графического интерфейса.

Конечно, ни одно из этих двух предложенных решений не является идеальным. Использование недокументированного API, которое не предназначалось для использования третьими лицами и которое, безусловно, изменится в будущем, может показаться плохой идеей. Но ручной анализ XML-файла, семантика которого, возможно, может измениться в разных версиях kie-workbench, также создает некоторые проблемы.

Надеюсь, поможет,

Другие вопросы по тегам