[jboss-user] [JBoss jBPM] - Re: Using Drools for jBPM decision
turpin_vincent
do-not-reply at jboss.com
Thu Mar 12 04:59:00 EDT 2009
hi,
First thanks for answering me so fast. Actually i understood that the problem comes from the data handler witch return "null" in spite of "toDeliver" or "toEnd". But i can't find why, the file AccountAproval.drl is correctly parsed and even if when the rule doesn't evaluate to setOutcome("toDeliver"), it return null, i think that the condition in the rule is evaluated (if the syntaxe condition isn't correct i get an error about that).
For the moment i just can add that i'm working from this example: http://docs.jboss.com/seam/latest/reference/en-US/html/drools.html (chapter 14.3) btw that's why i execute the same rules again on the transition 'toDeliver' (to be closest from the example) and there is no difference if i delete this part:
| <action class="org.jboss.seam.drools.DroolsActionHandler">
| <workingMemoryName>accountApprovalWorkingMemory</workingMemoryName>
| <assertObjects>
| <element>#{actor}</element>
| <element>#{orderStock}</element>
| </assertObjects>
| </action >
I'm going to try an other way with less code in the process and more in the java class like in this example: http://www.jboss.org/community/docs/DOC-11096.
I give my java class too (mabe it will help) i think that the problem can come from the fact that i dont know if i have to declare again the data handler in this class or if the code in the process is enough.
| package org.domain.test.session;
|
| import org.jboss.seam.annotations.bpm.CreateProcess;
| import org.jboss.seam.annotations.bpm.EndTask;
| import org.jboss.seam.annotations.Name;
| import org.jboss.seam.annotations.bpm.StartTask;
| import org.jboss.seam.annotations.*;
| import org.jboss.seam.ScopeType;
|
| @Name("orderStock")
| public class OrderStock
| {
|
| @Out(scope=ScopeType.BUSINESS_PROCESS, required=false)
| Long processQuantity;
|
| public Long getProcessQuantity() {
| return processQuantity;
| }
|
| public void setProcessQuantity(Long processQuantity) {
| this.processQuantity = processQuantity;
| }
|
| private int quantity ;
|
| public int getQuantity()
| {
| return quantity;
| }
|
| public void setQuantity(int quantity) {
|
| this.quantity = quantity;
| }
|
| @CreateProcess(definition="simple")
|
| public void startProcess()
| {
| processQuantity = new Long(getQuantity());
| System.out.println("Order: "+getQuantity());
|
| }
|
| @StartTask
| @EndTask(transition="todecision")
| public void done()
| {
| System.out.println("done");
| }
|
| @StartTask
| @EndTask(transition="cancel")
| public void cancel()
| {
| }
|
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217313#4217313
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217313
More information about the jboss-user
mailing list