1.为该Node节点添加Action
选中Node节点,通过Properties窗口切换到Action标签页,action的实现方式有两种,一种是Expression,输入JPDL表达式来定义具体的Action;另一种是Handler,选择一个具体的Java类来处理Action.这里选择Handler方式,设置如下:
[img]http://dl.iteye.com/upload/attachment/454288/6fc6a063-efb9-3322-91a4-36d36abeb9f0.jpg[/img]
测试
2.为Node节点添加事件
设置Node节点的事件如下:
[img]http://dl.iteye.com/upload/attachment/454297/bc7b7690-6add-3730-a10c-1e37ed884de4.jpg[/img]
再次运行上面测试代码
3.结果分析
Node节点上定义的action会在Node节点在node-enter执行后且node-leave执行前执行
4.Node的几个常用属性
action,script,create-timer,cancel-timer
选中Node节点,通过Properties窗口切换到Action标签页,action的实现方式有两种,一种是Expression,输入JPDL表达式来定义具体的Action;另一种是Handler,选择一个具体的Java类来处理Action.这里选择Handler方式,设置如下:
[img]http://dl.iteye.com/upload/attachment/454288/6fc6a063-efb9-3322-91a4-36d36abeb9f0.jpg[/img]
public class TestActionHandler implements ActionHandler {
public void execute(ExecutionContext context) throws Exception {
System.out.println("采用action handler方式执行结果。。。");
}
}
测试
package com.test;
@Test
public void testNodeAction(){
ProcessDefinition processDefinition = ProcessDefinition
.parseXmlResource("helloworld/processdefinition.xml");
ProcessInstance processInstance = processDefinition
.createProcessInstance();
Token token = processInstance.getRootToken();
System.out.println("1 当前流程所处的节点名称:" + token.getNode().getName());
//让流程实例向下流转一步
token.signal();
//state1
System.out.println("2 当前流程所处的节点名称:" + token.getNode().getName());
token.signal();
//自动执行node1节点,流程向下流转,停留在state2
System.out.println("3 当前流程所处的节点名称:" + token.getNode().getName());
token.signal();
}
2.为Node节点添加事件
设置Node节点的事件如下:
[img]http://dl.iteye.com/upload/attachment/454297/bc7b7690-6add-3730-a10c-1e37ed884de4.jpg[/img]
再次运行上面测试代码
3.结果分析
Node节点上定义的action会在Node节点在node-enter执行后且node-leave执行前执行
4.Node的几个常用属性
action,script,create-timer,cancel-timer