JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人

JBPM入门系列文章:

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

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

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

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

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

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

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

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

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

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

1.画流程图:decision02.jpdl.xml  并指定decision的handler class 的值:指向一个handler类



 

当程序走到decision这个节点后。会通过一个处理程序的类来进行业务逻辑的判断:com.test.handler.Demohandler

而不用再用三目运算符来进行复杂的判断、

如果判断条件简单(就两个条件)就直接用三目运算符

如果判断条件通过一个流程变量能判断的话也可以直接在后台中判断。

如果判断条件比较复杂的话就用handler:通过一个处理程序的类来专门做判断流程走向的处理



 
2.写handler类来处理该流程实例

package com.test.handler;

import org.jbpm.api.jpdl.DecisionHandler;
import org.jbpm.api.model.OpenExecution;

public class Demohandler implements DecisionHandler{

	@Override
	public String decide(OpenExecution execution) {
		Integer score = (Integer) execution.getVariable("score");
		if(score > 0 && score < 25 ){
			return "to 菜鸟";
		}else if(score >= 25 && score < 50){
			return "to 程序猿";
		}else if(score >= 50 && score < 75){
			return "to 攻城狮";
		}else if(score >= 75 && score < 100){
			return "to 牛人";
		}
		return null;
	}

}

 以上handler会获取score这个流程变量的值。来进行逻辑处理的判断

3.写测试类

package com.test.test;

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

public class Decision02Test {

	public static void main(String[] args) {
		//发布流程定义
		JbpmOprations.deploy("jpdl/decision02.jpdl.xml");
		
		//放置流程变量
		Map<String,Object> varMap = new HashMap<String,Object>();
		varMap.put("score", 99);
		
		//启动该流程实例
		JbpmUtil.getExecutionService()
			.startProcessInstanceByKey("decision02",varMap);
	}
}

以上测试代码执行后:score为99、根据常理会执行到牛人的那条线

 

执行完后查看后台数据库表的信息:



 

 

 

  • 大小: 54.5 KB
  • 大小: 95.5 KB
  • 大小: 109.8 KB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值