JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人
JBPM入门系列文章:
JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件
JBPM4入门——4.封装流程管理的工具类(JbpmUtil)
——————————————华丽分割线————————————————
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、根据常理会执行到牛人的那条线
执行完后查看后台数据库表的信息:

JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人的更多相关文章
- 菜鸟攻城狮1(JAVA程序设计)
		1.JAVA是一个完整的平台,有一个庞大的库,提供了可重复利用的代码功能块,安全性,跨操作系统的可以移植性,自动垃圾回收机制 2.JAVA设计者白皮书:简单性.面向对象.网络技能.健壮性.安全性.体系 ... 
- 菜鸟攻城狮3(Holle World)
		1.创建一个HolleWorld.java文本文件 2.代码:public class HolleWorld { public static void main(String[] args) { Sy ... 
- 菜鸟攻城狮2(JAVA开发环境)
		1.JDK下载路径:www.oracle.com/technetwork/java/javase/downloads 2.安装案例:最后一步认证操作 win+R 或者 点击开始--〉运行 输入“cmd ... 
- iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?
		这是一篇以 iOS 开发人员的视角写给广大iOS 程序猿的 PHP 入门指南.在这篇文章里我努力去发掘 objectiv-c 与 php 之间的共性,来帮助有一定 iOS 开发经验的攻城狮来快速上手一 ... 
- Android优秀资源整理合集(论菜鸟到高级攻城狮)
		转载请注明转自:http://blog.csdn.net/u011176685/article/details/51434702 csdn文章:Android优秀资源整理合集(论菜鸟到高级攻城狮) 时 ... 
- JBPM4之decision节点:2、好学生|坏学生|超级学生
		JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ... 
- JBPM4之decision节点:1、好学生 | 坏学生
		JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ... 
- 攻城狮在路上(陆)-- 提交运行MapReduce程序到hadoop集群运行
		此种方式不能直接在eclipse中调试代码. 首先需要在src下放置服务器上的hadoop配置文件:core-site.xml\yarn-site.xml\hdfs-site.xml\mapred-s ... 
- 攻城狮在路上(陆)-- 配置hadoop本地windows运行MapReduce程序环境
		本文的目的是实现在windows环境下实现模拟运行Map/Reduce程序.最终实现效果:MapReduce程序不会被提交到实际集群,但是运算结果会写入到集群的HDFS系统中. 一.环境说明: ... 
随机推荐
- RadioButtonList js获取选择的项
			<asp:RadioButtonList ID="RadioButtonList1" runat="server"> <asp:ListIte ... 
- SpringMVC学习总结(七)——SpringMVC注解@..详解
			<context:component-scan/> 扫描指定的包中的类上的注解,常用的注解有: @Controller 声明Action组件@Service 声明Service组件 ... 
- LR实现http协议性能测试脚本
			1. GET方式的HTTP请求性能测试脚本 Action() { web_set_max_html_param_len("); web_reg_save_param("retCo ... 
- linux下如何查看和修改系统BLOCK的大小
			http://blog.163.com/drachen@126/blog/static/162607494201271435333906/ 查看os系统块的大小 [root]# /sbin/tune2 ... 
- React-非dom属性-key
			一.react性能 1.内容类似的尽量归到同一人组件,这样react不用每次都重新渲染 2.类似列表的内容,要加上key,可减少渲染次数 3.react渲染过程 二.代码 <!DOCTYPE h ... 
- CSS3通配符
			在 CSS3 中,追加了三个属性选择器分别为: [att*=val] ----内容包含 [att^=val] ----开头匹配 [att$=val] ----结尾匹配 示例: <!DOCTYPE ... 
- swift:创建表格UITableView
			用swift创建单元格和用iOS创建单元格形式基本相同,就是语法上有些异样.swift中调用成员方法不再使用[ ]来发送消息,而是使用.成员方法的形式调用成员函数.这种格式非常类似于java中的点成员 ... 
- Ubuntu 13.10 中文字体设置
			据我查到的资料,在默认设置下,Ubuntu 13.10 中文使用的是文泉驿正黑.我总觉得它的效果有些发虚,模糊,不满意. (貌似是Ubuntu从13.04开始取消了默认的微米黑,回退为之前的正黑.这我 ... 
- Effective C++条款01: 视C++为一个语言联邦
			一开始C++定义为:C with Classes. 如今的C++已经是一个多重范型编程语言,可以把C++视为有四个次语言组成的联邦语言. C.C++任然以C为基础.区块.语句.预处理.内置语言类型.数 ... 
- linux 僵死进程
			僵死进程简而言之就是:子进程退出时,父进程并未对其发出的SIGCHILD信号进行适当处理,导致子进程停留在僵死状态等待其父进程为其收尸,这个状态下的子进程就是僵死进程. 在fork()/execve( ... 
 
			
		

