私は drool を初めて使用します。fire all rules を呼び出した後にオブジェクトを更新すると、drools ファイルと同じようにルールが起動されますか?
お気に入り
rule "Hello World"
no-loop true
when
message:Message (type=='Hello')
then
modify(message){
setType("Hi")//Fires other rule below
}
message.setMsgtext("Msg: Hello World, Drools");
System.out.println("Hello World, Drools!");
end
rule "Hi World"
when
message:Message (type=='Hi')
then
modify(message){
setType("Hello")
}
System.out.println("Hi World, Drools!");
end
一方、JAVA コードでは、
Message msg = new Message();
msg.setType("Hello");
//sessionObject = rbase.newStatefulSession();
sessionObject.insert(msg);
sessionobject.fireAllrules();
msg.setType("Hi"); //Here can it fire the rule? for me its not doing it
起動しない場合、drool エンジンは msg を Java ランタイム オブジェクトとはまったく異なるセッション オブジェクトとして保持するので、影響を受けません。背後にある概念でない場合は、理解してください
ありがとうチャクリ