I am new to Drools and started with basic example. I have very simple rule as below and it works fine.
rule "One"
when
m : Message( status == Message.HELLO, myMessage : message )
then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
rule "Two"
when
Message( status == Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
Message message = new Message();
message.setMessage("Hello World");
message.setStatus(Message.HELLO);
kSession.insert(message);
int rulesFired = kSession.fireAllRules();
But when I added ruleflow-group, rule is not getting executed.
rule "One"
ruleflow-group "dog"
when
m : Message( status == Message.HELLO, myMessage : message )
then
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
update( m );
end
rule "Two"
ruleflow-group "dog"
when
Message( status == Message.GOODBYE, myMessage : message )
then
System.out.println( myMessage );
end
with the rule flow group name added, with the same code rule is not getting fired.
When you use ruleflowGroup/agendaGroup we have to set focus on custom ruleflowgroup. In your code add below line:
kSession.getAgenda().getAgendaGroup("dog").setFocus();
Try with this approach..!!