В документации Guvnor я знаю, как определить перечисление данных и использовать его в Guvnor. Можно ли получить перечисление данных из моего собственного кода Java?
API перечисления данных Drools Guvnor
Ответы (2)
Из документации Гувнора:
Программная загрузка перечислений: в некоторых случаях людям может потребоваться полностью загрузить свои данные перечисления из внешнего источника данных (например, из реляционной базы данных). Для этого вы можете реализовать класс, который возвращает карту. Ключ карты — это строка (имя поля Fact.field, как показано выше), а значение — java.util.List of Strings.
public class SampleDataSource2 {
public Map<String>, List<String> loadData() {
Map data = new HashMap();
List d = new ArrayList();
d.add("value1");
d.add("value2");
data.put("Fact.field", d);
return data;
}
}
А в перечислении в BRMS ставите:
=(new SampleDataSource2()).loadData()
«=» сообщает ему загрузить данные, выполнив ваш код.
С уважением,
Надеюсь, еще не поздно ответить на этот вопрос.
Чтобы загрузить enum из приложения в guvnor,
- Создайте класс перечисления динамически из строки (в моем случае значения перечисления предоставляются пользователем через графический интерфейс)
- Добавьте его в банку, преобразуйте в массив байтов
- ОТПРАВИТЬ его руководителю как актив (модель jar) через вызов REST
- Вызов операции сохранения репозитория (изменение исходного кода управляющего)
Теперь перечисление будет отображаться как факт в окне вашего правила.
Редактирование/удаление банки модели и последующая проверка правил — это то, о чем вы должны позаботиться.