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

JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人的更多相关文章

  1. 菜鸟攻城狮1(JAVA程序设计)

    1.JAVA是一个完整的平台,有一个庞大的库,提供了可重复利用的代码功能块,安全性,跨操作系统的可以移植性,自动垃圾回收机制 2.JAVA设计者白皮书:简单性.面向对象.网络技能.健壮性.安全性.体系 ...

  2. 菜鸟攻城狮3(Holle World)

    1.创建一个HolleWorld.java文本文件 2.代码:public class HolleWorld { public static void main(String[] args) { Sy ...

  3. 菜鸟攻城狮2(JAVA开发环境)

    1.JDK下载路径:www.oracle.com/technetwork/java/javase/downloads 2.安装案例:最后一步认证操作 win+R 或者 点击开始--〉运行 输入“cmd ...

  4. iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?

    这是一篇以 iOS 开发人员的视角写给广大iOS 程序猿的 PHP 入门指南.在这篇文章里我努力去发掘 objectiv-c 与 php 之间的共性,来帮助有一定 iOS 开发经验的攻城狮来快速上手一 ...

  5. Android优秀资源整理合集(论菜鸟到高级攻城狮)

    转载请注明转自:http://blog.csdn.net/u011176685/article/details/51434702 csdn文章:Android优秀资源整理合集(论菜鸟到高级攻城狮) 时 ...

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

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  7. JBPM4之decision节点:1、好学生 | 坏学生

    JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...

  8. 攻城狮在路上(陆)-- 提交运行MapReduce程序到hadoop集群运行

    此种方式不能直接在eclipse中调试代码. 首先需要在src下放置服务器上的hadoop配置文件:core-site.xml\yarn-site.xml\hdfs-site.xml\mapred-s ...

  9. 攻城狮在路上(陆)-- 配置hadoop本地windows运行MapReduce程序环境

    本文的目的是实现在windows环境下实现模拟运行Map/Reduce程序.最终实现效果:MapReduce程序不会被提交到实际集群,但是运算结果会写入到集群的HDFS系统中. 一.环境说明:     ...

随机推荐

  1. HDU4003 Find Metal Mineral 树形DP

    Find Metal Mineral Problem Description Humans have discovered a kind of new metal mineral on Mars wh ...

  2. Bootstrap下拉菜单dropdown-menu

    1.步骤 (1)要做为下拉菜单的li增加class="dropdown" (2)为li中文字添加超链接<a data-toggle="dropdown" ...

  3. 使用 JAX-RS 简化 REST 应用开发

    本文将详细介绍 Java EE 6 中所引入的对 JSR-311 (JAX-RS : Java API for RESTful Web Services) 的支持,并通过一个完整的示例应用程序展示 J ...

  4. C++的优势以及用途

    C++不一定更快,但C++给你更快的机会 C++始终没有放弃的东西,一是代码表达力,二是对机器的控制力,这是其长处也是其短处,但是如果不想绑死在某平台的战车上,这两处绝对必要. 所有的平台厂商都会自称 ...

  5. Java笔记——面向切面编程(AOP模式)

    原文:http://www.cnblogs.com/yanbincn/archive/2012/06/01/2530377.html Aspect Oriented Programming  面向切面 ...

  6. Ubuntu刷新DNS

    linux刷新dns的缓存方法是: sudo /etc/init.d/nscd restart 如果发现提示命令找不到: sudo: /etc/init.d/nscd: command not fou ...

  7. jQuery RemoveAttr(checked)之后再Attr(checked)属性无效果的原因分析

    jQuery中attr()和prop()在修改checked属性时的区别 投稿:whsnow 字体:[增加 减小] 类型:转载   使用语句$.attr('checked',true),将复选框的属性 ...

  8. Data Flow ->> Union All

    Wrox的<Professional Microsoft SQL Server 2012 Integration Services>一书中再讲Merge的时候有这样一段解释: This t ...

  9. ajax练习习题一弹窗查看

    显示页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  10. 使用VNC远程连接Windows Azure Linux虚拟机

    本文以Oracle Linux 6.4虚拟机为示例 一. 安装 tigervnc-server 使用“rpm -qa vnc”指令查看是否安装vnc服务,如果没有安装,则可以使用yum或者rpm进行安 ...