Seam 2.2.0.GA: Bijection and BusinessProcess Interceptors
rissp Nov 24, 2010 5:45 AMHello!
i have some problem with jbmp process in seam.
Main process definition:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="simple"> <start-state name="start"> <transition name="to task" to="some task" /> </start-state> <task-node name="some task"> <task name="HumanTask"> <assignment actor-id="#{creator}"></assignment> </task> <transition to="Some subprocess"></transition> </task-node> <process-state name="Some subprocess"> <sub-process name="subprocess" binding="late"/> <variable access="read,write" name="neededVariable" mapped-name="variable"></variable> <transition to="end" name="to_end"> <action></action> </transition> </process-state> <end-state name="end"></end-state> </process-definition>
Sub process definition:
<?xml version="1.0" encoding="UTF-8"?> <process-definition xmlns="urn:jbpm.org:jpdl-3.2" name="subprocess"> <start-state name="start"> <transition to="Human task"></transition> <event type="node-leave"> <script>System.out.println(executionContext.getVariable("variable"));</script> </event> </start-state> <task-node name="Human task"> <task name="subHumanTask"></task> <transition to="end"></transition> </task-node> <end-state name="end"></end-state> </process-definition>
In task-node 'some task' we need to create and set into process a variable, which is needed for subprocess.
In java code it looks like this:
@Out(required = false, scope = ScopeType.BUSINESS_PROCESS, value = "neededVariable") private String someString; @EndTask public void endHumanTask(){ someString = "some value for SubProcess"; }
There is a problem.
- 1. BijectionIntercepter fills up BisinessProcessContext
- 2. BusinessProcess executes endTask, and process goes to executions (neededVariable doesn't exists in jBpm process, only in BisinessProcessContext)
- 3. After that interceptor flushes a variable from BisinessProcessContext to jBpm ContextInstance of current process
Is it common seam behaviour when seam works with subProcess/nonhuman task?