2010/10/14 Navdeep Kumar <[email protected]> > Thanks for your reply...could you please tell me what is this myGlobal? > > java.util.Set<Rule> myGlobal
> 2010/10/13 Michael Anstis <[email protected]> > >> You could store all rules in a global and remove those that execute in an >> AgendaEventListener's activtionCreated event (re-adding those that get >> retracted by Truth Maintenance in the AgendaEventListeners >> activationCancelled event). >> >> //Loads rules >> KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); >> kbuilder.add(ResourceFactory.newClassPathResource("myrules.drl"), >> ResourceType.DRL); >> KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); >> Collection<KnowledgePackage> kpackages = kbuilder.getKnowledgePackages(); >> kbase.addKnowledgePackages(kpackages); >> >> //Get all rules >> for(KnowledgePackage kpackage : kpackages) { >> for(Rule rule : kpackage.getRules()) { >> myGlobal.add(rule); >> } >> } >> >> //The usual suspects >> StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); >> ksession.addEventListener(new DefaultAgendaEventListener() { >> @Override >> void activationCreated(ActivationCreatedEvent event) { >> myGlobal.remove(event.getActivation().getRule()); >> } >> >> @Override >> void activationCancelled(ActivationCancelledEvent event) { >> myGlobal.add(event.getActivation().getRule()); >> } >> }); >> >> ksession.fireAllRules(); >> >> You could also use an AgendaEventListener to better manage the contents of >> the Rule collection for more complex scenarios where Truth Maintenance could >> retract an activation - that the simpler solution above wold >> >> >> >> 2010/10/13 Navdeep Kumar <[email protected]> >> >>> Hi All, >>> >>> I am new to Drools. I am working on a project where nature of rules are >>> dynamic. I want to capture that rule which does not get executed. i need to >>> store that rule because i have to display that rule in the UI. >>> >>> Here is my rule file >>> >>> rule "FrontAxle:Capacity|FrontSuspension:Capacity" >>> >>> when >>> b:Feature(featureClass.name=="FrontSuspension") >>> c:Feature(featureClass.name=="FrontAxle") >>> //eval(b.getCapacity() >= c.getCapacity()) >>> then >>> System.out.println("These are compatible"); >>> System.out.println(b.getFeatureClass().getName()); >>> >>> availablity.put(b.getFeatureClass().getName()+"-"+c.getFeatureClass().getName(),"12.35"); >>> //availablity.put(b.getName()+"-"+c.getName(),new >>> Double(b.getCapacity())); >>> insert(availablity); >>> end >>> rule "FrontSuspension:Type|FrontAxle:Type" >>> when >>> b:Feature(featureClass.name=="FrontSuspension") >>> c:Feature(featureClass.name=="FrontAxle") >>> not Feature(b.attributes.Type=="I Beam" && c.attributes.Type=="Multi >>> Link Air") >>> //NOT (FrontAxle.type = "I-Beam" AND FrontSuspension.type = "Multi-link >>> Air") - mounting restriction >>> then >>> System.out.println("I am in 2"); >>> end >>> rule "FrontAxle:FeatureCode|FrontSuspension:Type" >>> when >>> b:Feature(featureClass.name=="FrontSuspension") >>> Feature(featureClass.name=="FrontAxle" && code=="002ASW")and not >>> Feature(b.attributes.Type=="Multi Link Air" || b.attributes.Type=="Monoleaf >>> Spring") >>> //FrontAxle.featureCode = "002ASW" AND NOT (FrontSuspension.type = >>> "Multi-link Air" OR FrontSuspension.type = "Monoleaf Spring") >>> then >>> System.out.println("I am in 3"); >>> end >>> >>> >>> >>> >>> >>> >>> now if these two objects named FrontAxle and FrontSuspension are >>> compatible then it has to meet all the 3 rules, but if any combination of >>> these objects does not meet one of the rule listed above then i have to >>> store the rule for the displaying purpose that this combination didn't meet >>> this rule thats why they are not compatible. any kind of help will be >>> appreciated. >>> >>> >>> >>> Thanks. >>> >>> _______________________________________________ >>> rules-users mailing list >>> [email protected] >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >> >> _______________________________________________ >> rules-users mailing list >> [email protected] >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users > >
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
