The jBPM User's Guide states the following:
anonymous wrote : The nodetype node expects one subelement action. The action is executed
when the execution arrives in the node. The code you write in the actionhandler can do
anything you want but it is also responsible for propagating the execution.
I have a trasition (moreInfoLevel_1) to a Node (notifyMoreInfo) and then an action tied to
the on-enter event (NotifyMoreInfo). I am not manually propagating the execution, but the
token ends up in the next node (the end state). Here is my process definition.
| <?xml version="1.0" encoding="UTF-8"?>
|
| <process-definition xmlns="urn:jbpm.org:jpdl-3.1"
name="dssdar.process">
| <start-state name='createRequest'>
| <transition name="propLevel_1" to="review1task">
| <action name="notifySupervisor"
class="com.lmco.dssdar.action.handler.NotifyReviewer">
| <message>notifySupervisor</message>
| </action>
| </transition>
| </start-state>
| <end-state name='end' />
| <node name="notifyreject">
| <event type="node-enter">
| <action name="notifyRejectAction"
class="com.lmco.dssdar.action.handler.NotifyReject">
| <message>notifyRejectAction</message>
| </action>
| </event>
| <transition name="" to="end"></transition>
| </node>
| <node name="notifyapprove">
| <event type="node-enter">
| <action name="notifyApproveAction"
class="com.lmco.dssdar.action.handler.NotifyApprove">
| <message>notifyApproveAction</message>
| </action>
| </event>
| <transition name="" to="end"></transition>
| </node>
| <task-node name="review1task">
| <task name="supervisorReview">
| <assignment
class="com.lmco.dssdar.action.handler.AssignTask">
| <actorID>SUPERVISOR</actorID>
| </assignment>
| </task>
| <transition name="rejectLevel_1"
to="notifyreject"></transition>
| <transition name="propLevel_2" to="review2task">
| <action name="notifyIAO"
class="com.lmco.dssdar.action.handler.NotifyReviewer">
| <message>IAO</message>
| </action>
| </transition>
| <transition name="moreInfoLevel_1"
to="notifymoreinfo"></transition>
| </task-node>
| <task-node name="review2task">
| <task name="iaoReview">
| <assignment
class="com.lmco.dssdar.action.handler.AssignTask">
| <actorID>IAO</actorID>
| </assignment>
| </task>
| <transition name="approve"
to="notifyapprove"></transition>
| <transition name="rejectLevel_2"
to="notifyreject"></transition>
| <transition name="moreInfoLevel_2"
to="notifymoreinfo"></transition>
| </task-node>
| <node name="notifymoreinfo">
| <event type="node-enter">
| <action name="notifyMoreInfoAction"
class="com.lmco.dssdar.action.handler.NotifyMoreInfo">
| <message>notifyMoreInfoAction</message>
| </action>
| </event>
| <transition name="" to="end"></transition>
| </node>
| </process-definition>
|
Here is my execute method of the NotifyMoreInfo action handler.
|
| public void execute(ExecutionContext context) throws Exception {
| context.getContextInstance().setVariable("message", message);
| System.out.println("NotyifyReviewer==> " + message );
| }
|
|
The string is printed as expected, but the transition to the next state is also executed.
Can anyone fill me in to what is happening. I expect it to remain in this state until I
manually signal the token. Is this not correct?
Is this possibly happening due to the fact there is only a single leaving transition?
TIA. Randy
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4008470#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...