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>
...
@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");
 ...
 }
}
Please file a jira issue with a runnable example/testcase.