Edson,
Thanks. I knew there was a better way, I just did not know about it.
Ron
Throwing exceptions in the consequence is not safe and not advisable.
To stop the rules engine you can use the following statement in your consequence:
drools.halt();
Use a fact, a call back, or an attribute to identify the problem you detected.
[]s
Edson2007/11/15, Ronald R. DiFrango <ron.difrango@gmail.com>:_______________________________________________All,
I have a situation where I want the rules execution to stop processing immediately when it encounters a situation like the following:
rule "Invalid RTV Line"
salience 100
when
rtvDetailLine : DetailLine(detailRtvNumber:rtvNumber != null, lineNumber != null )
rtvHeader : RtvHeader( rtvNumber != detailRtvNumber )
then
logger.debug("Invalid RTV Line");
throw new RuntimeException("Invalid RTV Line");
end
Basically this is a parent child relationship and under some circumstances the process that feeds data into the rules it corrupts this relationship. I want to stop the rules process immediately and do nothing further. As you see above, my first attempt is just throw a runtime exception that is caught/ logged and report by the calling program. Does this seem like a reasonable approach or is there a better approach to do this?
Ron
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @ www.jboss.com