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