深入浅出JBPM读书笔记(六)_流程节点详解2_Node节点详解

1.为该Node节点添加Action
选中Node节点,通过Properties窗口切换到Action标签页,action的实现方式有两种,一种是Expression,输入JPDL表达式来定义具体的Action;另一种是Handler,选择一个具体的Java类来处理Action.这里选择Handler方式,设置如下:

深入浅出JBPM读书笔记(六)_流程节点详解2_Node节点详解_第1张图片
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节点的事件如下:

深入浅出JBPM读书笔记(六)_流程节点详解2_Node节点详解_第2张图片

再次运行上面测试代码

3.结果分析
Node节点上定义的action会在Node节点在node-enter执行后且node-leave执行前执行

4.Node的几个常用属性
action,script,create-timer,cancel-timer

你可能感兴趣的:(xml,jbpm,ITeye,读书)