[rules-users] uploading DSL/DSLR to guvnor
Hi all, is there a way to upload a DSL and DSLR in Guvnor? I see you can enter DSL values, so copy-pasting is an option... but then what about the DSLR? Thanks Daniel -- View this message in context: http://old.nabble.com/uploading-DSL-DSLR-to-guvnor-tp26156904p26156904.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] Agenda Groups basic question
Hi, I am new to Drools and trying my hands out at Drools 5. I cann't figure out how to use agenda- groups. I have a small drl file with two agenda groups and one rule per agenda-group. This doesn't seem to work. However if I happen to comment out the agenda-group attribute, the results are as expected. Please let me know what I am missing. package com.mscibarra.examples.drools.controllers; import com.mscibarra.examples.drools.domainentities.*; rule Detect and Remove Duplicate Shelves agenda-group Phase1 lock-on-active dialect mvel when $universe : LibraryUniverse() $shelf : Shelf() from $universe.shelves $shelf2 : Shelf(this != $shelf) from $universe.shelves then System.out.println(Duplicate Shelves found::+$shelf); // without the modify(), drools is not alerted about changes // $universe.shelves.remove($shelf); /* modify($universe) { shelves.remove($shelf); }; */ end rule Singleton Shelf Detector agenda-group Phase1 lock-on-active dialect mvel when $universe : LibraryUniverse(shelves.size 1) then System.out.println(Multiple Shelves found::+$universe.shelves.size); End With Regards, Kanthi Swaroop Rongala NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Rookie question: best place to locate KnowledgeBase in web application?
ljnelson wrote: My question is: where is the best place to put the various parts, and what sort of synchronization do I need to worry about? I did not see any reference to these issues in the (massive, otherwise excellent) Drools documentation. Well, OK, that generated a lot of traffic. :-) Talking to myself here, let's expand this out a bit and say: OK, how would we do this inside a stateless session bean? I am loathe to write a resource adapter for Drools. Given that, and that I'm working with stateless sessions exclusively, I'm also willing to live with several instances of Drools--i.e. if I create the engine as an instance variable (or static variable) inside my SLSB, I'm willing to live with the fact that the container might (probably will) create several instances of my SLSB, and hence several instances of my rules engine--they'll all be reading the same rules information so should vend the same results. My main question, for the two of you still reading, is around synchronization: I understand that a StatelessKnowledgeSession is thread safe, but what about acquiring it? Where else, if anywhere, will I run into threading issues? Thanks, Laird -- View this message in context: http://old.nabble.com/Rookie-question%3A-best-place-to-locate-KnowledgeBase-in-web-application--tp26152111p26157126.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] Rookie question: best place to locate KnowledgeBase in web application?
Hi Laird, In our web application we create one KnowledgeAgent and each session calls getKnowledgeBase to get the KnowledgeBase and then getStatelessSession to get a session. We have not had any threading issues. I'm pretty sure that each of those operations are thread-safe. Hope this helps, Steve rules-users-boun...@lists.jboss.org wrote on 11/02/2009 09:13:01 AM: [image removed] Re: [rules-users] Rookie question: best place to locate KnowledgeBase in web application? ljnelson to: rules-users 11/02/2009 09:16 AM Sent by: rules-users-boun...@lists.jboss.org Please respond to Rules Users List ljnelson wrote: My question is: where is the best place to put the various parts, and what sort of synchronization do I need to worry about? I did not see any reference to these issues in the (massive, otherwise excellent) Drools documentation. Well, OK, that generated a lot of traffic. :-) Talking to myself here, let's expand this out a bit and say: OK, how would we do this inside a stateless session bean? I am loathe to write a resource adapter for Drools. Given that, and that I'm working with stateless sessions exclusively, I'm also willing to live with several instances of Drools--i.e. if I create the engine as an instance variable (or static variable) inside my SLSB, I'm willing to live with the fact that the container might (probably will) create several instances of my SLSB, and hence several instances of my rules engine--they'll all be reading the same rules information so should vend the same results. My main question, for the two of you still reading, is around synchronization: I understand that a StatelessKnowledgeSession is thread safe, but what about acquiring it? Where else, if anywhere, will I run into threading issues? Thanks, Laird -- View this message in context: http://old.nabble.com/Rookie-question% 3A-best-place-to-locate-KnowledgeBase-in-web-application-- tp26152111p26157126.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] Agenda Groups basic question
You need to set the focus for an agenda group to execute. []s Edson 2009/11/2 Rongala, Kanthi kanthi.rong...@mscibarra.com Hi, I am new to Drools and trying my hands out at Drools 5. I cann’t figure out how to use agenda- groups. I have a small drl file with two agenda groups and one rule per agenda-group. This doesn’t seem to work. However if I happen to comment out the agenda-group attribute, the results are as expected. Please let me know what I am missing. *package* com.mscibarra.examples.drools.controllers; *import* com.mscibarra.examples.drools.domainentities.*; *rule* Detect and Remove Duplicate Shelves *agenda-group* Phase1 *lock-on-active* *dialect* mvel *when* $universe : LibraryUniverse() $shelf : Shelf() *from* $universe.shelves $shelf2 : Shelf(*this* != $shelf) *from*$universe.shelves *then* System.out.println(Duplicate Shelves found::+$shelf); // without the modify(), drools is not alerted about changes // $universe.shelves.remove($shelf); /* *modify*($universe) { shelves.remove($shelf); }; */ *end* *rule* Singleton Shelf Detector *agenda-group* Phase1 *lock-on-active* *dialect* mvel *when* $universe : LibraryUniverse(shelves.size 1) *then* System.out.println(Multiple Shelves found::+$universe.shelves.size); *End* With Regards, Kanthi Swaroop Rongala * * -- NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. ___ 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] Agenda Groups basic question
Hello, Maybe a typo mistake but both of your rules have the same agenda group (Phase1) Regards, Joel De : rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] De la part de Rongala, Kanthi Envoyé : lundi 2 novembre 2009 15:54 À : rules-users@lists.jboss.org Objet : [rules-users] Agenda Groups basic question Hi, I am new to Drools and trying my hands out at Drools 5. I cann't figure out how to use agenda- groups. I have a small drl file with two agenda groups and one rule per agenda-group. This doesn't seem to work. However if I happen to comment out the agenda-group attribute, the results are as expected. Please let me know what I am missing. package com.mscibarra.examples.drools.controllers; import com.mscibarra.examples.drools.domainentities.*; rule Detect and Remove Duplicate Shelves agenda-group Phase1 lock-on-active dialect mvel when $universe : LibraryUniverse() $shelf : Shelf() from $universe.shelves $shelf2 : Shelf(this != $shelf) from $universe.shelves then System.out.println(Duplicate Shelves found::+$shelf); // without the modify(), drools is not alerted about changes // $universe.shelves.remove($shelf); /* modify($universe) { shelves.remove($shelf); }; */ end rule Singleton Shelf Detector agenda-group Phase1 lock-on-active dialect mvel when $universe : LibraryUniverse(shelves.size 1) then System.out.println(Multiple Shelves found::+$universe.shelves.size); End With Regards, Kanthi Swaroop Rongala NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. Ce courriel et toutes les pièces jointes sont confidentiels et peuvent être couverts par un privilège ou une protection légale. Il est établi à l'attention exclusive de ses destinataires. Toute utilisation de ce courriel non conforme à sa destination, toute diffusion ou toute publication, totale ou partielle, est interdite, sauf autorisation expresse préalable. Toutes opinions exprimées dans ce courriel ne sauraient nécessairement refléter celle de Natixis, de ses filiales. Elles sont aussi susceptibles de modification sans notification préalable. Si vous recevez ce courriel par erreur, merci de le détruire et d'en avertir immédiatement l'expéditeur. L'Internet ne permettant pas d'assurer l'intégrité de ce courriel, Natixis décline toute responsabilité s'il a été altéré, déformé ou falsifié et chaque destinataire qui utilise ce mode de communication est supposé en accepter les risques. This email and any attachment are confidential and may be legally privileged or otherwise protected from disclosure. It is intended only for the stated addressee(s) and access to it by any other person(s) is unauthorised. Any use, dissemination or disclosure not in accordance with its purpose, either in whole or in part, is prohibited without our prior formal approval. Any opinion expressed in this email may not necessarily reflect the opinion of Natixis, its affiliates. It may also be subject to change without prior notice. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained in this email. If you have received it in error, please inform us immediately and delete all copies. The Internet can not guarantee the integrity of this email therefore Natixis shall not be liable for the email if altered, changed or falsified and anyone who communicates with us by e-mail is taken to accept these risks. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Rookie question: best place to locate KnowledgeBase in web application?
I believe acquiring a StatelessKnowledgeSession is thread safe as well. Many members of the drools dev team are traveling at the moment, hence the slow response. --- On Mon, 11/2/09, ljnelson ljnel...@gmail.com wrote: From: ljnelson ljnel...@gmail.com Subject: Re: [rules-users] Rookie question: best place to locate KnowledgeBase in web application? To: rules-users@lists.jboss.org Date: Monday, November 2, 2009, 9:13 AM ljnelson wrote: My question is: where is the best place to put the various parts, and what sort of synchronization do I need to worry about? I did not see any reference to these issues in the (massive, otherwise excellent) Drools documentation. Well, OK, that generated a lot of traffic. :-) Talking to myself here, let's expand this out a bit and say: OK, how would we do this inside a stateless session bean? I am loathe to write a resource adapter for Drools. Given that, and that I'm working with stateless sessions exclusively, I'm also willing to live with several instances of Drools--i.e. if I create the engine as an instance variable (or static variable) inside my SLSB, I'm willing to live with the fact that the container might (probably will) create several instances of my SLSB, and hence several instances of my rules engine--they'll all be reading the same rules information so should vend the same results. My main question, for the two of you still reading, is around synchronization: I understand that a StatelessKnowledgeSession is thread safe, but what about acquiring it? Where else, if anywhere, will I run into threading issues? Thanks, Laird -- View this message in context: http://old.nabble.com/Rookie-question%3A-best-place-to-locate-KnowledgeBase-in-web-application--tp26152111p26157126.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] [Droolsflow] Pagination of getTasksAssignedAsPotentialOwner (Mauricio Salatino)
Ok. Let's do this. I'm in traveling. when i come back to work, i get started with this implementation I 'm honored and grateful to contribute with Drools Thanks 2009/10/30 Mauricio Salatino sala...@gmail.com Yes, I can assist you Anderson. Let me know how you prefer to do it. Greetings On Fri, Oct 30, 2009 at 3:13 PM, Kris Verlaenen kris.verlae...@cs.kuleuven.be wrote: Anderson, We do not yet provide this kind of functionality out-of-the-box. It would definitely make sense to extend the task service so you can query tasks using parameters like maxResults, firstResult and filterBy. This would, as Mauricio explained, require the addition of additional parameters in the TaskServiceSession.getTasksAssignedAsPotentialOwner method, and the associated name query TasksAssignedAsPotentialOwnerWithGroups. Do you think you can assist us in adding this functionality? Simply check out from source, modify the task code as necessary, write a simple test and provide us with the patch? Thx, Kris Quoting Anderson vasconcelos anderson.v...@gmail.com: Hi Mauricio Salatino. Analysing the code of Drools-Process-Task, i found TaskServiceSession. In this service , has the entitityManager , and he called the TasksAssignedAsPotentialOwner. I just wanna to pass a parameter : tasksAssignedAsPotentialOwner.setFirstResult(firstResult); tasksAssignedAsPotentialOwner.setMaxResults(maxResult) To do this, the best way is override a lot of classes? DroosProcessTask,Cannot provided this for me? Thanks Message: 3 Date: Thu, 29 Oct 2009 15:14:50 -0500 From: Mauricio Salatino sala...@gmail.com Subject: Re: [rules-users] [Droolsflow] Pagination of getTasksAssignedAsPotentialOwn er To: Rules Users List rules-users@lists.jboss.org Message-ID: efac615a0910291314g5ad73ddfr649a989bb83e1...@mail.gmail.com Content-Type: text/plain; charset=iso-8859-1 Yes.. also probably you need to extend the named query too.. 2009/10/29 Anderson vasconcelos anderson.v...@gmail.com HI It's possible to build a real pagination search using MinaTaskClient.getTasksAssignedAsPotentialOwner() (Using Limit and Offset)? Must I Override the implementation of BlockingTaskSummaryResponseHandler or MinaTaskClient? Thanks ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator??
Hi, Is it possible to pass the time value as a parameter in temporal operator?? In the below example, I would like to pass $time as a variable, any integer value/String value representing time. ( ex: $time = 10s) Ex; $eventA : EventA( this after[ $time s ] $eventB ) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator??
no, right now that is not possible. 2009/11/2 Chetan Mahadev mahadev.che...@gmail.com Hi, Is it possible to pass the time value as a parameter in temporal operator?? In the below example, I would like to pass $time as a variable, any integer value/String value representing time. ( ex: $time = 10s) Ex; $eventA : EventA( this after[ $time s ] $eventB ) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools flow web console (5.1.M1) deployment in JBoss
Hi Satish/Krisv, I’m new to Drools. I’m stuck on the same issue. Although I did every step you have mentioned. My jboss still starts with error. I’ve downloaded gwt-console-server from http://repository.jboss.com/maven2/org/drools/gwt-console-server-drools/5.1.0.M1/ Please let me know from where did you get the right version? While starting the drools-flow the first error comes as: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalArgumentException: Could not connect task client at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)... When I click on the process-the following error appears: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Could not initialize stateful knowledge session: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) When I'm trying to run the same process on eclipse I can see the following error: java.lang.IllegalArgumentException: Could not connect task client at org.drools.process.workitem.wsht.WSHumanTaskHandler.connect(WSHumanTaskHandler.java:51) at org.drools.process.workitem.wsht.WSHumanTaskHandler.executeWorkItem(WSHumanTaskHandler.java:58) at org.drools.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem(DefaultWorkItemManager.java:55) at org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:95) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135) at org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) at org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:16) at org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:185) at org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:230) at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1689) at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289) I'm not able to run any of the test consisting user task in 5.1.M1 version. I'd appreciate your comments and help on the same. Thanks Alok satjo wrote: You pointed out the exact issue. This was what happened. I was using defaultpackage of Guvnor, thinking it refers to the default. After I created the new package called default and uploaded the definition, it worked fine and it did not throw any exception. Kris Verlaenen wrote: When you uploaded your sample process to Guvnor, did you add it to the default package (notice that the name should really be default, and not defaultPackage, which is created in Guvnor by default)? And after adding the process to the package, did you build the package on Guvnor? The NPE seems to indicate that it cannot find the knowledge base for package default on Guvnor. Kris Quoting satjo jo_sat...@yahoo.com: Thanks for your response! It did fix the problem and I do not get the exception after I log in if I run org.drools.task.RunTaskService. I, however, get exception if I click on 'Process Definitions'-'Definition List'. Here is the stack trace. URL: 'http://localhost:8080/gwt-console-server/rs/process/definitions' Action: 'org.jboss.bpm.console.client.process.UpdateDefinitionsAction' Exception: 'class com.google.gwt.http.client.RequestException' HTTP 500: HTTP Status 500 - type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Could not initialize stateful knowledge session: null org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230) org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206)
Re: [rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator??
You could do this by generating the rule text, but it would no be dynamic. (i.e. you'd have to regenerate the rule and reload it into the ruleset.) --- On Mon, 11/2/09, Mauricio Salatino sala...@gmail.com wrote: From: Mauricio Salatino sala...@gmail.com Subject: Re: [rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator?? To: Rules Users List rules-users@lists.jboss.org Date: Monday, November 2, 2009, 11:45 AM no, right now that is not possible. 2009/11/2 Chetan Mahadev mahadev.che...@gmail.com Hi, Is it possible to pass the time value as a parameter in temporal operator?? In the below example, I would like to pass $time as a variable, any integer value/String value representing time. ( ex: $time = 10s) Ex; $eventA : EventA( this after[ $time s ] $eventB ) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - -Inline Attachment Follows- ___ 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] How to execute a Process API result?
I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How to execute a Process API result?
Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How to execute a Process API result?
I'm working with Drools 5. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:45 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How to execute a Process API result?
Ok, so you need to start using the Drools 5 APIs. Please take a look at the Drools 5 documentation: http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-flow/html_single/index.html#d0e1375 In the section 3.2 Using a Process in Your Application you will find the correct api's. Greetings. 2009/11/2 Scott Stevenson scott.steven...@datacert.com I’m working with Drools 5. *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *Mauricio Salatino *Sent:* Monday, November 02, 2009 1:45 PM *To:* Rules Users List *Subject:* Re: [rules-users] How to execute a Process API result? Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How to execute a Process API result?
I read that section but I'm still not clear how to add my process (created like the section just before) to the KnowledgeBase. Section 3.2 shows adding an existing .rf file. I have this code: RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess(org.drools.sample.workflow.dynamic ); factory .name(HelloWorldRuleSet) .version(1.0) .packageName(org.drools) .startNode(1).name(Start).done() .actionNode(2) .name(Action) .action(java, System.out.println(\Inside Action 1\);).done() .endNode(3).name(End).done() .connection(1, 2) .connection(2, 3); factory.validate().getProcess(); How does the getProcess() result get added to a KnowledgeBase? Thanks, Scott From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:57 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Ok, so you need to start using the Drools 5 APIs. Please take a look at the Drools 5 documentation: http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-flow/htm l_single/index.html#d0e1375 In the section 3.2 Using a Process in Your Application you will find the correct api's. Greetings. 2009/11/2 Scott Stevenson scott.steven...@datacert.com I'm working with Drools 5. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:45 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools Flow BAM Module(5.1.0.M1) - Why primary key's are of string/varchar type
I am using Drools Flow BAM (5.1.0.M1) module to store the processes instances for audit purpose. I generated the DDL with the help of Hibernate Tools against the MYSQL 5.1(INNODB) DDL for the 2 tables are given below -- the interesting part is the id column as varchar this gives error when we try to execute the DDL against the mysql. create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB; create table AUDIT_PROCESS_INSTANCE_LOG ( id varchar(255) not null auto_increment, processInstanceId bigint, processId varchar(255), START_DATE datetime, END_DATE datetime, primary key (id) ) ENGINE=InnoDB; The error we get is Error: Incorrect column specifier for column 'id' SQLState: 42000 ErrorCode: 1063 Error occured in: create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB I used a naming strategy for the hibernate that's why the above table names. My question is when the primary key generation is native why not let these columns be of type 'long' and get generated as bigint for the sql type. If they can't be changed - should we just extend the above classes and have these fields as long/bigint. Any suggestion will be appreciated. Thanks Vijay ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How to execute a Process API result?
Right, I want to use the Fluent API to create dynamic processes. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 2:14 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? That are only the fluent api to create processes. I recommend you the other approach: KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource(MyProcess.rf), ResourceType.DRF ); KnowledgeBuilderErrors errors = kbuilder.getErrors(); if (errors.size() 0) { for (KnowledgeBuilderError error: errors) { System.err.println(error); } throw new IllegalArgumentException(Could not parse knowledge.); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.startProcess(com.sample.MyProcess); If you need the reference to the process instance you can do: WorkFlowProcessInstance processInstance = ksession.startProcess(...); Work 2009/11/2 Scott Stevenson scott.steven...@datacert.com I read that section but I'm still not clear how to add my process (created like the section just before) to the KnowledgeBase. Section 3.2 shows adding an existing .rf file. I have this code: RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess(org.drools.sample.workflow.dynamic ); factory .name(HelloWorldRuleSet) .version(1.0) .packageName(org.drools) .startNode(1).name(Start).done() .actionNode(2) .name(Action) .action(java, System.out.println(\Inside Action 1\);).done() .endNode(3).name(End).done() .connection(1, 2) .connection(2, 3); factory.validate().getProcess(); How does the getProcess() result get added to a KnowledgeBase? Thanks, Scott From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:57 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Ok, so you need to start using the Drools 5 APIs. Please take a look at the Drools 5 documentation: http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-flow/htm l_single/index.html#d0e1375 In the section 3.2 Using a Process in Your Application you will find the correct api's. Greetings. 2009/11/2 Scott Stevenson scott.steven...@datacert.com I'm working with Drools 5. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:45 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com -
Re: [rules-users] Drools flow web console (5.1.M1) deployment in JBoss
hi Alok, Here are steps you might want to check. 1.) Make sure you have started a user task. As Kris suggests 'To start a task service locally: the drools-process-task module contains a org.drools.task.RunTaskService class in the src/test/java source folder that can be used to start a task server. ' 2.) Make sure you have created a sample data source (e.g testDS1-ds.xml in default\deploy) as shown in https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/docs/drools-flow/html/ch14.html#d0e3553 3.) Most important one: In Guvnor, create a new package default (not the defaultpackage that comes with Guvnor) and upload a sample workflow there. Save it and build the package. From your error, it looks like you have not started the user task (Step1) Alok Patnaik wrote: Hi Satish/Krisv, I’m new to Drools. I’m stuck on the same issue. Although I did every step you have mentioned. My jboss still starts with error. I’ve downloaded gwt-console-server from http://repository.jboss.com/maven2/org/drools/gwt-console-server-drools/5.1.0.M1/ Please let me know from where did you get the right version? While starting the drools-flow the first error comes as: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalArgumentException: Could not connect task client at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)... When I click on the process-the following error appears: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Could not initialize stateful knowledge session: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) When I'm trying to run the same process on eclipse I can see the following error: java.lang.IllegalArgumentException: Could not connect task client at org.drools.process.workitem.wsht.WSHumanTaskHandler.connect(WSHumanTaskHandler.java:51) at org.drools.process.workitem.wsht.WSHumanTaskHandler.executeWorkItem(WSHumanTaskHandler.java:58) at org.drools.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem(DefaultWorkItemManager.java:55) at org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:95) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135) at org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) at org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:16) at org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:185) at org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:230) at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1689) at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289) I'm not able to run any of the test consisting user task in 5.1.M1 version. I'd appreciate your comments and help on the same. Thanks Alok satjo wrote: You pointed out the exact issue. This was what happened. I was using defaultpackage of Guvnor, thinking it refers to the default. After I created the new package called default and uploaded the definition, it worked fine and it did not throw any exception. Kris Verlaenen wrote: When you uploaded your sample process to Guvnor, did you add it to the default package (notice that the name should really be default, and not defaultPackage, which is created in Guvnor by default)? And after adding the process to the package, did you build the package on Guvnor? The NPE seems to indicate that it cannot find the knowledge base for package default on Guvnor. Kris Quoting satjo jo_sat...@yahoo.com: Thanks for your response! It did fix the problem and I do not get the exception after I log in if I run org.drools.task.RunTaskService. I, however, get exception if I click on 'Process Definitions'-'Definition List'. Here is the stack trace. URL: 'http://localhost:8080/gwt-console-server/rs/process/definitions' Action:
Re: [rules-users] How to execute a Process API result?
Here is my attempt at using the Drools 5 API to execute my dynamically created Process: KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); org.drools.rule.Package p = new org.drools.rule.Package(sample); p.addProcess(createProcess()); KnowledgePackageImp kpi = new KnowledgePackageImp(); kpi.pkg = p; ListKnowledgePackage list = new ArrayListKnowledgePackage(); list.add(kpi); kbase.addKnowledgePackages(list); StatefulKnowledgeSession ksess = kbase.newStatefulKnowledgeSession(); ksess.startProcess(org.drools.sample.workflow.dynamic); I still get the same null pointer error. Perhaps the problem is in my implementation of the Process API? The code under createProcess is this: RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess(com.datacert.workflow.dynamic); factory .name(HelloWorldRuleSet) .version(1.0) .packageName(org.drools) .startNode(1).name(Start).done() .actionNode(2) .name(Action) .action(java, System.out.println(\Inside Action 1\);).done() .endNode(3).name(End).done() .connection(1, 2) .connection(2, 3); return factory.validate().getProcess(); Thanks, Scott From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 2:14 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? That are only the fluent api to create processes. I recommend you the other approach: KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newClassPathResource(MyProcess.rf), ResourceType.DRF ); KnowledgeBuilderErrors errors = kbuilder.getErrors(); if (errors.size() 0) { for (KnowledgeBuilderError error: errors) { System.err.println(error); } throw new IllegalArgumentException(Could not parse knowledge.); } KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.startProcess(com.sample.MyProcess); If you need the reference to the process instance you can do: WorkFlowProcessInstance processInstance = ksession.startProcess(...); Work 2009/11/2 Scott Stevenson scott.steven...@datacert.com I read that section but I'm still not clear how to add my process (created like the section just before) to the KnowledgeBase. Section 3.2 shows adding an existing .rf file. I have this code: RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess(org.drools.sample.workflow.dynamic ); factory .name(HelloWorldRuleSet) .version(1.0) .packageName(org.drools) .startNode(1).name(Start).done() .actionNode(2) .name(Action) .action(java, System.out.println(\Inside Action 1\);).done() .endNode(3).name(End).done() .connection(1, 2) .connection(2, 3); factory.validate().getProcess(); How does the getProcess() result get added to a KnowledgeBase? Thanks, Scott From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:57 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Ok, so you need to start using the Drools 5 APIs. Please take a look at the Drools 5 documentation: http://downloads.jboss.com/drools/docs/5.0.1.26597.FINAL/drools-flow/htm l_single/index.html#d0e1375 In the section 3.2 Using a Process in Your Application you will find the correct api's. Greetings. 2009/11/2 Scott Stevenson scott.steven...@datacert.com I'm working with Drools 5. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Mauricio Salatino Sent: Monday, November 02, 2009 1:45 PM To: Rules Users List Subject: Re: [rules-users] How to execute a Process API result? Are you working just with the Drools 4 version? Or you can jump to the Drools 5 version? On Mon, Nov 2, 2009 at 5:41 PM, Scott Stevenson scott.steven...@datacert.com wrote: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1.
[rules-users] Best way to get fix from JIRA into local drools install?
I have been paying attention to https://jira.jboss.org/jira/browse/JBRULES-2230 because I am hoping to use decision tables from within a changeset in a project I am developing. Code to fix this issue was checked in on Oct 18th. What is the best way to use this updated code? From what I've been able to find, it sounds like I will need to build my own local instance of drools; I can't find a source of dot-revisions, or nightly builds. So are my options: 1. Grab trunk, manually apply the patch to the one file, build 2. Grab a snapshot of svn and build 3. Is there a nightly build process that I can download a compiled version from? Of these 3 which is best, for some definition of best? Adam ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools flow web console (5.1.M1) deployment in JBoss
I just build from trunk usually, but the M1 version should be fine. The error Could not connect to task client is probably caused by the fact that you did not set up a task service (you need one if you want to use human tasks)? Check out https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/docs/drools-flow/html/ch.Human_Tasks.html#d0e2117 Not sure about that second error, but let me know if that is still there if you have the task service running. Kris Quoting Alok Patnaik alok...@yahoo.com: Hi Satish/Krisv, Iâm new to Drools. Iâm stuck on the same issue. Although I did every step you have mentioned. My jboss still starts with error. Iâve downloaded gwt-console-server from http://repository.jboss.com/maven2/org/drools/gwt-console-server-drools/5.1.0.M1/ Please let me know from where did you get the right version? While starting the drools-flow the first error comes as: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalArgumentException: Could not connect task client at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319)... When I click on the process-the following error appears: ERROR [[Resteasy]] Servlet.service() for servlet Resteasy threw exception org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Could not initialize stateful knowledge session: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider at org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) When I'm trying to run the same process on eclipse I can see the following error: java.lang.IllegalArgumentException: Could not connect task client at org.drools.process.workitem.wsht.WSHumanTaskHandler.connect(WSHumanTaskHandler.java:51) at org.drools.process.workitem.wsht.WSHumanTaskHandler.executeWorkItem(WSHumanTaskHandler.java:58) at org.drools.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem(DefaultWorkItemManager.java:55) at org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger(WorkItemNodeInstance.java:95) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection(NodeInstanceImpl.java:148) at org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted(NodeInstanceImpl.java:135) at org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted(StartNodeInstance.java:49) at org.drools.workflow.instance.node.StartNodeInstance.internalTrigger(StartNodeInstance.java:41) at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger(NodeInstanceImpl.java:112) at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart(RuleFlowProcessInstance.java:16) at org.drools.process.instance.impl.ProcessInstanceImpl.start(ProcessInstanceImpl.java:185) at org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start(WorkflowProcessInstanceImpl.java:230) at org.drools.common.AbstractWorkingMemory.startProcess(AbstractWorkingMemory.java:1689) at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess(StatefulKnowledgeSessionImpl.java:289) I'm not able to run any of the test consisting user task in 5.1.M1 version. I'd appreciate your comments and help on the same. Thanks Alok satjo wrote: You pointed out the exact issue. This was what happened. I was using defaultpackage of Guvnor, thinking it refers to the default. After I created the new package called default and uploaded the definition, it worked fine and it did not throw any exception. Kris Verlaenen wrote: When you uploaded your sample process to Guvnor, did you add it to the default package (notice that the name should really be default, and not defaultPackage, which is created in Guvnor by default)? And after adding the process to the package, did you build the package on Guvnor? The NPE seems to indicate that it cannot find the knowledge base for package default on Guvnor. Kris Quoting satjo jo_sat...@yahoo.com: Thanks for your response! It did fix the problem and I do not get the exception after I log in if I run org.drools.task.RunTaskService. I, however, get exception if I click on 'Process Definitions'-'Definition List'. Here is the stack trace. URL: 'http://localhost:8080/gwt-console-server/rs/process/definitions' Action: 'org.jboss.bpm.console.client.process.UpdateDefinitionsAction' Exception: 'class com.google.gwt.http.client.RequestException' HTTP 500: HTTP Status 500 -
Re: [rules-users] How to execute a Process API result?
Scott, A process is also compiled before it is executable. To load a process constructed using the API, either: * load it as any other process by transforming it to XML first using the XmlRuleFlowProcessDumper * compile the process before adding it to your rulebase, using ProcessBuilder.buildProcess(..) Kris Quoting Scott Stevenson scott.steven...@datacert.com: I'm trying to execute the result of the Process API and running into problems most likely stemming from my ignorance. I'm creating a new process following the sample code from section 3.1.3.2 of the User Guide. My sample process consists of: 1. StartNode 2. ActionNode that prints Hello World 3. EndNode What I don't understand is how to get my new process into a KnowledgeBase and KnowledgeSession for execution. I've tried the following (Drools 4 method, I believe) as well: AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(); ruleBase.addProcess(createProcess()); InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase); workingMemory.startProcess(org.drools.sample.workflow.dynamic); The result of the previous code is a RuntimeException (unable to execute Action). Inner exception is null pointer from inside the ActionNodeInstance class. Where am going wrong in implementing the Process API? Thank you, Scott Stevenson ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Flow BAM Module(5.1.0.M1) - Why primary key's are of string/varchar type
Does changing the type of the id field from String to long fix your issue? Because to me it seems that MySQL is not accepting the name id as a valid column name? I guess changing the mapping so that it uses a different column name could fix the issue? Kris Quoting Vijay K Pandey vpan...@mdes.ms.gov: I am using Drools Flow BAM (5.1.0.M1) module to store the processes instances for audit purpose. I generated the DDL with the help of Hibernate Tools against the MYSQL 5.1(INNODB) DDL for the 2 tables are given below -- the interesting part is the id column as varchar this gives error when we try to execute the DDL against the mysql. create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB; create table AUDIT_PROCESS_INSTANCE_LOG ( id varchar(255) not null auto_increment, processInstanceId bigint, processId varchar(255), START_DATE datetime, END_DATE datetime, primary key (id) ) ENGINE=InnoDB; The error we get is Error: Incorrect column specifier for column 'id' SQLState: 42000 ErrorCode: 1063 Error occured in: create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB I used a naming strategy for the hibernate that's why the above table names. My question is when the primary key generation is native why not let these columns be of type 'long' and get generated as bigint for the sql type. If they can't be changed - should we just extend the above classes and have these fields as long/bigint. Any suggestion will be appreciated. Thanks Vijay Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Best way to get fix from JIRA into local drools install?
If the fix has already been added to trunk, simply use the latest snapshot releases, which can be found on Hudson (and are also on the snapshot maven repo): http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/ Kris Quoting Adam Rinehart adam.rineh...@gmail.com: I have been paying attention to https://jira.jboss.org/jira/browse/JBRULES-2230 because I am hoping to use decision tables from within a changeset in a project I am developing. Code to fix this issue was checked in on Oct 18th. What is the best way to use this updated code? From what I've been able to find, it sounds like I will need to build my own local instance of drools; I can't find a source of dot-revisions, or nightly builds. So are my options: 1. Grab trunk, manually apply the patch to the one file, build 2. Grab a snapshot of svn and build 3. Is there a nightly build process that I can download a compiled version from? Of these 3 which is best, for some definition of best? Adam Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] import static function with varargs as one of the parameters doesn't work?
Hi guys, I have a question regarding the import function feature in Drools 5.1.0M. I am reading the Drools JBoss Rules 5.0 book Developer's guide by Michal Bali and tried one of the examples but somehow I couldn't get my rules work with the method that has varargs. Here's what I have (copied from page 123): public class ValidationHelper { public static void error (RuleContext kcontext, Object... context) { KnowledgeRuntime knowledgeRuntime = kcontext.getKnowledgeRuntime(); ValidationReport validationReport = (ValidationReport)knowledgeRuntime.getGlobal(validationReport); ReportFactory reportFactory = (ReportFactory) knowledgeRuntime.getGlobal(reportFactory); kcontext.insertLogical(reportFactory.createMessage( Message.Type.ERROR, kcontext.getRule().getName(), context)); } } then in my drools file (copied from page 42): i have import org.drools.runtime.rule.RuleContext; import function ValidationHelper.error; ... rule test when #condition then error(drools) but when I ran the test, I got error message: Exception in thread main org.drools.runtime.rule.ConsequenceException: [Error: unable to resolve method: ValidationHelper.error(org.drools.base.DefaultKnowledgeHelper) [arglength=1]] If I remove the parameter Object... context, then everything worked. But I do need the varargs here because I need my error message to be more specific. Did anyone else encounter the same problems? thanks! ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Flow BAM Module(5.1.0.M1) - Why primary key's are of string/varchar type
Thanks for the reply Kris. Before posting to the forum I tested with different name of id column such as primaryid. The name id is not a problem as I have already generated the DDL for the tables of WSHT task and all the tables got created fine with id as the primary key column with 'bigint' as the column type. So just to test it again I changed the 'id' column name to 'primaryid' - the error is same Error: Incorrect column specifier for column 'primaryid' SQLState: 42000 ErrorCode: 1063 When i converted the varchar to bigint for the 'id' column - tables got created fine. Do let me know what do you think and how should I approach this issue? Vijay -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Kris Verlaenen Sent: Monday, November 02, 2009 6:11 PM To: Rules Users List; Vijay K Pandey Subject: Re: [rules-users] Drools Flow BAM Module(5.1.0.M1) - Why primary key's are of string/varchar type Does changing the type of the id field from String to long fix your issue? Because to me it seems that MySQL is not accepting the name id as a valid column name? I guess changing the mapping so that it uses a different column name could fix the issue? Kris Quoting Vijay K Pandey vpan...@mdes.ms.gov: I am using Drools Flow BAM (5.1.0.M1) module to store the processes instances for audit purpose. I generated the DDL with the help of Hibernate Tools against the MYSQL 5.1(INNODB) DDL for the 2 tables are given below -- the interesting part is the id column as varchar this gives error when we try to execute the DDL against the mysql. create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB; create table AUDIT_PROCESS_INSTANCE_LOG ( id varchar(255) not null auto_increment, processInstanceId bigint, processId varchar(255), START_DATE datetime, END_DATE datetime, primary key (id) ) ENGINE=InnoDB; The error we get is Error: Incorrect column specifier for column 'id' SQLState: 42000 ErrorCode: 1063 Error occured in: create table AUDIT_NODE_INSTANCE_LOG ( id varchar(255) not null auto_increment, type integer, nodeInstanceId varchar(255), nodeId varchar(255), processInstanceId bigint, processId varchar(255), DATE datetime, primary key (id) ) ENGINE=InnoDB I used a naming strategy for the hibernate that's why the above table names. My question is when the primary key generation is native why not let these columns be of type 'long' and get generated as bigint for the sql type. If they can't be changed - should we just extend the above classes and have these fields as long/bigint. Any suggestion will be appreciated. Thanks Vijay Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ 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] Agenda Groups basic question
Hi, As suggested, I made the following changes, to get the desired output. I have some questions regarding the approach to agenda-groups (in drools 5 context) 1. I had to enable auto-focus once per each agenda-group. I thought agenda-groups were stacked internally by drools engine, and auto-focus might be acting as a directional mechanism (help determine which rule under which agenda is to be triggered). Clearly, I am mistaken and it seems that auto-focus is the way to go. I would like to know about other ways to set focus on agenda-groups. I have seem code snippets on google bearing session.setFocus([agenda-group-name]). I am currently using statefulsession and cann't figure out this 'setFocus()' method 2. I was 'compelled' to comment out lock-on-active directive. I understand that lock-on-active is an variant of no-loop causing each fact to be passed to the rule only once in a active agenda (correct me if I am mistaken). With lock-on-active set, I was expecting the messages to be print once atleast, but the current behavior beats me. Code is given below: package com.mscibarra.examples.drools.controllers; import com.mscibarra.examples.drools.domainentities.*; rule Detect and Remove Duplicate Shelves agenda-group Phase1 //lock-on-active dialect mvel auto-focus when $universe : LibraryUniverse() $shelf : Shelf() from $universe.shelves $shelf2 : Shelf(this != $shelf) from $universe.shelves then System.out.println(Duplicate Shelves found::+$shelf); // without the modify(), drools is not alerted about changes /* modify($universe) { shelves.remove($shelf); }; */ end rule Singleton Shelf Detector agenda-group Phase2 //lock-on-active dialect mvel auto-focus when $universe : LibraryUniverse(shelves.size 1) then System.out.println(Multiple Shelves found::+$universe.shelves.size); end With Regards, Swaroop - - Message: 3 Date: Mon, 2 Nov 2009 10:51:32 -0500 From: Edson Tirelli ed.tire...@gmail.com Subject: Re: [rules-users] Agenda Groups basic question To: Rules Users List rules-users@lists.jboss.org Message-ID: e6dd5ba30911020751nb973184r73cd6dc46e4e5...@mail.gmail.com Content-Type: text/plain; charset=windows-1252 You need to set the focus for an agenda group to execute. []s Edson 2009/11/2 Rongala, Kanthi kanthi.rong...@mscibarra.com Hi, I am new to Drools and trying my hands out at Drools 5. I cann?t figure out how to use agenda- groups. I have a small drl file with two agenda groups and one rule per agenda-group. This doesn?t seem to work. However if I happen to comment out the agenda-group attribute, the results are as expected. Please let me know what I am missing. *package* com.mscibarra.examples.drools.controllers; *import* com.mscibarra.examples.drools.domainentities.*; *rule* Detect and Remove Duplicate Shelves *agenda-group* Phase1 *lock-on-active* *dialect* mvel *when* $universe : LibraryUniverse() $shelf : Shelf() *from* $universe.shelves $shelf2 : Shelf(*this* != $shelf) *from*$universe.shelves *then* System.out.println(Duplicate Shelves found::+$shelf); // without the modify(), drools is not alerted about changes // $universe.shelves.remove($shelf); /* *modify*($universe) { shelves.remove($shelf); }; */ *end* *rule* Singleton Shelf Detector *agenda-group* Phase1 *lock-on-active* *dialect* mvel *when* $universe : LibraryUniverse(shelves.size 1) *then* System.out.println(Multiple Shelves found::+$universe.shelves.size); *End* With Regards, Kanthi Swaroop Rongala * * -- NOTICE: If received in error, please destroy and notify sender. Sender does not intend to waive confidentiality or privilege. Use of this email is prohibited when received in error. ___ 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 -- next part -- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20091102/e88d48d7/attachment-0001.html -- Message: 4 Date: Mon, 2 Nov 2009 16:53:54 +0100 From: Costigliola Joel \(EXT\) joel.costigliola-...@natixis.com Subject: Re: [rules-users] Agenda Groups basic question To: 'Rules Users List' rules-users@lists.jboss.org Message-ID: 201216f96e6d724f9296bfacf6db54641e54c88...@mseumail03.cib.net Content-Type: text/plain; charset=iso-8859-1 Hello, Maybe a typo
Re: [rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator??
Maurico, Any plans in the future releases of Fusion?? Regds Chetan On Tue, Nov 3, 2009 at 12:40 AM, Greg Barton greg_bar...@yahoo.com wrote: You could do this by generating the rule text, but it would no be dynamic. (i.e. you'd have to regenerate the rule and reload it into the ruleset.) --- On Mon, 11/2/09, Mauricio Salatino sala...@gmail.com wrote: From: Mauricio Salatino sala...@gmail.com Subject: Re: [rules-users] [Fusion ] - Can we pass time value as a parameter in Temporal operator?? To: Rules Users List rules-users@lists.jboss.org Date: Monday, November 2, 2009, 11:45 AM no, right now that is not possible. 2009/11/2 Chetan Mahadev mahadev.che...@gmail.com Hi, Is it possible to pass the time value as a parameter in temporal operator?? In the below example, I would like to pass $time as a variable, any integer value/String value representing time. ( ex: $time = 10s) Ex; $eventA : EventA( this after[ $time s ] $eventB ) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - -Inline Attachment Follows- ___ 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 Flow Persistence : How can I use Geronimo Transaction Manager Instead of Bitronix Transaction Manager.
Hi, I have query regarding the Transaction Manager in Drools persistence. I am working on OFBiz project an application in which I have integrated it with Drools. When I try to use the persistence of Drools with OFBiz, there is a transaction conflict between them. Since I want to use OFBiz transaction manager i.e. Geronimo. So can you provide me the settings to change the default Bitronix Transaction Manager to Geronimo Transaction Manager. BTW I am using Tomcat as an application server. Thanks Regards Pardeep Ruhil LT Infotech Ltd Mumbai Ph: +919820283884 Larsen Toubro Infotech Ltd. www.Lntinfotech.com This Document is classified as: LT Infotech Proprietary LT Infotech Confidential LT Infotech Internal Use Only LT Infotech General Business This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. _ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users