JBPM案例详解(八)

进阶篇


 
 一、该版本引入<decision>节点的使用:又称决策节点或路由节点
 
  作用:就是流程到达该节点之后,可以通过自己的需求,可以通过一定的运算法则动态的选择接下来要流转到那个节点
 
  使用方法:有两种使用方式
  
   1.可以在<decision>节点的<transition>元素中通过<condition>元素指定一定的条件,
     如果条件满足,那么就流向包含该<condition>元素的<transition>元素指向的节点
     如果条件不满足,则不流向包含该<condition>元素的<transition>元素指向的节点
     这里可能会有在一个节点中出现多个<transition>的情况,此时选择第一个满足条件的<transition>转向作为流程的转向
    
     <decision name="nodeName">
      <transition name="transitionName" to="flowToName">
       <!--注意小于号<不能直接写,因为这是在xml文件中,要遵从xml的约束-->
       <condition>#{days lt 5}</condition>
      </transition>
      
      <transition name="transitionName" to="flowToName">
       <!--注意大于号>不能直接写,因为这是在xml文件中,要遵从xml的约束-->
       <condition>#{days gt 5}</condition>
      </transition>
     </decision>
    
     **说明:#{days lt 5}中的days是变量名,所以当流程流转到该处之前要为该变量赋值,
        赋值方式和之前在<assignment>中为actor-id指定的变量赋值一样。
       
     **注意:如果要用上边这种方式,有的时候会因为<condition>中的表达式不正确而出现问题,所以不推荐,推荐使用下边这种方法!!!
       
   2.可以通过<decision>节点的<handler>来指定一个实现DecisionHandler接口的类,
     实现类的指定方法会返回一个字符串,这个字符串就是该<decision>节点中的<transition>元素的name属性的值,
     即<transition>的名称,也就是返回的字符串与哪个<transition>名称对应那么就转向那个<transition>指定的节点
    
     <decision name="nodeName">
      <!--指定处理分流的类全名-->
      <handler class="className"></handler>
          
      <transition name="transitionName" to="flowToName">
      </transition>
      
      <transition name="transitionName" to="flowToName">
      </transition>
     </decision>
    
     //实现类
     public class Decision implements DecisionHandler{
    public String decide(ExecutionContext executionContext) throws Exception {
     int days = executionContext.getContextInstance().getVariable("days").intValue();
     if(days > 1000){
      return "transitionName";
     }else{
      return "transitionName";
     }
    }
     }
   
     注意:上边的处理类中获取了一个流程变量,所以流程流转到<decision>节点之前还是要将流程变量先进行赋值!!
   
   
   ** 源码到下载频道下载
   

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上树的蜗牛儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值