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

时间:2023-03-09 16:46:39
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、好学生|坏学生|超级学生
 以上流程图有三种情况:这样的话我们就不能用之前的三目运算符的方式来做判断了。

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

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

流程图的Expression的表达式

JBPM4之decision节点: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之decision节点:2、好学生|坏学生|超级学生

  • JBPM4之decision节点:2、好学生|坏学生|超级学生
  • 大小: 42.2 KB
  • JBPM4之decision节点:2、好学生|坏学生|超级学生
  • 大小: 72.5 KB
  • JBPM4之decision节点:2、好学生|坏学生|超级学生
  • 大小: 71.4 KB
  • JBPM4之decision节点:2、好学生|坏学生|超级学生
  • 大小: 72.7 KB