Я хочу использовать Drools для управления некоторыми вопросами в форме. В зависимости от ответа на вопрос, оценка вопроса обновляется со значением. Затем я хочу получить минимальное значение всех вопросов, заданных в категории.Как получить минимум обновленного значения в Drools?
Один пример:
Category "Replicant or not?":
You’re in a desert walking along in the sand when all of the sudden you look down, and you see a tortoise, crawling toward you. You reach down, you flip the tortoise over on its back. Why is that?
1. it was an error. (5 points).
2. It is the funniest think to do at a dessert. (3 points).
3. You want to kill the tortoise in the most painful way (1 point).
//More other questions.
В конце теста, минимальное значение для каждой категории будет использоваться один.
Тогда я определил некоторые Drools правила, чтобы определить счет для каждого из них (в таблице, на я ставлю правила перевода):
rule "Question_1"
when
$qs: Questions(checked == false);
$q: Question(category == 'cat1', question == "q1", answer == "a") from $qs.getQuestions();
then
$q.setValue(5);
$qs.setChecked(true);
update($qs);
end
checked
значение используется, чтобы избежать повторного использования правила при обновлении , category
, question
, answer
используются для классификации вопроса.
И потом, мое правило для расчета минимального является:
rule "Min value"
when
$qs: Questions(checked == true);
not q:Question($v: value; value < $v) from $qs.getQuestions();
then
$qs.setMinValue($v);
System.out.println("The smallest value is: "+ $v);
end
Ошибка полученный:
$v cannot be resolved to a variable
Тогда возникает вопрос: Как я могу получить минимальное значение величины установленное предыдущим правилом?
Ответы @EstebanAliverti отлично работают. Но ваше решение также делает это! – JorgeHortelano
Я согласен с этим ответом, потому что это быстрее, но решение EstebanAliverti также хорошо. – JorgeHortelano