[jboss-user] [JBoss Seam] - jBPM, action in a start-statestart-task and injection

ChristopheA do-not-reply at jboss.com
Wed Oct 24 05:57:00 EDT 2007


I have a jBPM process, with actions fired from various nodes (to send notification emails).

My backing bean is a SFSB, that retrieve business process variables by injection.

The problem is that injection is working well from every action method cal, EXCEPT when action method is called from start node : injected variables are null, although they exist in the business process context.

My jBPM graph :


  | <process-definition  name="EventApproval"
  | 			      xmlns="urn:jbpm.org:jpdl-3.1"
  |                        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  | 							xsi:schemaLocation="urn:jbpm.org:jpdl-3.1 http://jbpm.org/xsd/jpdl-3.1.xsd"
  | 							>
  |   
  | 	<start-state name="event submission">
  | 		<transition to="local head of business unit approval">
  | 			<action expression="#{processManager.sendMailTo('LOCAL_HEAD_OF_BUSINESS_UNIT')}"/>
  | 		</transition>
  | 	</start-state>
  | 
  | 
  | 	<task-node name="local head of business unit approval"> 
  | 		...
  | 	</task-node>
  | 
  | 	<decision name="decision1" expression="#{...}">
  | 		<transition to="event approved" name="? $10.000"></transition>
  | 		<transition to="local head of business line approval" name="? $10.000">
  | 			<action expression="#{processManager.sendMailTo('LOCAL_HEAD_OF_BUSINESS_LINE')}"/>
  | 		</transition>
  | 	</decision>
  | 
  | ...
  | 
  | 

My SFSB code :


  | @Stateful
  | @Name("processManager")
  | public class ProcessManagerAction implements ProcessManager
  | {
  | 	//
  | 	// Business Process Variables
  | 	//
  | 	
  | 	@In(required=false)
  | 	@Out(scope=ScopeType.BUSINESS_PROCESS, required=false)
  | 	@NotEmpty 
  | 	String eventName;
  | 	
  | 	@In(required=false)
  | 	@Out(scope=ScopeType.BUSINESS_PROCESS, required=false)
  | 	@NotEmpty 
  | 	Long requesterId;
  | 
  |         ...
  | 
  |         public void sendMailTo(Responsible resp)
  | 	{
  | 		// This is always working
  | 		Context ctx = Contexts.getBusinessProcessContext();
  | 		Long requesterId = (Long) Contexts.getBusinessProcessContext().get("requesterId");
  | 		
  | 		...
  | 		
  | 	}
  | 
  | }
  | 
  | 

Is there something wrong I haven't seen, or is it Seam that does wrong in that case ?



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

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



More information about the jboss-user mailing list