Цикл по массиву значений с откатом "игнорировать правило" в электронной таблице Drools

У меня довольно простая проблема: для правила я хочу указать массив значений, которые являются допустимыми значениями. Как я могу это сделать? Я уже посмотрел на ключевое слово "in", но если я использую это ключевое слово, то получаю очень странное исключение из компилятора Drools.

Рабочий пример с

Это изображение показывает рабочее правило с ключевым словом "in". Но я также хочу, чтобы пользователь мог пометить правило как "игнорируемое", если необходимо, например, с помощью специального символа.

Если я использую следующее правило с "правилом игнорирования"-Extra (которое я также использую в других правилах с успехом), я получаю очень странное сообщение об ошибке от компилятора Drools:

Не работает правило

Сообщение об ошибке от компилятора:

Unable to Analyse Expression plant == "91" || plant == "83" || plant == "63" || plant == "28" || "91":
[Error: Right side of logical operation is not of type boolean. Found class java.lang.String]
[Near : {... lant == "83" || plant == "63" || plant == "28" || "91" ....}]
                                                           ^
[Line: 9, Column: 2] : [Rule name='CAS_11']

Predicate '"83"' must be a Boolean expression
[Line: 9, Column: 2] : [Rule name='CAS_11']

Predicate '"63"' must be a Boolean expression
[Line: 9, Column: 2] : [Rule name='CAS_11']

Я надеюсь, что вы, ребята, можете мне помочь.. Я очень новичок в Drools, который может быть проблемой;)...

С Я

1 ответ

Решение

Может быть, самый простой способ выполнить то, что вы хотите, это изменить свое состояние, как

plant in ($param) && "-" not in ($param)

С этим "91","28","63" запускает правило, но "93","28","-" не. гладкий "-" игнорирует правило также.

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

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