JBPM4.4开发(二)-------------决策节点decision

decision

decision活动会运行并判断其中的每一个transition元素里的转移条件。当遇到一个transition的condition为true时,那么流程立即流向这个transition。流程引擎不会等待decision活动,它会马上执行这个decision。

expr属性:用一个三目运算符来判断到底要流向拿个transition。

transition元素的condition子元素:用expr来判断是否流向这个transition。

decision活动的handler子元素:如果以上两种方法还是不能满足我们的要求,就可以通过实现DecisionHandler接口来在Java代码中决定到底要流向哪个transition。

1.条件

决策节点会顺序执行并判断每一个transition里的条件。当遇到一个条件为true或者没有设置判断条件的transition时,这个transition就会被执行。

demo如下:

decision01.jpdl.xml

<?xml version="1.0" encoding="UTF-8"?>

<process name="decision01" xmlns="http://jbpm.org/4.4/jpdl">
   <start g="20,135,48,48" name="start1">
      <transition g="-42,-14" name="to exclusive1" to="exclusive1"/>
   </start>
   <decision g="130,134,48,48" name="exclusive1">
      <transition g="154,83:24,-16" name="to readbook" to="readbook">
      	<condition expr="#{reason == 'work'}"></condition>
      </transition>
      <transition g="-40,-14" name="to watchgames" to="watchgames">
      	<condition expr="#{reason == 'football'}"></condition>
      </transition>
      <transition g="156,246:41,-14" name="to sleep" to="sleep"/>
   </decision>
   <state g="282,56,92,52" name="readbook"/>
   <state g="280,135,92,52" name="watchgames"/>
   <state g="284,218,92,52" name="sleep"/>
</process>

测试代码如下:

package com.itstudio.jbpm.decision.demo;

import java.util.HashMap;
import java.util.Map;

import javax.rmi.PortableRemoteObject;

import org.jbpm.api.Configuration;
import org.jbpm.api.ExecutionService;
import org.jbpm.api.HistoryService;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.Rep
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值