2017-11-12 6 views
0

私は、Modifyキーワードを使用して無限ループをテストしています。キーワードを変更できません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 

私はルール2が再びルール2のRHSが再トリガされます期待していますが、それは一度だけ解雇されます。

誰でも理由を教えてください。

答えて

1
次の行を追加してDroolsの7中Kmodule.xmlで

無効にプロパティの反応:

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

最初の明らかな質問は、あなたのルールが実際に実行されていることを確信している場合です(愚かな質問のように聞こえるが、ここでは多くの問題を解決している)。

いくつかの他の関連する質問は以下のとおりです。Droolsののバージョンを使用している

  • PromotionFactはJavaクラスですか?またはあなたのDRLの定義された宣言?
  • kbaseでProperty Reactiveが有効になっているかどうか知りませんか?以前はバージョン< 7では無効になっていましたが、バージョン7はデフォルトで有効になっています。

は、それが役に立てば幸い

+0

1.Yesルールがfired.Iがこれを確認するためにSYSOUTを入れてきています。 2.はいPromotionFactはJavaクラスです。 3. PromotionFactには、不動産の反応が注釈されていません。 4. Droolsのバージョンは7.4.1です。最終的な –

+0

「問題」は* Reactive *が有効になっていると思います。無効にしてください。 –

+0

うん、あなたはチャンピオンです。プロパティの反応が問題でした。 –

関連する問題