2017-11-12 16 views
0

수정 키워드를 사용하여 무한 루프를 테스트하고 있습니다.수정 키워드가 작동하지 않습니다. Drools

그러나 규칙을 다시 트리거하지 않습니다.

규칙 1 :

rule "Entitle for promotion" 

when 
$i: EmployeeFinancialFact(rating==Rating.ONE.getRating()) 
then 
    PromotionFact $promotion=new PromotionFact($i.getEmpID(),$i.getEmpName()); 
    insert($promotion); 
end 

규칙 2 :

rule "Print EmployeeFinancialFact name entitled for promotion" 

when 
$p: PromotionFact() 
then 
modify($p) {setSentForApproval(true);} 
end 

나는 규칙이 다시 규칙이됩니다 다시 트리거를 RHS를 기대하고 있지만, 한 번만 해고한다 .

아무도 이유를 말해 줄 수 있습니까?

답변

1
다음 줄을 추가하여 Drools가 7 Kmodule.xml에서

해제 재산 반응 :

<configuration> 
    <property key="drools.propertySpecific" value="ALLOWED"/> 
</configuration> 
0

첫 번째 확실한 질문은 규칙이 실제로 실행되고 있다고 확신하는 경우입니다 (어리석은 질문처럼 들리지만 여기서 많은 문제를 해결했습니다).

일부 다른 관련 질문은 다음과 같습니다

  • 당신이 사용하는 Drools가의 버전?
  • PromotionFact은 자바 클래스입니까? 또는 귀하의 DRL에 정의 된 선언?
  • kbase에서 Property Reactive이 활성화되어 있는지 알고 계십니까? 이전 버전 인 <에서는 사용할 수 없지만 버전 7은 기본적으로 사용 가능하므로

는 희망이 도움이

+0

1.Yes 규칙 해고시켜이를 확인하기 위해 SYSOUT을 넣어지고있다 . 2. 예 PromotionFact는 Java 클래스입니다. 3. PromotionFact에는 사후 처리되는 속성이 주석으로 표시되지 않습니다. 4. Drools 버전은 7.4.1.final –

+0

입니다. "문제"는 * Reactive * 속성이 활성화 된 것 같습니다. 비활성화하십시오. –

+0

그래, 너 챔피언이야. 부동산 반응이 문제였습니다. –