A ruleflow actually just presents a set of rules
that you want to evaluate (and you use a ruleflow to specify the order).
You can define yourself when to execute those rules by invoking startProcess
whenever necessary. It is possible to have multiple (possibly unrelated)
ruleflows in one rulebase, you might start the same ruleflow multiple times or
even concurrent (although we still have to look for good examples for those
advanced use cases ;)).
If you would like to "hide" the use of
ruleflow-groups for your rule editors / programmers, there are a few things you
can do:
- If you don't like calling startProcess
using code, you can just use rules that define when a ruleflow should be
started. For example, if you want your ruleflow to start after calling
fireAllRules(), add the following rule:
rule
"MyRule"
when
then
drools.getWorkingMemory().startProcess("com.sample.ruleflow");
end
You can easily add more conditions in the when part
if you like to only start the ruleflow under certain circumstances
- It appears you would like to specify some
kind of default ruleflow-group for a package of rules, so that all rules in that
package are automatically added to that ruleflow-group (and rule editors don't
have to specify it with every rule they write). I guess we could support
something like this
package com.sample;
ruleflow-group
"my_group"
rule "my_rule" # this rule
automatically uses ruleflow-group "my_group"
when
...
end
rule
"my_second_rule" ruleflow-group "my_second_group" # this
rule overrides the default ruleflow-group
when
...
end
- You can still combine normal rules (without
ruleflow-group) with ruleflows. Rules that have no ruleflow-group still
behave like they used to do, so they will be executed when fireAllRules() is
called.
Kris
----- Original Message -----
From: Felipe
Piccolini
To: Rules Users List
Sent: Wednesday, August 08, 2007 6:56
PM
Subject: Re: [rules-users] RuleFlow group as default or
MAIN?
Well.... I guess I got it wrong... startProcess is not about
what ruleflow-group start the process, is about what ruleflow
definition
start firing all rules... but this leads me to the point that this
is useful if you have several ruleflows (definitions and files) in the
same
ruleBase... why somebody would like to have that?... to control flow? or
to try to fire a specific rule and then fire subsequent rules
in a
flow?...
My problem is that I dont wanna have many ruleflows
definitions for 1 ruleBase, if I would, then I'll use sub-flows...
If I have
just 1 ruleflow file, then I dont wanna do startProcess() and I still wanna put
rules without ruleflow-group defined so they all
belong to the MAIN/DEFAULT
group.
Thanks.
On 08-08-2007, at 12:33, Felipe Piccolini
wrote:
Is there anyway to set a default ruleflow-group or a MAIN one
so I can put rules without
ruleflow-group in the same drl as those with
ruleflow-group defined and use a .rf where I define
a flow in the way that
all rules without ruleflow-group (MAIN/DEFAULT) are fired and then a
specific
ruleflow-group?
In this way could be not necessary to use
session.startProcess("my_ruleflowgroup") in java, just
call fireAllRules()
and design the process creating a RuleFlowGroup called/id as
"MAIN".
Actually I can do this programatic, but I'm forced to put
ruleflow-group in every rule... if I dont wanna to
group some rules in a
specific ruleflow-group I have to call them as ruleflow-group "MAIN"... and I
dont
wanna the business people to worry about flows when they write rules if
they dont need
to...
Thanks.
Felipe Piccolini
M.
felipe.piccolini@bluesoft.cl
_______________________________________________
rules-users
mailing
list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
Felipe Piccolini
M.
felipe.piccolini@bluesoft.cl
_______________________________________________
rules-users
mailing
list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users