Re: [rules-users] Regarding Drools Rules Engine
Some remarks, see below. 2009/12/2 Anupindi RaviShankar iamrav...@gmail.com: Hi All, We are evaluating Drools rules engine for one of the clients. The client has given some parameters based on which evaluation needs to be done. We were not able to get this information from Drools site. So need your help in getting this information. • Number of transactions Drools Engine can support. Can it support around 1-1.5 million transactions. The term transaction is typically used for a unit of work performed within a (database) system. If this is meant, then the question askes is usually how many per second. • How can we introduce enforcement levels, overriding authority etc.? I'Ve been reading a lot about rule based systems, but enforcement level is absolutely new to me. (Google comes up with some strange, unrelated quotes.) Also, overriding authority seems to be more related to the law than anthing else. • How can the controlling class get to know which rule was fired and which was overridden ? The concept of overriding a rule is also unusual with respect to rules. There is nothing I can relate to this verb's meaning. -W • Does the rule engine support the tracking of different rule types? Can you please provide your updates on the same. Thanks Ravi ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
I've seen about three posts about that lately (including mine) and no one seemed to have solved it yet. What's the URL for hudson? Thanks, Leo. 2009/12/3 Ross H ross...@gmail.com I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ 2009/12/3 Leonardo Gomes leonardo.f.go...@gmail.com I've seen about three posts about that lately (including mine) and no one seemed to have solved it yet. What's the URL for hudson? Thanks, Leo. 2009/12/3 Ross H ross...@gmail.com I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
Just did a quick check, works for me. I'm running Galileo on OSX. On Thu, Dec 3, 2009 at 7:35 PM, Ross H ross...@gmail.com wrote: https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ 2009/12/3 Leonardo Gomes leonardo.f.go...@gmail.com I've seen about three posts about that lately (including mine) and no one seemed to have solved it yet. What's the URL for hudson? Thanks, Leo. 2009/12/3 Ross H ross...@gmail.com I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
How did you get the plugin. I see it in the hudson link, but where are the instructions for installing it that way and not using the eclipse update site? The standard plugin procedure did not work for me. In other words, using that Hudson download, how do I install the plugin? Thanks, Chris 2009/12/2 Ross H ross...@gmail.com Just did a quick check, works for me. I'm running Galileo on OSX. On Thu, Dec 3, 2009 at 7:35 PM, Ross H ross...@gmail.com wrote: https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ 2009/12/3 Leonardo Gomes leonardo.f.go...@gmail.com I've seen about three posts about that lately (including mine) and no one seemed to have solved it yet. What's the URL for hudson? Thanks, Leo. 2009/12/3 Ross H ross...@gmail.com I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Eclipse plugin with latest Galileo
My approach is to extract the zip and put it into my dropins directory within eclipse: eclipse dropins drools-5.1.0.SNAPSHOT-eclipse-all I would make sure you get rid of all the artefacts in your current eclipse features/plugins dirs first. Maybe a clean install of eclipse might be best. 2009/12/3 chris richmond richmond...@gmail.com How did you get the plugin. I see it in the hudson link, but where are the instructions for installing it that way and not using the eclipse update site? The standard plugin procedure did not work for me. In other words, using that Hudson download, how do I install the plugin? Thanks, Chris 2009/12/2 Ross H ross...@gmail.com Just did a quick check, works for me. I'm running Galileo on OSX. On Thu, Dec 3, 2009 at 7:35 PM, Ross H ross...@gmail.com wrote: https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ 2009/12/3 Leonardo Gomes leonardo.f.go...@gmail.com I've seen about three posts about that lately (including mine) and no one seemed to have solved it yet. What's the URL for hudson? Thanks, Leo. 2009/12/3 Ross H ross...@gmail.com I think there was a previous post on this. Try the latest from Hudson and see if that works. 2009/12/3 chris richmond richmond...@gmail.com Is anyone successfully using the IDE plugin with the latest Galileo version of Eclipse. I cannot get it to debug using Galileo(my previous post concerning debug as) I tested instlaling the IDE plugin by using the IDE update site link on the following versions. I normally use the Galileo, but tried the other for troubleshooting this Galileo standard Galileo EE Ganymede Standard The plugin appears to install just fine with all three, and the DroolsTest.java that is added when I create a new Drools project runs fine in all three. However, I am only able to debug as Drools application using Ganymede.So is it simply not possible to use the IDE update link with the latest Eclipse(Galileo)? Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools Design Patterns
I've been using Drools for about a year now, but still consider myself a newbie, although I'm starting to get a better idea of how to implement solutions, for the experts this is probably second nature. Whilst the Drools doco is very good, and the blog/mailing lists are a great source of info, and there are now some very good books on Drools, there is a hugh amount of functionality emerging in the Drools project, it's almost becoming a full time activity just to keep up. I wonder if the time is coming to start collecting real experiences into a form that makes it easier for new users to work out how to attack their problem. I hate to re-invent the wheel and if this exists in some form elsewhere, I'd like to know. If not, then it might be good to capture this knowledge in some way. I'm interested in some views from the user community on what they would like to see. Maybe the way to go is add some pages to the JBoss Drools wiki and evolve it from there, and provide a way for the drools user community to contribute to the overall success of Drools, rather than just ask questions. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Design Patterns
http://www.jboss.org/community/wiki/UsagePatterns Mark Ross H wrote: I've been using Drools for about a year now, but still consider myself a newbie, although I'm starting to get a better idea of how to implement solutions, for the experts this is probably second nature. Whilst the Drools doco is very good, and the blog/mailing lists are a great source of info, and there are now some very good books on Drools, there is a hugh amount of functionality emerging in the Drools project, it's almost becoming a full time activity just to keep up. I wonder if the time is coming to start collecting real experiences into a form that makes it easier for new users to work out how to attack their problem. I hate to re-invent the wheel and if this exists in some form elsewhere, I'd like to know. If not, then it might be good to capture this knowledge in some way. I'm interested in some views from the user community on what they would like to see. Maybe the way to go is add some pages to the JBoss Drools wiki and evolve it from there, and provide a way for the drools user community to contribute to the overall success of Drools, rather than just ask questions. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Design Patterns
2009/12/3 Mark Proctor mproc...@codehaus.org http://www.jboss.org/community/wiki/UsagePatterns This link is OK, but from there on, - some point to An article with that name does not exist. It may have been renamed or deleted. - one or two forward you to sketchy pages, not really explaining anything, - a few lead to theoretical discussions, not remotely showing anything like workable examples. Not perfect, but at least consistent, moderately readable and, possibly, even helpful is Cousin Jess' WiKi, see http://www.jessrules.com/jesswiki/view -W Mark Ross H wrote: I've been using Drools for about a year now, but still consider myself a newbie, although I'm starting to get a better idea of how to implement solutions, for the experts this is probably second nature. Whilst the Drools doco is very good, and the blog/mailing lists are a great source of info, and there are now some very good books on Drools, there is a hugh amount of functionality emerging in the Drools project, it's almost becoming a full time activity just to keep up. I wonder if the time is coming to start collecting real experiences into a form that makes it easier for new users to work out how to attack their problem. I hate to re-invent the wheel and if this exists in some form elsewhere, I'd like to know. If not, then it might be good to capture this knowledge in some way. I'm interested in some views from the user community on what they would like to see. Maybe the way to go is add some pages to the JBoss Drools wiki and evolve it from there, and provide a way for the drools user community to contribute to the overall success of Drools, rather than just ask questions. -- ___ rules-users mailing listrules-us...@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Can we use 'from' CE in Decision Tables ?
Hi Gurvinder. Not sure where new lines have gone from your email - it makes it very hard to read! I've also been working on a project which uses decision tables and I couldn't find any way to use from statements either. I'm hoping to get some time within the project to work on the drools decision table code to add some improvements, providing support for the from clause is one of these however I'm not sure whether I will get time or not. However I think you may be able to restructure your code so that you don't need the from cause however I've not fully tested it. The code relies on their existing a constructor which takes the promotion code and the equals is defined that P1.equals(P2) when P1.code.equals(P2.code). If you wanted to match that a promotion of a particular name exists then I think you can use the rule Rule existsPromotion when Line(promos contains (new Promotion(HOTBUY))) then ... However the expression language doesn't support not contains which means you have to full back to use java: rule contains d when line : Line(eval(!line.getPromos().contains(new Promotion(HOTBUY then ... end If you prefer you could also define a method on Line containsPromotionWithCode(code) which would let you choose how to do the match. As a spreadsheet the above would then look something like the following: RuleTable Hotbuys NAME CONDITION ACTION l :Line eval(!l.getPromos().contains(new Promotion($param))) System.out.println($param); Rule Name Number Directors Warning example1 Hotbuys Hotbuys missing Hope that helps, Thomas From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of groovenarula Sent: 03 December 2009 06:51 To: rules-users@lists.jboss.org Subject: [rules-users] Can we use 'from' CE in Decision Tables ? Hello all, Is it possible to define the follow rule in a decision table : rule Activate Promotion when l : Line( ) not ( Promotion ( code == HOTBUY ) from l.promos ) then #do some action end The rule above works perfectly for what I need when defined in a rule file. However, when I try to define it in a decision table so that the 'code' can be feed from a spreadsheet, I use the following values in the rules cells : RuleTable HOTBUYS CONDITION ACTION l : Line not ( Promotion ( code == $param ) from l.promos ) System.out.println($param added); PROMOTION PROMOTION HOTBUY BESTBUY I'm getting the following parser errors [10,17]: [ERR 101] Line 10:17 no viable alternative at input 'Promotion' in rule _11 in pattern Line [10,29]: [ERR 101] Line 10:29 no viable alternative at input 'code' in rule _11 [10,63]: [ERR 102] Line 10:63 mismatched input ')' expecting 'then' in rule _11 java.lang.IllegalArgumentException: Could not parse knowledge. at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:85) at com.sample.DecisionTableTest.main(DecisionTableTest.java:28) Also in Eclipse IDE, I get the following error : Unknown error while parsing. This is a bug. Please contact the Development team. NewPromotions.xls Is it possible to use 'from' conditional element in decision tables ? If so, what am I doing wrong. If not, then what's the best approach to implement the rule above in a decision table. I'm running Drools 5.1.0M1 in Eclipse. Help truly appreciated. Gurvinder View this message in context: Can we use 'from' CE in Decision Tables ?http://n3.nabble.com/Can-we-use-from-CE-in-Decision-Tables-tp67005p67005.html Sent from the Drools - User mailing list archivehttp://n3.nabble.com/Drools-User-f47000.html at Nabble.com. ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00 ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. An NDS Group Limited company. www.nds.com
Re: [rules-users] Drools Design Patterns
Wolfgang Laun wrote: 2009/12/3 Mark Proctor mproc...@codehaus.org mailto:mproc...@codehaus.org http://www.jboss.org/community/wiki/UsagePatterns This link is OK, but from there on, * some point to An article with that name does not exist. It may have been renamed or deleted. * one or two forward you to sketchy pages, not really explaining anything, * a few lead to theoretical discussions, not remotely showing anything like workable examples. Not perfect, but at least consistent, moderately readable and, possibly, even helpful is Cousin Jess' WiKi, see http://www.jessrules.com/jesswiki/view I put it up years ago with some titles to get it started in the hope that the community would continue with it and flesh it out, as they discovered things. No one ever did :( I referenced it as a starting point for Ross if he wants to share his findings. Mark -W Mark Ross H wrote: I've been using Drools for about a year now, but still consider myself a newbie, although I'm starting to get a better idea of how to implement solutions, for the experts this is probably second nature. Whilst the Drools doco is very good, and the blog/mailing lists are a great source of info, and there are now some very good books on Drools, there is a hugh amount of functionality emerging in the Drools project, it's almost becoming a full time activity just to keep up. I wonder if the time is coming to start collecting real experiences into a form that makes it easier for new users to work out how to attack their problem. I hate to re-invent the wheel and if this exists in some form elsewhere, I'd like to know. If not, then it might be good to capture this knowledge in some way. I'm interested in some views from the user community on what they would like to see. Maybe the way to go is add some pages to the JBoss Drools wiki and evolve it from there, and provide a way for the drools user community to contribute to the overall success of Drools, rather than just ask questions. ___ rules-users mailing list rules-users@lists.jboss.org mailto:rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org mailto:rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Can we use 'from' CE in Decision Tables ?
Thomas, Thanks the response. I'm not sure how the newlines disappeared from my post either. I do know I'd put them all there neatly formatted. I'll try out solution you provided and let you know how it goes. I guess I'll have to resort to quite a few evals in my decision tables, given that 'from' does not work in there. Don't like it, but if it works, at least I'll be able to acheive my project's objects. Thanks again for the solution. I'll let you know how it works out. Gurvinder Swindells, Thomas wrote: Hi Gurvinder. Not sure where new lines have gone from your email - it makes it very hard to read! I've also been working on a project which uses decision tables and I couldn't find any way to use from statements either. I'm hoping to get some time within the project to work on the drools decision table code to add some improvements, providing support for the from clause is one of these however I'm not sure whether I will get time or not. However I think you may be able to restructure your code so that you don't need the from cause however I've not fully tested it. The code relies on their existing a constructor which takes the promotion code and the equals is defined that P1.equals(P2) when P1.code.equals(P2.code). If you wanted to match that a promotion of a particular name exists then I think you can use the rule Rule existsPromotion when Line(promos contains (new Promotion(HOTBUY))) then ... However the expression language doesn't support not contains which means you have to full back to use java: rule contains d when line : Line(eval(!line.getPromos().contains(new Promotion(HOTBUY then ... end If you prefer you could also define a method on Line containsPromotionWithCode(code) which would let you choose how to do the match. As a spreadsheet the above would then look something like the following: RuleTable Hotbuys NAME CONDITION ACTION l :Line eval(!l.getPromos().contains(new Promotion($param))) System.out.println($param); Rule Name Number Directors Warning example1 Hotbuys Hotbuys missing Hope that helps, Thomas From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of groovenarula Sent: 03 December 2009 06:51 To: rules-users@lists.jboss.org Subject: [rules-users] Can we use 'from' CE in Decision Tables ? Hello all, Is it possible to define the follow rule in a decision table : rule Activate Promotion when l : Line( ) not ( Promotion ( code == HOTBUY ) from l.promos ) then #do some action end The rule above works perfectly for what I need when defined in a rule file. However, when I try to define it in a decision table so that the 'code' can be feed from a spreadsheet, I use the following values in the rules cells : RuleTable HOTBUYS CONDITION ACTION l : Line not ( Promotion ( code == $param ) from l.promos ) System.out.println($param added); PROMOTION PROMOTION HOTBUY BESTBUY I'm getting the following parser errors [10,17]: [ERR 101] Line 10:17 no viable alternative at input 'Promotion' in rule _11 in pattern Line [10,29]: [ERR 101] Line 10:29 no viable alternative at input 'code' in rule _11 [10,63]: [ERR 102] Line 10:63 mismatched input ')' expecting 'then' in rule _11 java.lang.IllegalArgumentException: Could not parse knowledge. at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:85) at com.sample.DecisionTableTest.main(DecisionTableTest.java:28) Also in Eclipse IDE, I get the following error : Unknown error while parsing. This is a bug. Please contact the Development team. NewPromotions.xls Is it possible to use 'from' conditional element in decision tables ? If so, what am I doing wrong. If not, then what's the best approach to implement the rule above in a decision table. I'm running Drools 5.1.0M1 in Eclipse. Help truly appreciated. Gurvinder View this message in context: Can we use 'from' CE in Decision Tables ?http://n3.nabble.com/Can-we-use-from-CE-in-Decision-Tables-tp67005p67005.html Sent from the Drools - User mailing list archivehttp://n3.nabble.com/Drools-User-f47000.html at Nabble.com. ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808
Re: [rules-users] unable to resolve Type Declaration class
Looks like it is related to this open jira: https://jira.jboss.org/jira/browse/GUVNOR-379 Cheers, Jarek richarda wrote: Yeah, its in the classpath.. and to be doubly sure just before the code I do a Signature s=new Signature(); and that works.. so jvm can find the Signature object. I have created https://jira.jboss.org/jira/browse/JBRULES-2348 I would love to know if any workarounds are possible, this has ground my project to a halt. thanks Ric Edson Tirelli-4 wrote: Kris just reminded me of something: do you have the actual Message class in the test program classpath? When downloading the package from guvnor, I think it does not download the model jar... only the actual rules, etc... Edson 2009/11/25 richarda richard.ambri...@gmail.com Also tried under 5.1.0M1 release.. same issue :( Am i doing something wrong by declaring the @role in the Configuration section? richarda wrote: Still trying to get this to work. I have managed to create from a default (new) guvnor setup. Steps I do.. 1. Create fresh guvnor 2. In eclipse create Message.java file in package com.sample, and create a jar file 3. In guvnor import the model for the Message.jar file 4. In guvnor create a category 5. Create an import statement for import com.sample.Message 6. Create a simple technical rule, something like when, Message(), then, System.out.println(.); 7. Build the pkg 8. download the pkg use the code from previous post to load the pkg... it works fine.. now, goto guvnor advanced view and change the Configuration from: import com.sample.Message to: import com.sample.Message; declare Message @role( event ) end build the pkg, download the pkg, run the test program... I get: org.drools.RuntimeDroolsException: unable to resolve Type Declaration class 'Message' at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:754) at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:515) at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25) at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:69) at com.sample.DroolsTest.main(DroolsTest.java:27) richarda wrote: So, my code is doing this: KnowledgeBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); conf.setOption(EventProcessingOption.STREAM); KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); try { File f = new File(/tmp/my.pkg); InputStream stream = new FileInputStream(f); if (stream == null) { jlog.fatal(Unable to find rule pkg); } else { jlog.info(adding pkg); builder.add(ResourceFactory.newInputStreamResource(stream), ResourceType.PKG); } } catch (Exception e) { e.printStackTrace(); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(conf); kbase.addKnowledgePackages(builder.getKnowledgePackages()); jlog.info(setup creating knowledge session); ksession = kbase.newStatefulKnowledgeSession(); jlog.info( setup ksession created); The pkg was created from Guvnor. If in the package declaration area in Guvnor, (where you put the import statements) If I put declare Signature @role ( event ) end then build the package, save it to disk /tmp/my.pkg on startup I get: [#|2009-11-24T14:50:38.944+|WARNING|sun-appserver2.1|javax.enterprise.system.stream.err|_ThreadID=12;_ThreadName=pool-1-thread-3;_RequestID=7c35064d-757e-4519-b5eb-433db89e168d;|org.drools.RuntimeDroolsException: unable to resolve Type Declaration class 'Signature' at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:754) at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:515) at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25) I need to declare 'Signature' as an 'event' Am I doing this wrong? If I do this all in Eclipse and load the DRL files manually it all works. -- View this message in context: http://old.nabble.com/unable-to-resolve-Type-Declaration-class-tp26497326p26519888.html 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 -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org
[rules-users] CEP + prevent consequences from triggering multiple times?
Hi, I'm trying to write a rule in drools, which triggers once some condition is active for a specified time interval. For example, if a vehicle is over a speed limit (100 mph) for 30 seconds, I want to trigger an action. However, once this rule has fired, I don't want it to fire again until the vehicle has dropped below the speed limit (and gone over the limit again). The only way I've managed to model this is by defining two rules; one for determining when the vehicle is speeding and one for determining when it is not speeding and using a global object to track the state of the vehicle (see rules below). rule OverSpeedLimit no-loop true when $minSpeed : Double() from accumulate( $speedingEvent : SpeedingEvent ($speed : speed) over window:time( 30s ) from entry-point SpeedingStream, min($speed) ); eval ($minSpeed 100.0 !state.speeding) then state.speeding = true end rule !OverSpeedLimit no-loop true when $speedingEvent : SpeedingEvent() from entry-point SpeedingStream eval ($speedingEvent.speed = 100.0) then state.speeding = false end My questions is: Is there a better way to model the above behaviour, preferably as a single rule? The reason I ask is because I believe it would be too complicated for my users to define rules like this. Ideally, I would like to be able to create a DSL such as: when Speed is above X for Y seconds then ... Any help greatly appreciated. Thanks, Paul -- View this message in context: http://n3.nabble.com/CEP-prevent-consequences-from-triggering-multiple-times-tp67424p67424.html 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] accumulate function help
Hi! I would like to use the accumulate function in my rule. I found this: http://www.docjar.com/html/api/org/drools/compiler/PackageBuilderConfiguration.java.html but i don't know exactly, which imports I need to the package and how can I make it work. This is my rule: rule aktivitas when Adattipus(ertek == mozgas) $max_sorszam : Number() from accumulate(MertAdat($sorszam : sorszam), max($sorszam)) $aktiv_mozgas_cimke_szam : Number(intValue 90) from accumulate(MertAdat(sorszam $max_sorszam - (7 * 24 * 60), $cimke : cimke == aktiv_mozgas), count($cimke)) then end Sorry for this simple question! -- View this message in context: http://n3.nabble.com/accumulate-function-help-tp67445p67445.html 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] CEP + prevent consequences from triggering multiple times?
Have you tried truth maintenance? (i.e. insertLogical) rule OverSpeedLimit no-loop true when not SpeedingIndicator(); $minSpeed : Double(doubleValue 100) from accumulate( $speedingEvent : SpeedingEvent ($speed : speed) over window:time( 30s ) from entry-point SpeedingStream, min($speed) ); then insertLogical(new SpeedingIndicator()); end Though I'm not sure this will work, because inserting the SpeedingIndicator negates the first condition, probably causing the SpeedingIndicator to be retracted automatically. :) But it's worth a try just to see if no-loop would override that somehow. Apart from that, note that you can test the results of an accumulate in the returned value. (The Double(doubleValue 100) part.) YOu don't need the eval. Also, where is the state object coming from? If it's a global, it's not a good idea to use them in the conditions of your rules. Changes to them are not tracked by the rete. --- On Thu, 12/3/09, reverselogic reverselo...@gmail.com wrote: From: reverselogic reverselo...@gmail.com Subject: [rules-users] CEP + prevent consequences from triggering multiple times? To: rules-users@lists.jboss.org Date: Thursday, December 3, 2009, 12:41 PM Hi, I'm trying to write a rule in drools, which triggers once some condition is active for a specified time interval. For example, if a vehicle is over a speed limit (100 mph) for 30 seconds, I want to trigger an action. However, once this rule has fired, I don't want it to fire again until the vehicle has dropped below the speed limit (and gone over the limit again). The only way I've managed to model this is by defining two rules; one for determining when the vehicle is speeding and one for determining when it is not speeding and using a global object to track the state of the vehicle (see rules below). rule OverSpeedLimit no-loop true when $minSpeed : Double() from accumulate( $speedingEvent : SpeedingEvent ($speed : speed) over window:time( 30s ) from entry-point SpeedingStream, min($speed) ); eval ($minSpeed 100.0 !state.speeding) then state.speeding = true end rule !OverSpeedLimit no-loop true when $speedingEvent : SpeedingEvent() from entry-point SpeedingStream eval ($speedingEvent.speed = 100.0) then state.speeding = false end My questions is: Is there a better way to model the above behaviour, preferably as a single rule? The reason I ask is because I believe it would be too complicated for my users to define rules like this. Ideally, I would like to be able to create a DSL such as: when Speed is above X for Y seconds then ... Any help greatly appreciated. Thanks, Paul -- View this message in context: http://n3.nabble.com/CEP-prevent-consequences-from-triggering-multiple-times-tp67424p67424.html 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] unable to resolve Type Declaration class
The problem mentioned by Richard is fixed in trunk. Regarding Guvnor 379, I will ask Toni to re-test it. Thanks for pointing it out. Regarding your comment on the documentation, it is documented here: http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-expert/html_single/index.html#d0e3350 Edson 2009/12/3 Jaroslaw Kijanowski kijanow...@gmail.com Looks like it is related to this open jira: https://jira.jboss.org/jira/browse/GUVNOR-379 Cheers, Jarek richarda wrote: Yeah, its in the classpath.. and to be doubly sure just before the code I do a Signature s=new Signature(); and that works.. so jvm can find the Signature object. I have created https://jira.jboss.org/jira/browse/JBRULES-2348 I would love to know if any workarounds are possible, this has ground my project to a halt. thanks Ric Edson Tirelli-4 wrote: Kris just reminded me of something: do you have the actual Message class in the test program classpath? When downloading the package from guvnor, I think it does not download the model jar... only the actual rules, etc... Edson 2009/11/25 richarda richard.ambri...@gmail.com Also tried under 5.1.0M1 release.. same issue :( Am i doing something wrong by declaring the @role in the Configuration section? richarda wrote: Still trying to get this to work. I have managed to create from a default (new) guvnor setup. Steps I do.. 1. Create fresh guvnor 2. In eclipse create Message.java file in package com.sample, and create a jar file 3. In guvnor import the model for the Message.jar file 4. In guvnor create a category 5. Create an import statement for import com.sample.Message 6. Create a simple technical rule, something like when, Message(), then, System.out.println(.); 7. Build the pkg 8. download the pkg use the code from previous post to load the pkg... it works fine.. now, goto guvnor advanced view and change the Configuration from: import com.sample.Message to: import com.sample.Message; declare Message @role( event ) end build the pkg, download the pkg, run the test program... I get: org.drools.RuntimeDroolsException: unable to resolve Type Declaration class 'Message' at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:754) at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:515) at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25) at com.sample.DroolsTest.readKnowledgeBase(DroolsTest.java:69) at com.sample.DroolsTest.main(DroolsTest.java:27) richarda wrote: So, my code is doing this: KnowledgeBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); conf.setOption(EventProcessingOption.STREAM); KnowledgeBuilder builder = KnowledgeBuilderFactory.newKnowledgeBuilder(); try { File f = new File(/tmp/my.pkg); InputStream stream = new FileInputStream(f); if (stream == null) { jlog.fatal(Unable to find rule pkg); } else { jlog.info(adding pkg); builder.add(ResourceFactory.newInputStreamResource(stream), ResourceType.PKG); } } catch (Exception e) { e.printStackTrace(); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(conf); kbase.addKnowledgePackages(builder.getKnowledgePackages()); jlog.info(setup creating knowledge session); ksession = kbase.newStatefulKnowledgeSession(); jlog.info( setup ksession created); The pkg was created from Guvnor. If in the package declaration area in Guvnor, (where you put the import statements) If I put declare Signature @role ( event ) end then build the package, save it to disk /tmp/my.pkg on startup I get: [#|2009-11-24T14:50:38.944+|WARNING|sun-appserver2.1|javax.enterprise.system.stream.err|_ThreadID=12;_ThreadName=pool-1-thread-3;_RequestID=7c35064d-757e-4519-b5eb-433db89e168d;|org.drools.RuntimeDroolsException: unable to resolve Type Declaration class 'Signature' at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:754) at org.drools.compiler.PackageBuilder.addKnowledgeResource(PackageBuilder.java:515) at org.drools.builder.impl.KnowledgeBuilderImpl.add(KnowledgeBuilderImpl.java:25) I need to declare 'Signature' as an 'event' Am I doing this wrong? If I do this all in Eclipse and load the DRL files manually it all works. -- View this message in context: http://old.nabble.com/unable-to-resolve-Type-Declaration-class-tp26497326p26519888.html Sent from the drools - user mailing list archive at Nabble.com.
Re: [rules-users] Trivial rule with condition in RHS won't compile, help please
Ok, I found http://n3.nabble.com/Strange-MVEL-error-td62055.html#a62055 which indicates that expressions are disabled in mvel RHS. I understand good intentions, but I **need** this expression for this particular situation. Anybody know some what to turn this back on? Also, when I try wrap the RHS in a function, that also fails. I'm guessing because I declare dialect mvel for the entire file. If this is why function fails to compile with an if-statement, this must be a bug. -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67472.html 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] Trivial rule with condition in RHS won't compile, help please
I would assume that you're trying to test out rule writing and see what works and what doesn't. I don't believe you can use if statements in the RHS. Normally, anytime you want to use if statements inside the RHS, it's a sure sign that you should move it to the LHS and create separate rules. You can actually make your rule even simpler: rule test dialect mvel when //empty LHS automatically implies true then System.out.pritln(***) end Cheers, Chris On Dec 3, 2009, at 11:43 AM, Barry Kaplan wrote: The following rule: rule test dialect mvel when eval(true) then if (true) { System.out.println(***) } end Fails with: java.lang.RuntimeException: Unable to build expression for 'consequence': was expecting type: java.lang.Object; but found type: void 'if (true) { System.out.println(***) } true ' : [Rule name='test'] I can't for the live of me figure out what mvel is bitching about. Note that the following does compile: rule test dialect mvel when eval(true) then //if (true) { System.out.println(***) //} end -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67458.html 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Trivial rule with condition in RHS won't compile, help please
The following rule: rule test dialect mvel when eval(true) then if (true) { System.out.println(***) } end Fails with: java.lang.RuntimeException: Unable to build expression for 'consequence': was expecting type: java.lang.Object; but found type: void 'if (true) { System.out.println(***) } true ' : [Rule name='test'] I can't for the live of me figure out what mvel is bitching about. Note that the following does compile: rule test dialect mvel when eval(true) then //if (true) { System.out.println(***) //} end -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67458.html 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] Trivial rule with condition in RHS won't compile, help please
Greg Barton wrote: You can use them in the RHS, but just with java dialect. This is inconsistent. If they can be used in java, then they should not be disabled for mvel. -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67488.html 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] Trivial rule with condition in RHS won't compile, help please
You can use them in the RHS, but just with java dialect. The RHS code should then be passed through with no modification. And there are occasional reasons why you would want to test conditions in the RHS (optimization, mostly) but should be avoided most of the time. --- On Thu, 12/3/09, CK chris...@gmail.com wrote: From: CK chris...@gmail.com Subject: Re: [rules-users] Trivial rule with condition in RHS won't compile, help please To: Rules Users List rules-users@lists.jboss.org Date: Thursday, December 3, 2009, 1:49 PM I would assume that you're trying to test out rule writing and see what works and what doesn't. I don't believe you can use if statements in the RHS. Normally, anytime you want to use if statements inside the RHS, it's a sure sign that you should move it to the LHS and create separate rules. You can actually make your rule even simpler: rule test dialect mvel when //empty LHS automatically implies true then System.out.pritln(***) end Cheers, Chris On Dec 3, 2009, at 11:43 AM, Barry Kaplan wrote: The following rule: rule test dialect mvel when eval(true) then if (true) { System.out.println(***) } end Fails with: java.lang.RuntimeException: Unable to build expression for 'consequence': was expecting type: java.lang.Object; but found type: void ' if (true) { System.out.println(***) } true ' : [Rule name='test'] I can't for the live of me figure out what mvel is bitching about. Note that the following does compile: rule test dialect mvel when eval(true) then // if (true) { System.out.println(***) // } end -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67458.html 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] CEP + prevent consequences from triggering multiple times?
Hi Greg, Thanks for the response. Unfortunately your example doesn't appear to work, the SpeedIndicator doesn't get retracted, causing the consequence to only ever trigger once. However, I could add another rule to remove the SpeedingIndicator - meaning I no longer have to use the nasty global state object from my example. Any other suggestions greatly appreciated. Cheers, Paul On Thu, Dec 3, 2009 at 7:14 PM, Greg Barton greg_bar...@yahoo.com wrote: Have you tried truth maintenance? (i.e. insertLogical) rule OverSpeedLimit no-loop true when not SpeedingIndicator(); $minSpeed : Double(doubleValue 100) from accumulate( $speedingEvent : SpeedingEvent ($speed : speed) over window:time( 30s ) from entry-point SpeedingStream, min($speed) ); then insertLogical(new SpeedingIndicator()); end Though I'm not sure this will work, because inserting the SpeedingIndicator negates the first condition, probably causing the SpeedingIndicator to be retracted automatically. :) But it's worth a try just to see if no-loop would override that somehow. Apart from that, note that you can test the results of an accumulate in the returned value. (The Double(doubleValue 100) part.) YOu don't need the eval. Also, where is the state object coming from? If it's a global, it's not a good idea to use them in the conditions of your rules. Changes to them are not tracked by the rete. --- On Thu, 12/3/09, reverselogic reverselo...@gmail.com wrote: From: reverselogic reverselo...@gmail.com Subject: [rules-users] CEP + prevent consequences from triggering multiple times? To: rules-users@lists.jboss.org Date: Thursday, December 3, 2009, 12:41 PM Hi, I'm trying to write a rule in drools, which triggers once some condition is active for a specified time interval. For example, if a vehicle is over a speed limit (100 mph) for 30 seconds, I want to trigger an action. However, once this rule has fired, I don't want it to fire again until the vehicle has dropped below the speed limit (and gone over the limit again). The only way I've managed to model this is by defining two rules; one for determining when the vehicle is speeding and one for determining when it is not speeding and using a global object to track the state of the vehicle (see rules below). rule OverSpeedLimit no-loop true when $minSpeed : Double() from accumulate( $speedingEvent : SpeedingEvent ($speed : speed) over window:time( 30s ) from entry-point SpeedingStream, min($speed) ); eval ($minSpeed 100.0 !state.speeding) then state.speeding = true end rule !OverSpeedLimit no-loop true when $speedingEvent : SpeedingEvent() from entry-point SpeedingStream eval ($speedingEvent.speed = 100.0) then state.speeding = false end My questions is: Is there a better way to model the above behaviour, preferably as a single rule? The reason I ask is because I believe it would be too complicated for my users to define rules like this. Ideally, I would like to be able to create a DSL such as: when Speed is above X for Y seconds then ... Any help greatly appreciated. Thanks, Paul -- View this message in context: http://n3.nabble.com/CEP-prevent-consequences-from-triggering-multiple-times-tp67424p67424.html 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Trivial rule with condition in RHS won't compile, help please
Well, technically you choose a different dialect because you want different functionality, so consistency isn't a requirement. I do agree that the difference is not intuitive. I'm not sure why they're disabled in mvel. Dev d00ds? If the reason is just to enforce the you shouldn't have conditions in the RHS pattern then I don't think that's sufficient. --- On Thu, 12/3/09, Barry Kaplan grou...@memelet.com wrote: From: Barry Kaplan grou...@memelet.com Subject: Re: [rules-users] Trivial rule with condition in RHS won't compile, help please To: rules-users@lists.jboss.org Date: Thursday, December 3, 2009, 2:07 PM Greg Barton wrote: You can use them in the RHS, but just with java dialect. This is inconsistent. If they can be used in java, then they should not be disabled for mvel. -- View this message in context: http://n3.nabble.com/Trivial-rule-with-condition-in-RHS-won-t-compile-help-please-tp67458p67488.html 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Can we use 'from' CE in Decision Tables ?
Hi Thomas, Just wanted to let you know that the eval soution finally worked. I create a 'containsCode' method on my Line bean and then used that to see if the Line contained a given code. Then finally used 'eval' to check if the 'code' exists from within a decision table. Got what I needed. Thanks for the solution. Gurvinder Swindells, Thomas wrote: Hi Gurvinder. Not sure where new lines have gone from your email - it makes it very hard to read! I've also been working on a project which uses decision tables and I couldn't find any way to use from statements either. I'm hoping to get some time within the project to work on the drools decision table code to add some improvements, providing support for the from clause is one of these however I'm not sure whether I will get time or not. However I think you may be able to restructure your code so that you don't need the from cause however I've not fully tested it. The code relies on their existing a constructor which takes the promotion code and the equals is defined that P1.equals(P2) when P1.code.equals(P2.code). If you wanted to match that a promotion of a particular name exists then I think you can use the rule Rule existsPromotion when Line(promos contains (new Promotion(HOTBUY))) then ... However the expression language doesn't support not contains which means you have to full back to use java: rule contains d when line : Line(eval(!line.getPromos().contains(new Promotion(HOTBUY then ... end If you prefer you could also define a method on Line containsPromotionWithCode(code) which would let you choose how to do the match. As a spreadsheet the above would then look something like the following: RuleTable Hotbuys NAME CONDITION ACTION l :Line eval(!l.getPromos().contains(new Promotion($param))) System.out.println($param); Rule Name Number Directors Warning example1 Hotbuys Hotbuys missing Hope that helps, Thomas From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of groovenarula Sent: 03 December 2009 06:51 To: rules-users@lists.jboss.org Subject: [rules-users] Can we use 'from' CE in Decision Tables ? Hello all, Is it possible to define the follow rule in a decision table : rule Activate Promotion when l : Line( ) not ( Promotion ( code == HOTBUY ) from l.promos ) then #do some action end The rule above works perfectly for what I need when defined in a rule file. However, when I try to define it in a decision table so that the 'code' can be feed from a spreadsheet, I use the following values in the rules cells : RuleTable HOTBUYS CONDITION ACTION l : Line not ( Promotion ( code == $param ) from l.promos ) System.out.println($param added); PROMOTION PROMOTION HOTBUY BESTBUY I'm getting the following parser errors [10,17]: [ERR 101] Line 10:17 no viable alternative at input 'Promotion' in rule _11 in pattern Line [10,29]: [ERR 101] Line 10:29 no viable alternative at input 'code' in rule _11 [10,63]: [ERR 102] Line 10:63 mismatched input ')' expecting 'then' in rule _11 java.lang.IllegalArgumentException: Could not parse knowledge. at com.sample.DecisionTableTest.readKnowledgeBase(DecisionTableTest.java:85) at com.sample.DecisionTableTest.main(DecisionTableTest.java:28) Also in Eclipse IDE, I get the following error : Unknown error while parsing. This is a bug. Please contact the Development team. NewPromotions.xls Is it possible to use 'from' conditional element in decision tables ? If so, what am I doing wrong. If not, then what's the best approach to implement the rule above in a decision table. I'm running Drools 5.1.0M1 in Eclipse. Help truly appreciated. Gurvinder View this message in context: Can we use 'from' CE in Decision Tables ?http://n3.nabble.com/Can-we-use-from-CE-in-Decision-Tables-tp67005p67005.html Sent from the Drools - User mailing list archivehttp://n3.nabble.com/Drools-User-f47000.html at Nabble.com. ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00 ** This message is confidential
[rules-users] CEP fusion
Hello, I have this test rule that basically fires if a followup reading is not received with the appropriate value within some time. According to the fusion docs, simply using: *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) should wait 5 seconds before firing, however this does not work unless I explicitly also set: *duration*( 5s ) and if I do that, it seems to wait the 5 seconds, however it always follows what I put in the duration value and seems to compeltely ignore the time tolerances I use here.: $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) And if I have different values, it will fire the rule after 2 seconds and ignore the 5s in the sample below. Any ideas? * rule* my rule *duration*( 2s ) *when * $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) *then* System.err.println(did not receive follow up - reading value: + $val); * end * ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] CEP fusion
Are you running your application in STREAM mode or CLOUD mode? Delaying not is a feature of the STREAM mode. If you are already running in STREAM mode, can you give me an isolated test that I can check? Thanks Edson 2009/12/3 chris richmond richmond...@gmail.com Hello, I have this test rule that basically fires if a followup reading is not received with the appropriate value within some time. According to the fusion docs, simply using: *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) should wait 5 seconds before firing, however this does not work unless I explicitly also set: *duration*( 5s ) and if I do that, it seems to wait the 5 seconds, however it always follows what I put in the duration value and seems to compeltely ignore the time tolerances I use here.: $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) And if I have different values, it will fire the rule after 2 seconds and ignore the 5s in the sample below. Any ideas? * rule * my rule *duration*( 2s ) *when* $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) *then* System.err.println( did not receive follow up - reading value: + $val); * end * ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] command line utility for importing rules
This is no such command line tool exists at the moment... Cheers, Jervis rbolla wrote: Hi, I'm a systems engineer and I want to import rules to guvnor. I dont want to do this by guvnor web UI (Administration -- import/export). Rather, I want to use a command to upload repository_export.xml file. something like, $java_home/java org.drools.repository.something repository_export.xml Can you help me in finding the command. Thanks, ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] CEP fusion
my zip file attachment was blocked. I will try to attach the source/rule files. modified the standard DroolsTest.java that gets created when you create a new Drools project. Thanks, Chris On Thu, Dec 3, 2009 at 3:07 PM, chris richmond richmond...@gmail.comwrote: here is my eclipse project with source and rule files. I modified test rules/class that gets created with a new drools project in eclipse. I hope the .zip file comes through 2009/12/3 Edson Tirelli ed.tire...@gmail.com Are you running your application in STREAM mode or CLOUD mode? Delaying not is a feature of the STREAM mode. If you are already running in STREAM mode, can you give me an isolated test that I can check? Thanks Edson 2009/12/3 chris richmond richmond...@gmail.com Hello, I have this test rule that basically fires if a followup reading is not received with the appropriate value within some time. According to the fusion docs, simply using: *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) should wait 5 seconds before firing, however this does not work unless I explicitly also set: *duration*( 5s ) and if I do that, it seems to wait the 5 seconds, however it always follows what I put in the duration value and seems to compeltely ignore the time tolerances I use here.: $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) And if I have different values, it will fire the rule after 2 seconds and ignore the 5s in the sample below. Any ideas? * rule *my rule *duration*( 2s ) *when* $reading : DatarReading($val: value) *not*( FollowUpReading(value == $val, *this* before[0s,5s] $reading ) ) *then* System.err.println( did not receive follow up - reading value: + $val); * end * ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users DatarReading.java Description: Binary data DroolsTest.java Description: Binary data FollowUpReading.java Description: Binary data FusionTesing.drl Description: Binary data ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] command line utility for importing rules
Or is there a URL like http://localhost/drools-guvnor/xx ? so that I can use 'CURL' to upload a file. Whereever I navigate, all I see is http://localhost/drools-guvnor/org.drools.guvnor.Guvnor/Guvnor.html in the address bar. Thanks, -- View this message in context: http://n3.nabble.com/command-line-utility-for-importing-rules-tp65886p67762.html 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] command line utility for importing rules
The import/export is handled by RepositoryBackupServlet, check its source from [1]. Its URL is sth like: http://localhost:8080/drools-guvnor/org.drools.guvnor.Guvnor/backup [1]. http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/RepositoryBackupServlet.java Cheers, Jervis rbolla wrote: Or is there a URL like http://localhost/drools-guvnor/xx ? so that I can use 'CURL' to upload a file. Whereever I navigate, all I see is http://localhost/drools-guvnor/org.drools.guvnor.Guvnor/Guvnor.html in the address bar. Thanks, ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Can we fire a rule from another rule...?
Hi... In one of my requirments I need to fire a rule from another rule... i.e.when rule "Rule 1" when condition() then someaction() then it should fire another rule Rule2 end rule"Rule 2" when condition() then someaction() endCan we achieve this in Guvnor??please helpThanksDeepak Prabhakar Jambhekar=-=-= Notice: The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or telephone and immediately and permanently delete the message and any attachments. Thank you ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Need help related to collection of data accessing in rule file.
I have the same problem as I'm trying to create a decision table via excel where the fact is a root object A where A has a collection B, and B has a collection C. My rules are based out of the instance A, loop for each object in B, and within that, loop each object in C. Not sure how I can write an expression for the same. From the examples, I see that one can access a particular element in A by $a.listname[1] but in my case, I need to access all elements in the loop. Any suggestions? prasad raju sagi wrote: Hi , I am trying to create rule on a fact , which contains arraylist of collection and the object in the collection internally contains an arraylist of another collection of objects. This looks like object A contains collection of objects B and B contains collection object C A - blist ( Arraylist ) B - clist (ArrayListC ) C- dlist( ArrayListD) D- type ( string) I am inseting A as fact to the working memory. I am in confusion state like how to write the rule to place conditions on collection C. Can I use from in the form of nested from in rule statment. Thanks Prasad Raju Sagi Mobile: 847-644-4103 From: Aziz Boxwala boxw...@yahoo.com To: rules-users@lists.jboss.org Sent: Thursday, June 11, 2009 1:58:28 PM Subject: [rules-users] process order example not working fully I am trying to execute a ruleflow and use rules to assign tasks within the ruleflow in Drools 5.0.1. I have a drl file included in my knowledge base that tries to assign a task to a user when a new human task is created. This is based on the example in org.drools.example.process.order. I can't get my code to work. I don't the rules in the example are working either (dslr for the task assignment or the drl for dynamic logging). After some attempts, I found that this condition WorkItemNodeInstance() does not evaluate to true ever. Do I have to do anything special to make the WorkItemNodeInstance appear in working memory? Thanks for any help. --Aziz ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://n3.nabble.com/Re-Need-help-related-to-collection-of-data-accessing-in-rule-file-tp60311p67858.html 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] Drools Design Patterns
Thanks Mark, Wolfgang, I think this is a worthwhile area, although difficult. My hope was that ordinary users might have a view of what they want to see, not necessarily formal patterns, but just ways of doing common problems. Hopefully we get some more responses from the community, but anyway I'll see what I can do from a naive user perspective. Ross. 2009/12/4 Mark Proctor mproc...@codehaus.org Wolfgang Laun wrote: 2009/12/3 Mark Proctor mproc...@codehaus.org http://www.jboss.org/community/wiki/UsagePatterns This link is OK, but from there on, - some point to An article with that name does not exist. It may have been renamed or deleted. - one or two forward you to sketchy pages, not really explaining anything, - a few lead to theoretical discussions, not remotely showing anything like workable examples. Not perfect, but at least consistent, moderately readable and, possibly, even helpful is Cousin Jess' WiKi, see http://www.jessrules.com/jesswiki/view I put it up years ago with some titles to get it started in the hope that the community would continue with it and flesh it out, as they discovered things. No one ever did :( I referenced it as a starting point for Ross if he wants to share his findings. Mark -W Mark Ross H wrote: I've been using Drools for about a year now, but still consider myself a newbie, although I'm starting to get a better idea of how to implement solutions, for the experts this is probably second nature. Whilst the Drools doco is very good, and the blog/mailing lists are a great source of info, and there are now some very good books on Drools, there is a hugh amount of functionality emerging in the Drools project, it's almost becoming a full time activity just to keep up. I wonder if the time is coming to start collecting real experiences into a form that makes it easier for new users to work out how to attack their problem. I hate to re-invent the wheel and if this exists in some form elsewhere, I'd like to know. If not, then it might be good to capture this knowledge in some way. I'm interested in some views from the user community on what they would like to see. Maybe the way to go is add some pages to the JBoss Drools wiki and evolve it from there, and provide a way for the drools user community to contribute to the overall success of Drools, rather than just ask questions. -- ___ rules-users mailing listrules-us...@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- ___ rules-users mailing listrules-us...@lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users