动作是在流程执行的事件上被执行的java代码片断。注意动作被放置在事件与被放置在节点之间的差异。放置在事件中的动作当事件激活时被执行,事件上的动作不能影响流程的控制流,放置在node上的动作则有传播流程执行的职责 。
我们将前一个专题(node)的例子作一点改动:
<start-state name="start">
<transition name="tr1" to="node1"></transition>
</start-state>
<node name="node1">
<event type="node-leave">
<action class="com.jeffentest.JeffenActionHandler">
<msg>HELLO</msg>
</action>
</event>
<transition name="tr2" to="end1"></transition>
</node>
<end-state name="end1"></end-state>
----------------------------------
运行结果:
StartState(start)
HELLOjeffen
EndState(end1)
Exception in thread "main" org.jbpm.JbpmException: couldn't signal token 'Token(/)' : node 'EndState(end1)' doesn't have a default transition
注意这里的异常,加了event,运行的步骤就不同了。对用工作流这种关键的开发还是谨慎点,多做测试。