2013-09-30 4 views
0

나는 drools 규칙의 LHS (왼손잡이 쪽)에서 최소 두 변수를 찾고 싶습니다. 예를 들어 :졸음 규칙에서 두 변수의 최소 규칙

$variable1 : // Some value generation lines 
$variable2 : // Some value generation lines 
// This doesn't work 
$minimumOfVariable1And2 : min($variable1,$variable2) 

그래서 최소가 발견되는 방법, 질문입니다. 감사.

답변

2

한 가지 방법 :

when 
    FactA($a : a, ...) 
    FactB($b : b, ...) 
    FactC(c < Math.min($a, $b), ...) 
then 
    ... 

또 다른 방법 :

when 
    FactA($a : a, ...) 
    FactB($b : b, ...) 
then 
    int c = Math.min($a, $b); 
    ... 

지금, 그것은 재미가 될 때 FACTA 및 FactB는 동일한 유형의 경우 :

when 
    Assignment($a : a, ...) 
    Assignment(a < $a, ...) 
    // $a this the minimum 
then 
    ... 

때문에 2 경우 배정은 동일한 a를가집니다.이 규칙은 두 번 일치합니다 (A1-A2에 한 번, A2-A1에 한 번).