[rules-users] Fire Rules in DT based on a rule in DT
Hi, I have the following scenario. SCENARIO (simplified for discussion from actual blown up scenario) - 1. A decision table (DT) with rules for all types of employees - Call it Common DT 2. The DT mentioned in Point 1 has a condition that fetched data depending on Type Of Employee 3. There are other decision tables that would like to use the the rules from Common DT, but here are the challenges: Challenges -- 1. Decision does not support Agenda Groups 2. Using a fact; to hold the evaluated result from a DT can pass it from a child to a parent; but it requires an update(); which can cause infinite recursion if i dont have a Execute ONE Rule Only from Table decision variable. (Parent) DT - Condition 1, condition 2, Condition 3 (Actually result of Child DT) (Child DT) ... The relation is maintained using decision variables. This relation works perfenctly good (been working for 3 months now), but issue is it creates a Sort of a Tree (with each node a DT); in shich I cannot fire a common set of rules from Any Node. As an alternative; I'm suggesting to the client to write replicated DT's for each type of employee instead of 1 generic DT. Can anyone help? I've been begging for agenda Groups in decision tables but I guess you guys are tied up. So at a design level can you suggest a work around? Thanks, Arjun ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] create .pkg file with or without BRMS
Hi, I'm using BRMS to generate a .pkg for an application i need to generate the same file without BRMS: i'm trying to use a drools-ant task, but, pkg file generated with drools-ant task is not the same !!! i don't found a specific documentation to do that ? Somebody can help me please ? thanks for your help project default=rules property name=eclipsepath value=/ path id=qirules.classpath pathelement location=${eclipsepath}../install/*/ /path path id=drools.classpath fileset dir=${eclipsepath}../ include name=**/*.jar/ /fileset pathelement location=target/ /path taskdef name=rulebase classname= org.drools.contrib.DroolsCompilerAntTask classpathref=drools.classpath / target name=rules rulebase srcdir=${eclipsepath}../rules/ tofile=${eclipsepath}../rules/FLIResultsUpdateRules.pkg classpathref=qirules.classpath include name=*.drl / /rulebase /target /project ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Fire Rules in DT based on a rule in DT
I added agenda-group to decision tables in September 2006. cheers Steve On Nov 14, 2007 6:50 PM, Arjun Dhar [EMAIL PROTECTED] wrote: Hi, I have the following scenario. SCENARIO (simplified for discussion from actual blown up scenario) - 1. A decision table (DT) with rules for all types of employees - Call it Common DT 2. The DT mentioned in Point 1 has a condition that fetched data depending on Type Of Employee 3. There are other decision tables that would like to use the the rules from Common DT, but here are the challenges: Challenges -- 1. Decision does not support Agenda Groups 2. Using a fact; to hold the evaluated result from a DT can pass it from a child to a parent; but it requires an update(); which can cause infinite recursion if i dont have a Execute ONE Rule Only from Table decision variable. (Parent) DT - Condition 1, condition 2, Condition 3 (Actually result of Child DT) (Child DT) ... The relation is maintained using decision variables. This relation works perfenctly good (been working for 3 months now), but issue is it creates a Sort of a Tree (with each node a DT); in shich I cannot fire a common set of rules from Any Node. As an alternative; I'm suggesting to the client to write replicated DT's for each type of employee instead of 1 generic DT. Can anyone help? I've been begging for agenda Groups in decision tables but I guess you guys are tied up. So at a design level can you suggest a work around? Thanks, Arjun ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Steven Williams Supervising Consultant Object Consulting Office: 8615 4500 Mob: 0439 898 668 Fax: 8615 4501 [EMAIL PROTECTED] www.objectconsulting.com.au consulting | development | training | support our experience makes the difference ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] RE: how to find duplicate inlineeval
Edson, As you said i used inline eval. But am getting erroe message like this can't be used in static context.am using statelesssession to assert my objects. i also put eval(this!=obj1) as follows. $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) eval($obj2!= $obj1) Though my references are different the rule is not firing Thanks and Regs Basha From: [EMAIL PROTECTED] on behalf of Edson Tirelli Sent: Tue 11/13/2007 9:35 PM To: Rules Users List Subject: Re: [rules-users] RE: how to find duplicate Sikkandar, The only way to check for identity is to use an inline eval and use java code to check that: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) then Another option is to configure your rulebase to not allow the same object to be matched by more than one pattern in your rules. To do that you can either set a system property: drools.removeIdentities = true Or you can use drools API: RuleBaseConfiguration conf = new RuleBaseConfiguration(); conf.setRemoveIdentities( true ); RuleBase rulebase = RuleBaseFactory.newRuleBase( conf ); If you do that, your rule can be written as this: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name) then Since the engine will never allow the same fact to simultaneously match both patterns. []s Edson 2007/11/13, Sikkandar Nawabjan [EMAIL PROTECTED]: Hi, am passing list of objects to working memory. i want to fire the rule if there is any duplicate objects in the list i write code like this when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name,this!=$obj1) then fire rule Now the problem lies at this!=objj1(a highlighted check). i put this to avoid a object check with itself. But this is internally calling equals method of the corresponding object and always return true. Because i overriden equals method in the Object itself so at the end the rule won't fire even if there is a duplicate object. how i can solve this equals(Object obj){ if(this.id=obj.id this.name==obj.name) return true; else return false; } From: [EMAIL PROTECTED] on behalf of [EMAIL PROTECTED] Sent: Tue 11/13/2007 2:04 AM To: rules-users@lists.jboss.org Subject: rules-users Digest, Vol 12, Issue 27 Send rules-users mailing list submissions to rules-users@lists.jboss.org To subscribe or unsubscribe via the World Wide Web, visit https://lists.jboss.org/mailman/listinfo/rules-users or, via email, send a message with subject or body 'help' to [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] You can reach the person managing the list at [EMAIL PROTECTED] When replying, please edit your Subject line so it is more specific than Re: Contents of rules-users digest... Today's Topics: 1. Re: Drools and jBPM integration (Fabian Weisensee) 2. Re: java.lang.OutOfMemoryError: Java heap space (Edson Tirelli) 3. Re: Drools and jBPM integration (Mark Proctor) 4. Re: Drools and jBPM integration (Mark Proctor) -- Message: 1 Date: Mon, 12 Nov 2007 18:23:06 +0100 From: Fabian Weisensee [EMAIL PROTECTED] Subject: Re: [rules-users] Drools and jBPM integration To: Rules Users List rules-users@lists.jboss.org mailto:rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1; format=flowed Yes, thanks for your help. I'll try your suggestion for #2. I resolved the deployment problem by myself. It was just a mistake with the JBoss ESB deploying... But now I have another problem. The rule file is found, but there seem to be some problems with the parser. The FireRulesActionHandler class from the jbpm wiki uses the following code: RuleBaseImpl ruleBase = new RuleBaseImpl(); ruleBase.addPackage(pkg); But the RuleBaseImpl class doesn't seem to be part of drools anymore. I looked at the javadocs to find a replacement. I've found the RuleBaseLoader class which looked like what I needed. I replaced the two lines with this: RuleBaseLoader rbl = RuleBaseLoader.getInstance(); RuleBase
Re: [rules-users] RE: how to find duplicate inlineeval
Sorry, you lost me. What is the error message? Can you send us a self contained test showing the problem you are having? []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED]: Edson, As you said i used inline eval. But am getting erroe message like this can't be used in static context.am using statelesssession to assert my objects. i also put eval(this!=obj1) as follows. $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) eval($obj2!= $obj1) Though my references are different the rule is not firing Thanks and Regs Basha From: [EMAIL PROTECTED] on behalf of Edson Tirelli Sent: Tue 11/13/2007 9:35 PM To: Rules Users List Subject: Re: [rules-users] RE: how to find duplicate Sikkandar, The only way to check for identity is to use an inline eval and use java code to check that: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) then Another option is to configure your rulebase to not allow the same object to be matched by more than one pattern in your rules. To do that you can either set a system property: drools.removeIdentities = true Or you can use drools API: RuleBaseConfiguration conf = new RuleBaseConfiguration(); conf.setRemoveIdentities( true ); RuleBase rulebase = RuleBaseFactory.newRuleBase( conf ); If you do that, your rule can be written as this: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name) then Since the engine will never allow the same fact to simultaneously match both patterns. []s Edson 2007/11/13, Sikkandar Nawabjan [EMAIL PROTECTED]: Hi, am passing list of objects to working memory. i want to fire the rule if there is any duplicate objects in the list i write code like this when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name,this!=$obj1) then fire rule Now the problem lies at this!=objj1(a highlighted check). i put this to avoid a object check with itself. But this is internally calling equals method of the corresponding object and always return true. Because i overriden equals method in the Object itself so at the end the rule won't fire even if there is a duplicate object. how i can solve this equals(Object obj){ if(this.id=obj.id this.name==obj.name) return true; else return false; } From: [EMAIL PROTECTED] on behalf of [EMAIL PROTECTED] Sent: Tue 11/13/2007 2:04 AM To: rules-users@lists.jboss.org Subject: rules-users Digest, Vol 12, Issue 27 Send rules-users mailing list submissions to rules-users@lists.jboss.org To subscribe or unsubscribe via the World Wide Web, visit https://lists.jboss.org/mailman/listinfo/rules-users or, via email, send a message with subject or body 'help' to [EMAIL PROTECTED] mailto: [EMAIL PROTECTED] You can reach the person managing the list at [EMAIL PROTECTED] When replying, please edit your Subject line so it is more specific than Re: Contents of rules-users digest... Today's Topics: 1. Re: Drools and jBPM integration (Fabian Weisensee) 2. Re: java.lang.OutOfMemoryError: Java heap space (Edson Tirelli) 3. Re: Drools and jBPM integration (Mark Proctor) 4. Re: Drools and jBPM integration (Mark Proctor) -- Message: 1 Date: Mon, 12 Nov 2007 18:23:06 +0100 From: Fabian Weisensee [EMAIL PROTECTED] Subject: Re: [rules-users] Drools and jBPM integration To: Rules Users List rules-users@lists.jboss.org mailto: rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=ISO-8859-1; format=flowed Yes, thanks for your help. I'll try your suggestion for #2. I resolved the deployment problem by myself. It was just a mistake with the JBoss ESB deploying... But now I have another problem. The rule file is found, but there seem to be some problems with the parser. The FireRulesActionHandler class from the jbpm wiki uses the following code: RuleBaseImpl ruleBase = new RuleBaseImpl(); ruleBase.addPackage(pkg); But the RuleBaseImpl class doesn't seem to be part of drools anymore. I looked at the javadocs to find a replacement. I've found the RuleBaseLoader class which looked like what I needed. I replaced the two lines with this:
[rules-users] RE: Duplicate check using dialect
i just use this sort of rule rule Hello World dialect mvel when m : Message( $message1 : message ) mdup : Message($message2:message==$message1,eval(this!=m) ) then System.out.println(Rule Fired+m +::+mdup ); System.out.println(Rule Fired+$message1 +::+$message2 ); end if i put rule parameter dialect MVEL the error this should be used in static context is gone. But now the rule is firing whatever may be the data i assert 2 objects with message Hello and Hello1. still the rule is firing(2 times). Thanks and regs, basha Message: 1 Date: Wed, 14 Nov 2007 09:48:02 -0200 From: Edson Tirelli [EMAIL PROTECTED] Subject: Re: [rules-users] RE: how to find duplicate inlineeval To: Rules Users List rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=iso-8859-1 Sorry, you lost me. What is the error message? Can you send us a self contained test showing the problem you are having? []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED]: Edson, As you said i used inline eval. But am getting erroe message like this can't be used in static context.am using statelesssession to assert my objects. i also put eval(this!=obj1) as follows. $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) eval($obj2!= $obj1) Though my references are different the rule is not firing Thanks and Regs Basha From: [EMAIL PROTECTED] on behalf of Edson Tirelli Sent: Tue 11/13/2007 9:35 PM To: Rules Users List Subject: Re: [rules-users] RE: how to find duplicate Sikkandar, The only way to check for identity is to use an inline eval and use java code to check that: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) then Another option is to configure your rulebase to not allow the same object to be matched by more than one pattern in your rules. To do that you can either set a system property: drools.removeIdentities = true Or you can use drools API: RuleBaseConfiguration conf = new RuleBaseConfiguration(); conf.setRemoveIdentities( true ); RuleBase rulebase = RuleBaseFactory.newRuleBase( conf ); If you do that, your rule can be written as this: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name) then Since the engine will never allow the same fact to simultaneously match both patterns. []s Edson winmail.dat___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] RE: Duplicate check using dialect
Sorry, my mistake. this is a reserved word in java (duh!!), and so you need to use your own binding: m : Message( $message1 : message ) mdup : Message($message2:message==$message1,eval(mdup != m) ) You can't use mvel dialect, because in MVEL the operators == and != will call the equals() method anyway. Other than that, it is working just fine for me: rule Find duplicates salience 10 when $f1 : Message( $m1 : message ) $f2 : Message( $m2 : message == $m1, eval( $f1 != $f2 ) ) then System.out.println( FIRED DUPLICATE: ); System.out.println( $f1 = +$f1+ [ message=+$m1+ ] ); System.out.println( $f2 = +$f2+ [ message=+$m2+ ] ); end rule Find differents when $f1 : Message( $m1 : message ) $f2 : Message( $m2 : message != $m1 ) then System.out.println( FIRED DIFFERENT: ); System.out.println( $f1 = +$f1+ [ message=+$m1+ ] ); System.out.println( $f2 = +$f2+ [ message=+$m2+ ] ); end The code to insert facts is: Message message1 = new Message(); message1.setMessage( Hello World ); workingMemory.insert( message1 ); Message message2 = new Message(); message2.setMessage( Hello World ); workingMemory.insert( message2 ); Message message3 = new Message(); message3.setMessage( Hello Bob ); workingMemory.insert( message3 ); workingMemory.fireAllRules(); And the result is: FIRED DUPLICATE: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DUPLICATE: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello Bob ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello Bob ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello Bob ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello Bob ] []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED]: i just use this sort of rule rule Hello World dialect mvel when m : Message( $message1 : message ) mdup : Message($message2:message==$message1,eval(this!=m) ) then System.out.println(Rule Fired+m +::+mdup ); System.out.println(Rule Fired+$message1 +::+$message2 ); end if i put rule parameter dialect MVEL the error this should be used in static context is gone. But now the rule is firing whatever may be the data i assert 2 objects with message Hello and Hello1. still the rule is firing(2 times). Thanks and regs, basha Message: 1 Date: Wed, 14 Nov 2007 09:48:02 -0200 From: Edson Tirelli [EMAIL PROTECTED] Subject: Re: [rules-users] RE: how to find duplicate inlineeval To: Rules Users List rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=iso-8859-1 Sorry, you lost me. What is the error message? Can you send us a self contained test showing the problem you are having? []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED]: Edson, As you said i used inline eval. But am getting erroe message like this can't be used in static context.am using statelesssession to assert my objects. i also put eval(this!=obj1) as follows. $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) eval($obj2!= $obj1) Though my references are different the rule is not firing Thanks and Regs Basha From: [EMAIL PROTECTED] on behalf of Edson Tirelli Sent: Tue 11/13/2007 9:35 PM To: Rules Users List Subject: Re: [rules-users] RE: how to find duplicate Sikkandar, The only way to check for identity is to use an inline eval and use java code to check that: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) then Another option is to configure your rulebase to not allow the same object to be matched by more than one pattern in your rules. To do that you can either set a system property: drools.removeIdentities = true Or you can use drools API: RuleBaseConfiguration conf = new RuleBaseConfiguration(); conf.setRemoveIdentities( true ); RuleBase rulebase = RuleBaseFactory.newRuleBase( conf ); If you do that, your rule can be written as this: when $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name) then Since the engine will never allow the same fact to simultaneously match both patterns. []s Edson
[rules-users] howto BRMS - already stuck at fact model loading
Hey all, new to BRMS as trying to learn how this works. My usecase is to take an existing, working EJB3 application and migrate some of the complex rules over to be managed by BRMS. However, initial attempts over the course of a couple of days have yielded zero results. When trying to follow http://downloads.jboss.com/drools/docs/4.0.3.15993.GA/html_single/index. html#d0e5301, they want you to load a fact model. I take an existing EJB3 entity bean and it loads fine. There doesn't seem anything more for me to do, or to verify this is o.k. or not. So, then I move to the rule editors, and nothing works - not able to use the guided editor at all, and using the DSL text editor with the 'model/entity' from the jar isn't recognized. Now, I admit ignorance, and I would like some direction as to how to best learn to use BRMS. There were a couple mentions of a drools-examples-brms, but it just can not be found. Following the documentation mentioned above is only guidelines without any good examples leaving one easily lost. http://www.google.com/search?q=drools-example-brms http://www.nabble.com/forum/Search.jtp?query=jbrms+examplelocal=yforum =11822daterange=0startdate=enddate= http://labs.jboss.com/drools/downloads.html http://labs.jboss.com/drools/livetrails/index.html So - where can one go to learn how to use BRMS to help convert an existing EJB3 application to use Drools and BRMS? Thanky, -D ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Is InternalRuleBase safe to use?
Hi, re:Drools 4.0.3 I want/need to use ConsequenceExceptionHandler for exception handling. I'd like to be able to get the ConsequenceExceptionHandler from a StatefulSession. The only way I see to get the handler relies on InternalRuleBase. The JavaDoc at http://downloads.jboss.com/drools/docs/_ 4.0.3.15993.GA/apidocs/org/drools/common/InternalRuleBase.html does not have any annotation that it is internal use only. However the naming convention sure makes me this this is a bad idea. Any alternatives to the following code to retrieve the ConsequenceExceptionHandler? InternalRuleBase thisSmellsLikeABadIdea= (InternalRuleBase) wm.getRuleBase(); DroolsExceptionHandler deh = (DroolsExceptionHandler) thisSmellsLikeABadIdea.getConfiguration().getConsequenceExceptionHandler(); ListException exceptions = deh.getExceptions(); (Where DroolsExceptionHandler is package droolsconfig; import java.util.ArrayList; import java.util.List; import org.drools.WorkingMemory; import org.drools.spi.Activation; import org.drools.spi.ConsequenceExceptionHandler; public class DroolsExceptionHandler implements ConsequenceExceptionHandler { ListException exceptions = new ArrayListException(); public DroolsExceptionHandler() { } public void handleException(Activation activation, WorkingMemory workingMemory, Exception exception) { exceptions.add(exception); } public ListException getExceptions() { return exceptions; } } ) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] create .pkg file with or without BRMS
I think the DroolsCompilerAntTask generates a serialized RuleBase, not a Package. Linh Arnaud Bouzinac wrote: Hi, I'm using BRMS to generate a .pkg for an application i need to generate the same file without BRMS: i'm trying to use a drools-ant task, but, pkg file generated with drools-ant task is not the same !!! i don't found a specific documentation to do that ? Somebody can help me please ? thanks for your help project default=rules property name=eclipsepath value=/ path id=qirules.classpath pathelement location=${eclipsepath}../install/*/ /path path id=drools.classpath fileset dir=${eclipsepath}../ include name=**/*.jar/ /fileset pathelement location=target/ /path taskdef name=rulebase classname= org.drools.contrib.DroolsCompilerAntTask classpathref=drools.classpath / target name=rules rulebase srcdir=${eclipsepath}../rules/ tofile=${eclipsepath}../rules/FLIResultsUpdateRules.pkg classpathref=qirules.classpath include name=*.drl / /rulebase /target /project ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://www.nabble.com/create-.pkg-file-with-or-without-BRMS-tf4803289.html#a13749958 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] XML Import Sample
http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/xml/ sorry forgot the link ;) On 11/14/07, Fernando Meyer [EMAIL PROTECTED] wrote: Hi, All that you need is understand the drools' xml unit tests. Regards . On 11/14/07, MHersey [EMAIL PROTECTED] wrote: I'm new to Drools and am looking into using the XmlPackageReader to import XML rules. Can someone point me to some sample code? I've found a few snippets from different projects but the information is disconnected. Thanks for any pointers to a noob. Michael -- View this message in context: http://www.nabble.com/XML-Import-Sample-tf4806317.html#a13750536 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Fernando Meyer http://fmeyer.org JBoss Rules Core Developer [EMAIL PROTECTED] -- Fernando Meyer http://fmeyer.org JBoss Rules Core Developer [EMAIL PROTECTED] ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] XML Import Sample
Hi, All that you need is understand the drools' xml unit tests. Regards . On 11/14/07, MHersey [EMAIL PROTECTED] wrote: I'm new to Drools and am looking into using the XmlPackageReader to import XML rules. Can someone point me to some sample code? I've found a few snippets from different projects but the information is disconnected. Thanks for any pointers to a noob. Michael -- View this message in context: http://www.nabble.com/XML-Import-Sample-tf4806317.html#a13750536 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Fernando Meyer http://fmeyer.org JBoss Rules Core Developer [EMAIL PROTECTED] ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] XML Import Sample
I'm new to Drools and am looking into using the XmlPackageReader to import XML rules. Can someone point me to some sample code? I've found a few snippets from different projects but the information is disconnected. Thanks for any pointers to a noob. Michael -- View this message in context: http://www.nabble.com/XML-Import-Sample-tf4806317.html#a13750536 Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Another rule vendor being acquired
I hope it is interesting to the community to consider the second business rules vendor acquisition within the last 30 days. Haley Systems (www.haley.com), the company that I founded many years ago (hopefully, some of you have heard of it!), is in the process of being acquired by Ruleburst. I am not going with the acquisition but have started up my own vendor neutral business practice in which I anticipate helping improve and support Drools and the emerging standards in rules and web semantics. See http://www.ad-hoc-news.de/CorporateNews/en/14178920/RuleBurst-Acquires-US-Bu siness-Rules-Technology-Vendor Regards, Paul image002.jpg Paul V Haley.vcf Description: Binary data ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] create XML rules with XML parser
Hi all, I want to create automatically the xml containing the rules using a parser like castor, which .xsd I have to use to generate the appropriate java class? Can someone give me some indications? Thanks Raffo ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] create XML rules with XML parser
Hi, If you mean the appropriate rule then use the following xsd http://anonsvn.labs.jboss.com/labs/jbossrules/trunk/drools-compiler/src/main/resources/META-INF/drools-4.0.xsd Regards On 11/14/07, Raffaele Viola [EMAIL PROTECTED] wrote: Hi all, I want to create automatically the xml containing the rules using a parser like castor, which .xsd I have to use to generate the appropriate java class? Can someone give me some indications? Thanks Raffo ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Fernando Meyer http://fmeyer.org JBoss Rules Core Developer [EMAIL PROTECTED] ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] mvel regex not working???
Hi, I have an email validation regex where the mvel matches doesn't seem to work. I have created 2 rules where test1 uses the Java String matches and test2 uses the mvel matches. Test1 works but test2 doesn't. I am using Drools 4.0.3 and JDK 1.6.0_02. rule Test1 when // This works email : String() eval( !email.matches( ^[a-zA-Z0-9\\!\\#\\$\\%'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+( \\.[a-zA-Z0-9\\!\\#\\$\\%'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+ )[EMAIL PROTECTED]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9 -]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,6}$ ) ) then System.out.println( 1-Invalid Email Address: + email ); end rule Test2 when // This doesn't work email : String( toString not matches ^[a-zA-Z0-9\\!\\#\\$\\%'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+( \\.[a-zA-Z0-9\\!\\#\\$\\%'\\*\\+\\-\\/\\=\\?\\^\\_\\`\\{\\|\\}\\~]+ )[EMAIL PROTECTED]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\\.[a-zA-Z0-9]([a-zA-Z0-9 -]{0,61}[a-zA-Z0-9])?)*\\.[a-zA-Z]{2,6}$ ) then System.out.println( 2-Invalid Email Address: + email ); end Here's the output using email addresses [EMAIL PROTECTED] (valid) and x.xx.com (invalid): test1-Invalid Email Address: x.xx.com test2-Invalid Email Address: [EMAIL PROTECTED] test2-Invalid Email Address: x.xx.com The regex expressions are exactly the same. Am I doing something wrong here? Thanks, Len ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Re: howto BRMS - already stuck at fact model
Hi Darren, Glad I am not alone : ) I am also in the process of using BRMS for our application. Would also like to seek advice on how to better use the BRMS. Especially on how the parsing of user inputs to DRL is executed, specifically which package/api in drools is used. Cheers! Chong Minsk Message: 1 Date: Wed, 14 Nov 2007 10:06:05 -0500 From: Darren Hartford [EMAIL PROTECTED] Subject: [rules-users] howto BRMS - already stuck at fact model loading To: rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=us-ascii Hey all, new to BRMS as trying to learn how this works. My usecase is to take an existing, working EJB3 application and migrate some of the complex rules over to be managed by BRMS. However, initial attempts over the course of a couple of days have yielded zero results. When trying to follow http://downloads.jboss.com/drools/docs/4.0.3.15993.GA/html_single/index. html#d0e5301, they want you to load a fact model. I take an existing EJB3 entity bean and it loads fine. There doesn't seem anything more for me to do, or to verify this is o.k. or not. So, then I move to the rule editors, and nothing works - not able to use the guided editor at all, and using the DSL text editor with the 'model/entity' from the jar isn't recognized. Now, I admit ignorance, and I would like some direction as to how to best learn to use BRMS. There were a couple mentions of a drools-examples-brms, but it just can not be found. Following the documentation mentioned above is only guidelines without any good examples leaving one easily lost. http://www.google.com/search?q=drools-example-brms http://www.nabble.com/forum/Search.jtp?query=jbrms+examplelocal=yforum =11822daterange=0startdate=enddate= http://labs.jboss.com/drools/downloads.html http://labs.jboss.com/drools/livetrails/index.html So - where can one go to learn how to use BRMS to help convert an existing EJB3 application to use Drools and BRMS? Thanky, -D ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] RE: Duplicate check using dialect(firing multiple times)
Edson, With this code it is firing. But it is firing 2 times(u also got same 2 time output). why is that? how we can avoid? Thanks and Regss, Basha Sorry, my mistake. this is a reserved word in java (duh!!), and so you need to use your own binding: m : Message( $message1 : message ) mdup : Message($message2:message==$message1,eval(mdup != m) ) You can't use mvel dialect, because in MVEL the operators == and != will call the equals() method anyway. Other than that, it is working just fine for me: rule Find duplicates salience 10 when $f1 : Message( $m1 : message ) $f2 : Message( $m2 : message == $m1, eval( $f1 != $f2 ) ) then System.out.println( FIRED DUPLICATE: ); System.out.println( $f1 = +$f1+ [ message=+$m1+ ] ); System.out.println( $f2 = +$f2+ [ message=+$m2+ ] ); end rule Find differents when $f1 : Message( $m1 : message ) $f2 : Message( $m2 : message != $m1 ) then System.out.println( FIRED DIFFERENT: ); System.out.println( $f1 = +$f1+ [ message=+$m1+ ] ); System.out.println( $f2 = +$f2+ [ message=+$m2+ ] ); end The code to insert facts is: Message message1 = new Message(); message1.setMessage( Hello World ); workingMemory.insert( message1 ); Message message2 = new Message(); message2.setMessage( Hello World ); workingMemory.insert( message2 ); Message message3 = new Message(); message3.setMessage( Hello Bob ); workingMemory.insert( message3 ); workingMemory.fireAllRules(); And the result is: FIRED DUPLICATE: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DUPLICATE: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello Bob ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello Bob ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello Bob ] $f2 = [EMAIL PROTECTED] [ message=Hello World ] FIRED DIFFERENT: $f1 = [EMAIL PROTECTED] [ message=Hello World ] $f2 = [EMAIL PROTECTED] [ message=Hello Bob ] []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED]: i just use this sort of rule rule Hello World dialect mvel when m : Message( $message1 : message ) mdup : Message($message2:message==$message1,eval(this!=m) ) then System.out.println(Rule Fired+m +::+mdup ); System.out.println (Rule Fired+$message1 +::+$message2 ); end if i put rule parameter dialect MVEL the error this should be used in static context is gone. But now the rule is firing whatever may be the data i assert 2 objects with message Hello and Hello1. still the rule is firing(2 times). Thanks and regs, basha Message: 1 Date: Wed, 14 Nov 2007 09:48:02 -0200 From: Edson Tirelli [EMAIL PROTECTED] Subject: Re: [rules-users] RE: how to find duplicate inlineeval To: Rules Users List rules-users@lists.jboss.org Message-ID: [EMAIL PROTECTED] Content-Type: text/plain; charset=iso-8859-1 Sorry, you lost me. What is the error message? Can you send us a self contained test showing the problem you are having? []s Edson 2007/11/14, Sikkandar Nawabjan [EMAIL PROTECTED] mailto:[EMAIL PROTECTED] : Edson, As you said i used inline eval. But am getting erroe message like this can't be used in static context.am http://context.am/ using statelesssession to assert my objects. i also put eval(this!=obj1) as follows. $obj1:Object1($id:id,$name:name) $obj2:Object1(id==$id,$name:name==$name, eval( this!=$obj1 )) eval($obj2!= $obj1) Though my references are different the rule is not firing Thanks and Regs Basha From: [EMAIL PROTECTED] on behalf of Edson Tirelli Sent: Tue 11/13/2007 9:35 PM To: Rules Users List Subject: Re: [rules-users] RE: how to find duplicate Sikkandar, The only way to check for identity is to use an inline eval and use java code to check that: