2016-09-12 6 views
0

私はルールのために複数のパッケージをdroolsしています。各パッケージには異なるルールがあり、すべてのパッケージのルールをkmodule.xmlファイルに追加しました。 bpmns(ルールの各パッケージには異なるbpmnとruleflow-grouoがあります)、すべてのルールは異なるパッケージと異なるルールフローグループのルールでも起動されます。関連するdrlファイルを含む複数のKiebaseを作成したい(また、プログラムで動的に、そしてそれらをmeta-infフォルダに書き込むことではなく)。ひとたび私が必要とするものを決めると、セッションにkiebaseを追加する正しいbpmnを実行してください。これをどのように実装できますか?複数のKieBaseを作成してドループルでprogramaticllyを作成する

答えて

0

this other questionをご覧ください。 JavaでKieBasesをプログラムで作成する2つの方法があります。

は、たぶんこのスニペットはそれをあなたの方法をハックするあなたを刺激することができます

+0

私のdrlはそのように実行されていません(例外ではありません)。 kmodule.xmlを実行時に動的に作成するには、META-INFフォルダにあるデフォルトのものを使用せずに、どのようにして作成できますか? – arielb

0

、それがお役に立てば幸いです。私の場合は

KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); 

    String someRules = getRulesFromSomewhere(); // find your rules text here... 

    kbuilder.add(someRules, ResourceType.DRL); 


    if (kbuilder.hasErrors()) { 
     //in case of compiling errors 
     for (KnowledgeBuilderError error : kbuilder.getErrors()) { 
      LOG.error(error.toString()); 
     } 
    }else{ 

     kSession = kbuilder.newKnowledgeBase().newStatelessKieSession(); 

     //use your stateless ksession here! 
    } 

それらの「someRules」は、一つのテーブルからすべてのルールを取得するデータベースクエリから来ていますある基準に従ってこの種のコードを使用すると、異なるセットのルールに基づいて複数のkieSessionを簡単に作成できます。

関連する問題