2011-10-14 2 views
0

차단되었을 때 drools에서 perticular 값을 얻는 방법.drools 규칙은지도에서 값을 얻습니다.

나는 이런 식으로 뭔가를 찾고 있지만 작동하지 오전 : 나는 작업 메모리에 해시 맵을 삽입 한

$expiry_date:HashMap(get("CREDIT_CARD_EXPIRATION_DATE")); 
eval(ageInDays($expiry_date)>10) ; 

내가 오류 아래에 도착하면 그것을 검색하는

[42,37]: [ERR 101] Line 42:37 no viable alternative at input '"CREDIT_CARD_EXPIRATION_DATE"' in rule "Rule1" in pattern HashMap 

답변

0

일반적으로 해시 맵보다 형식화 된 객체를 삽입하는 것이 좋습니다. 처리하려는 정보를 설명 할 수 있으며 typed object 대신 hashmap을 삽입하는 이유는 무엇입니까?

난 당신이 뭔가를 할 수 있다는 확신 :

HashMap($expire: keys["CREDIT_CARD_EXPIRATION_DATE"]) 
eval(ageInDays($expire) > 10) 

나는 그것을 테스트하지 않았지만 더 많은 입력 된 사실을 삽입 할 수없는 경우에는 그 방향으로 보일 것입니다. 건배

3

지도/목록/배열의 경우 [] 구문을 사용하여 요소에 액세스 할 수 있습니다. 또한 Drools 5.3 이상을 사용하는 경우에는 기본적으로 진도가 근본적으로 중요하지 않습니다. Drools가 5.1/5.2로

rule X 
when 
    HashMap(ageInDays(this["CREDIT_CARD_EXPIRATION_DATE"]) > 10) 
then 
    ... 
end 

, 당신은 할 수 :

rule X 
when 
    HashMap(eval(ageInDays(this["CREDIT_CARD_EXPIRATION_DATE"]) > 10)) 
then 
    ... 
end 
관련 문제