Условие drools не работает с eval()

Я использую Drools с электронными таблицами и хочу, чтобы пользователь мог добавлять сложный код в ячейки условий. Но почему-то это не работает.

Вот пример:

Пример

Код в ячейке условия действителен, но я получаю следующее исключение от компилятора Drools:

[17,0]: [ERR 102] Line 17:0 mismatched input ''
[11,330]: [ERR 101] Line 11:330 no viable alternative at input 'partnumber' in rule "CAS_12"

Я надеюсь, что вы, ребята, можете мне помочь .. Спасибо!


[Обновление]

Я нашел решение своей проблемы: после установки свойства EscapeQuotes в false текст в условных ячейках перенаправляется как есть в функцию eval. Таким образом, я могу программировать, используя DRL внутри ячеек.

Вот как установить свойство:

введите здесь описание изображения


person Nuker    schedule 15.10.2013    source источник
comment
Как вы получаете номер детали из вашего факта? Можете ли вы показать немного больше вашей таблицы решений?   -  person kaskelotti    schedule 15.10.2013


Ответы (1)


Я только что нашел решение:

Все, что мне нужно было сделать, это добавить EscapeQuotes=false в свойства таблиц решений. Таким образом, Drools не экранирует ", и текст, введенный в ячейку условия, будет использоваться как есть.

Спасибо за вашу помощь в любом случае!

person Nuker    schedule 15.10.2013
comment
Мне удалось столкнуться с точно таким же сообщением об ошибке, хотя мое состояние отличается. Где именно вы добавили свойство? - person kaskelotti; 16.10.2013
comment
И что я обнаружил в ходе своих поисков, так это то, что вы можете получить эту ошибку также, если в вашей локали используются кавычки (не ascii), которые не поддерживаются Drools. Некоторым удалось обойти эту проблему, экранировав сами строки, например partnumber str[startswith]\"ABC\". Однако у меня не сработало. - person kaskelotti; 16.10.2013
comment
Я обновил свой первый пост с решением и изображением, которое показывает, где установить свойство. Он находится в заголовке таблицы решений Drools. - person Nuker; 16.10.2013