[rules-users] Dynamic Rules and Eval
k
rrdh at gmx.net
Sun Jul 14 13:52:46 EDT 2013
Hi,
basically it's the same problem this guy had
http://stackoverflow.com/questions/11485122/non-template-dynamic-rules-in-drools
<http://stackoverflow.com/questions/11485122/non-template-dynamic-rules-in-drools>
, but the links in that question don't work.
I'd like to dynamically add rules to a running session, but can use 'eval'
only in the very first one. If I add a second rule like the following, it
won't execute:
---
String test2 =
"\nrule id4" +
"\nwhen" +
"\neval(0 == 0)" + // if this eval is removed, "done2" is inserted
"\nthen" +
"\ninsertLogical( \"done2\" );" +
"\nend";
kbuilder.add(ResourceFactory.newByteArrayResource(test2.getBytes()),
ResourceType.DRL);
session.getKnowledgeBase().addKnowledgePackages(kbuilder.getKnowledgePackages());
fired = session.fireAllRules();
System.out.println(fired); // 0
effects = session.getObjects();
assertTrue("fired", effects.contains("done2")); // fails
---
You can see the complete Test at http://codetidy.com/6206/
I'm also not sure if this is the correct way to dynamically add rules, so
please let me know, if there's a better way to add rules from strings.
How can I dynamically add new rules to a running session and still use eval?
--
View this message in context: http://drools.46999.n3.nabble.com/Dynamic-Rules-and-Eval-tp4024908.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
More information about the rules-users
mailing list