4

決定表を使用して、drools の値の増減に基づいた単純なルールを実装したいと思います。

drl でルールを実装するのは簡単です。次に例を示します。

rules "less than"
when Example(value < 10)
then 
    System.out.println("Less than 10")
end

rules "equals"
when Example(value = 10)
then 
    System.out.println("Equals 10")
end

rules "greater than"
when Example(value > 10)
then 
    System.out.println("Greater than 10")
end

しかし、どうすればよだれの決定表に変換できますか? これまで見てきた例はすべて、条件セルで比較を行うものでした。値セルで比較することさえ可能ですか?

私が見たすべての例は、次の形式になっています。

CONDITION                          |  ACTION
Example                            |
value                              |
-----------------------------------|-------------------------------------
10                                 |  System.out.println("equals to 10")

しかし、それは1つのルールにのみ適用され、次のことを行うことはまったく異なる意味を持ちます:

CONDITION  | CONDITION  | CONDITION  | ACTION
Example
value      | value > $1 | value < $1 |
-----------+------------+------------+----------------
10         | 10         | 10         | ???

次のことを行うことさえ可能ですか?

CONDITION                          |  ACTION
Example                            |
value                              |
-----------------------------------+----------------------------------------
10                                 |  System.out.println("equals to 10")
> 10                               |  System.out.println("greater than 10")
< 10                               |  System.out.println("less than 10")

これらのルールを実装する正しい方法は何ですか?

4

3 に答える 3

7

制約フィールド セルに$paramだけを入力し、値セルに制約全体を入力することで、必要なことを達成できることがわかりました。したがって、決定表は次のようになります。

CONDITION                      | ACTION
Example                        |
$param                         | System.out.println("$param");
-------------------------------+-----------------------------------
value == 10                    | equals to 10
value > 10                     | greater than 10
value < 10                     | less than 10     
于 2012-07-08T21:08:08.830 に答える
1

あなたはこれを見ることができます

http://s11.postimage.org/oya6zxr83/Screenshot.png

ここでは、userlocationとuserからのカウントを取得し、カウントが各都市の初期カウントよりも少ないかどうかを確認し、条件が満たされた場合、ループはループ条件まで実行されます。

お役に立てば幸いです。

于 2013-02-06T11:16:00.423 に答える