[jboss-dev-forums] [Design of JBoss jBPM] - Re: GetOutcomes returns additional transition

shekharv do-not-reply at jboss.com
Thu Jul 2 15:03:08 EDT 2009


No. 

It allows for that.
Here is a small excerpt from the TaskActivity class:


  | if ( (outgoingTransitions!=null)
  |          && (!outgoingTransitions.isEmpty())
  |        ) {
  |       transition = activity.findOutgoingTransition(signalName);
  |       if (transition==null) {
  |         if (Task.STATE_COMPLETED.equals(signalName)) {
  |           if (outgoingTransitions.size()==1) {
  |             transition = outgoingTransitions.get(0);
  |           } else {
  |             transition = activity.getDefaultOutgoingTransition();
  |           }
  |         } else {
  |           // if a user specified outcome was provided and it doesn't
  |           // match with an outgoing transition name, then the process 
  |           // instance is suspended.  parked for admin intervention.
  |           ((ExecutionImpl)execution.getProcessInstance()).suspend();
  |         }
  |       }
  |       if (transition!=null) {
  |         execution.take(transition);
  |       }
  |     }
  | 

1.) If signal name was null at the time of signal, then it will take default transition, or the only one that is there.
2.) If signal name was provided and the value could be 'completed' or anything else, it first does that


  | transition = activity.findOutgoingTransition(signalName);
  | 

So it will always pick the one that you have setup in the process definition, whether it is 'completed' or any other value, it does not matter.

So in short answer to your question, the case you mentioned is handled as one would expect it.  

View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4241583#4241583

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4241583



More information about the jboss-dev-forums mailing list