2015-10-08 9 views
0

Все,Как использовать условную логику (или НЕ! Оператор) в Руководстве, управляемом Drools?

Am помощью Drools Workbench 6.2.0.Final декларативно создать Ведомые правила ...

Моя ситуация что-то вроде этого:

есть объект займа данных со следующими атрибутами:

  • состояние - Строка
  • сумма - двойной
  • InterestRate - двойной
  • сообщение - Строка
  • требование - булево

автоматически сгенерированное файл DRL является:

rule "Arizona" 
    when 
     loan : Loan(state == "Arizona", amount >= 1000 , amount <= 3000, 
        interestRate >= 0.15, interestRate <= 0.50) 
    then 
     loan.setRequirement(true); 
end 

Вопрос (ы):

(1) Как я могу декларативно используйте Редактор ведомых правил, чтобы установить следующее, когда это правило выходит из строя:

loan.setMessage("Allowed values for amount should be in the range of 1000 to 3000"); 

или

loan.setMessage("Allowed values for interest rate values should be in the range of 15% to 50%"); 

(2) Есть ли способ декларативно настроить SOAP Ответ:

например

<requirement>true</true> 

или

<requirement>false</requirement> 
<message>Allowed values for amount should be in the range of 1000 to 3000</message> 

или

<requirement>false</requirement> 
<message>Allowed values for interest rate values should be in the range of 15% to 50%</message> 

Не хотите сделать это программно ...

Спасибо всем ...

+0

Название не соответствует тексту вашего вопроса. – laune

ответ

0

Существует фундаментальное непонимание в том, как t его вопрос сформулирован, поскольку нет такого состояния, как «когда это правило терпит неудачу». Правило срабатывает, когда его условия соответствуют согласованному набору фактов, что может происходить любое количество раз для текущего набора фактов в рабочей памяти.

Есть, конечно, сценарии, когда правило не срабатывает - но даже с помощью простого правила, такого как «Аризона», существует более чем одна причина, по которой он терпит неудачу.

  1. В WM может не быть никаких заемных средств.
  2. В WM может быть факт ссуды, но с состоянием «Texas» (или любой другой 48 возможностей).
  3. Стоимость одного или обоих суммы и процентной ставки не находится в ожидаемой скобке.

Программа не может знать, что вас интересует только номер 3 (не говоря уже о подробном анализе, т. Е., это только одно или оба значения). Но программа может быть , чтобы узнать: просто реализовать все правила, определяющие причины неудачи, те, которые вас интересуют, что можно сделать (я думаю) с несколькими правилами для # 3.

Кажется, что ваш дизайн займа предусматривает только одно сообщение, но это может быть исправлено.

Дополнительная информация: a white paper on rule design patterns, section "Handling Failure to Match", которая слишком длинна в качестве ответа.

 Смежные вопросы

  • Нет связанных вопросов^_^