2012-03-18 6 views
0

BPMN2プロセスモデルでビジネスルールを統合する際に問題があります。ビジネスルールとのプロセスモデル接続

import com.sample.ProcessTest.User; 

rule "AgeCheck" 
ruleflow-group "AgeRules" 

when 
    u:User (u.getAge()<17) 
then 
    u.setName("Denied"); 
end 

私の問題は、私は2つのパラメータ年齢、名前を持っている、と私はルールを使用していない場合、私は上にそれらを渡すことができるということです。だから、私のプロセスは、DRLファイルは一つだけルールが含まれています。このenter image description here

のように見えますゲートウェイプロセス、スクリプトプロセスなどがありますが、ビジネスルールタスクを使用しているときは、このノードで停止します。私は、Eclipseから処理を開始してい

ksession.startProcess("_New.Process2", params); 
    System.out.println("Process started ..."); 
    ksession.fireAllRules(); 

I追加されたリソース、

kbuilder.add(ResourceFactory.newClassPathResource("Process2.bpmn2"), ResourceType.BPMN2); 
    kbuilder.add(ResourceFactory.newClassPathResource("AgeRules.drl"), ResourceType.DRL); 
rouleflow基はAgeRulesに設定されているRuleCheckerノードのプロパティで

と私は、次の結果を持っていますプロジェクトを実行しようとしているとき:

BEFORE PROCESS NODE TRIGGERED node:RuleChecker[id=5]  process:Process2[id=_New.Process2] 
    BEFORE RULEFLOW GROUP ACTIVATED group:AgeRules[size=0] 
    AFTER RULEFLOW GROUP ACTIVATED group:AgeRules[size=0] 
    AFTER PROCESS NODE TRIGGERED node:RuleChecker[id=5] process:Process2[id=_New.Process2] 
    AFTER PROCESS NODE TRIGGERED node:InputUser [id=2] process:Process2[id=_New.Process2] 

私はプロプロセスがルールチェッカーで停止するため、正確に消してください。 誰もが監査ログに示すように、エンジンは、RuleCheckerノードで停止していること、正常であるこの何が問題である私に説明してください

敬具、 Hunor-アッティラ・ケレークス

答えて

0

で私を助けることができる場合。ルールフローグループの一部としてアクティブ化されたルールが起動するまで待機します。あなたのコード断片ではfireAllRules()を呼び出しているようですが、アジェンダのリスナーも登録していますか?どのルールも起動していますか?または、ルールの有効化または無効化が表示されますか? fireAllRulesを呼び出す前にEclipseのデバッグビューを調べて、起動しているルールがあるかどうかを調べることは価値があるかもしれません。

+0

私の例にこのコード部分を追加することで、あなたの疑問が解決を早く見つけることができます: '新しいスレッド(新しいRunnable(){ } public void run(){ ksession.fireUntilHalt ); } })。start(); ' \t \t \t \t \t ksession.startProcess( "_ New.Process2"、params); ' –

関連する問題