1

BPMN2 プロセス モデルにビジネス ルールを統合する際に問題があります。だから私のプロセスは次のようになりますここに画像の説明を入力

drl ファイルには、ルールが 1 つだけ含まれています。

 import com.sample.ProcessTest.User;

 rule "AgeCheck"
 ruleflow-group "AgeRules"

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

私の問題は、Age と Name の 2 つのパラメーターがあることです。ルールを使用していない場合は、それらをゲートウェイやスクリプト プロセスに渡すことができますが、ビジネス ルール タスクを使用している場合は、このノードで停止します。

私は日食からプロセスを開始しています、

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

リソースを追加しましたが、

    kbuilder.add(ResourceFactory.newClassPathResource("Process2.bpmn2"), ResourceType.BPMN2);
    kbuilder.add(ResourceFactory.newClassPathResource("AgeRules.drl"), ResourceType.DRL);

RuleChecker ノードのプロパティで、rouleflow グループが AgeRules に設定されており、プロジェクトを実行しようとすると、次の結果が得られます。

    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]

プロセスがルールチェッカーで停止するため、何が問題なのか正確にはわかりません。誰かがこれで私を助けることができるなら、何が問題なのか説明してください

よろしく、 Hunor-Attila Kerekes

4

1 に答える 1

0

監査ログに示されているように、RuleChecker ノードでエンジンが停止するのは正常です。ルールフロー グループの一部としてアクティブ化されたルールが実行されるまで待機します。あなたのコード フラグメントでは、fireAllRules() を呼び出しているようですが、アジェンダ リスナーも登録していますか? また、ルールが実行されていますか? または、ルールのアクティブ化または非アクティブ化が表示されますか? fireAllRules を呼び出す直前に Eclipse のデバッグ ビューを調べて、アクティブ化されて実行されているルールがあるかどうかを確認することをお勧めします。

于 2012-03-18T22:53:01.440 に答える