2016-08-10 7 views
1

나는 인터넷에서 몇 가지 기사를 찾고있다. 그러나 지금까지 나의 필요성에 대해 너무 명백한 것을 발견하지 못했다.여러 가지 사실을 가진 Drools 규칙 구현

나는 지각을 위해서 - 단순한 사례 평가가 아닙니다.

rule "Send email E-mail based on rule evaluation" 
/* 
If 
    kind is equal 1 or 2 AND 
    code is equal 1 or 341 AND 
    payment is equal S 
    I do whatever I need to do 
*/ 
when 
    $item : Item((kind == 1 || kind == 2),(code == 1 || code == 341),payment = S); 
then 
    //do whatever I need to do 
end 

어려움은 날짜 제한처럼 작동하는 새로운 평가 조건 추가하는 것입니다 (최신 영업일을 따라서는 정적되지 않습니다) 및 규칙 (kSession.insert를 사용하여 공급하는 내 코드에 의해 제공해야합니까?). 그런 다음 항목의 issueDate가 작 으면 (내 최신 영업일 이전 날짜) 비교를 수행해야합니다.

가능합니까? 방법?

답변

0

이는 issueDate의 표현 방법에 따라 다릅니다. 정수 yyyyddd로 표현한다고 가정 해 보겠습니다. 여기서 yyyy는 연도이고 ddd는 해당 연도의 요일입니다. 그런 다음 필드 하루 (동일한 유형 및 형식)로 다른 클래스 제한을 만들고 적절한 객체를 삽입하고 규칙을 작성하십시오.

rule "issue Date" 
when 
    Limit($day: day) 
    Item(kind == 1 || == 2, code == 1 || == 341 , payment == 123, 
      issueDate < day) 
then 
    // ... 
end 

물론 많은 다른 날짜 표현도 마찬가지로 작동합니다.