0

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

4

2 に答える 2

-1

この他の質問を見てください。そこには、Java で KieBases をプログラムで作成する 2 つの方法があります。

それが役に立てば幸い、

于 2016-09-12T15:54:34.983 に答える
-1

たぶん、このスニペットは、あなたのやり方でハックするきっかけになるかもしれません:

    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」は、特定の基準に従って 1 つのテーブルからすべてのルールを取得するデータベース クエリから取得されます。この種のコードを使用して、さまざまなセット os ルールに基づいて複数の kieSession を簡単に作成できます。

于 2016-09-22T20:52:28.000 に答える