Как манипулировать таблицей управляемых решений из Java API в Drools?
У меня есть требование в моем проекте, где мне нужно управлять содержимым таблицы решений Drools (только данные, а не структура) из пользовательского веб-интерфейса.
Я много искал, но не могу найти ни API Java, ни REST API в Drools, который дает доступ к таблице управляемых решений.
Любая помощь будет оценена.
1 ответ
Я предполагаю, что вы говорите о таблицах управляемых решений в kie-workbench.
Насколько я знаю, нет общедоступного API для управления таблицей управляемых решений, но есть еще одна вещь, которую вы можете сделать. Каждый проект в kie-workbench на самом деле является проектом maven, сохраняемым в локальном git-хранилище. Хорошая новость заключается в том, что вы можете сделать клон этого хранилища.
Когда у вас есть локальный клон вашего проекта, вы можете найти таблицу управляемых решений, которую вы хотите изменить, в виде файла с .gdst
расширение.
Например, это структура каталогов примера проекта uf-playstation, поставляемого с kie-workbench:
На скриншоте выше вы можете увидеть Pricing loans.gdst
файл. Содержимое этого файла представляет собой XML-файл, содержащий как структуру, так и данные таблицы управляемых решений "Оценка ссуд".
И здесь все становится интересным. Если вы углубитесь в код kie-workbench, я уверен, что вы найдете какой-то недокументированный и очень изменчивый API для обработки этих файлов.gdst. В конце концов, kie-workbench фактически создает и модифицирует эти файлы. Задача здесь:
- Найти этот API
- Поймите этот API
Другое решение, которое с технической точки зрения может быть не самым лучшим, но которое легче реализовать для простых вещей, таких как манипулирование данными, - это анализ и модификация этих .gdst
файлы с использованием библиотеки XML.
Как только вы закончите с изменениями, вы можете отправить их обратно в kie-workbench, и они будут доступны для пользователей графического интерфейса.
Конечно, ни одно из этих двух предложенных решений не является идеальным. Использование недокументированного API, которое не предназначалось для использования третьими лицами и которое, безусловно, изменится в будущем, может показаться плохой идеей. Но ручной анализ XML-файла, семантика которого, возможно, может измениться в разных версиях kie-workbench, также создает некоторые проблемы.
Надеюсь, поможет,