JBPM4之decision节点:2、好学生|坏学生|超级学生

JBPM入门系列文章:

JBPM4入门——1.jbpm简要介绍

JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件

JBPM4入门——3.JBPM4开发环境的搭建

JBPM4入门——4.封装流程管理的工具类(JbpmUtil) 

JBPM4入门——5.流程定义的发布、查询、删除

JBPM4入门——6.流程实例的创建和执行

JBPM4入门——7.等待节点的单条线手动执行

JBPM4入门——8.等待节点的分支执行

JBPM4入门——9.自动节点单线执行

——————————————华丽分割线————————————————


JBPM4之decision节点:2、好学生|坏学生|超级学生_第1张图片
 以上流程图有三种情况:这样的话我们就不能用之前的三目运算符的方式来做判断了。

现在我们使用decision节点本身的expr属性来做判断!!

 

 流程图的Expression的表达式

JBPM4之decision节点:2、好学生|坏学生|超级学生_第2张图片
 

注意:如果修改了流程图的话需要重新发布一下该流程图。让它自动寻找最新版本

后台测试代码如下:

package com.test.test;

import java.util.HashMap;
import java.util.Map;
import com.test.util.JbpmOprations;
import com.test.util.JbpmUtil;

public class DecisionTest {

	public static void main(String[] args) {
		//发布decision节点的流程定义
		JbpmOprations.deploy("jpdl/decision01.jpdl.xml");
		
		Integer score = 44;
		
		//流程变量:一般是一个map<String,Object>
		Map<String,Object> varMap = new HashMap<String,Object>();
		//使用decision的expr属性来做判断的话。本身就是一个流程判断
		if(score<60 && score > 0){
			varMap.put("tname", "to state2");
		}else if(score > 60 && score < 100){
			varMap.put("tname", "to state1");
		}else{
			varMap.put("tname", "to supper student");
		}
		
		//启动该流程实例:并绑定流程局部变量varMap
		JbpmUtil.getExecutionService()
		.startProcessInstanceByKey("decision01", varMap);
	}
}

 以上代码已经设置了score的值为44.按道理的话会走坏学生的那条线。

执行完以上代码后。查看后台数据库表中的值


 

 

你可能感兴趣的:(jbpm4)