JBPM案例详解(八)
来源:互联网 发布:yuv420数据保存成图片 编辑:程序博客网 时间:2024/03/29 04:21
进阶篇
一、该版本引入<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>节点之前还是要将流程变量先进行赋值!!
** 源码到下载频道下载
- JBPM案例详解(八)
- JBPM案例详解(一)
- JBPM案例详解(二)
- JBPM案例详解(三)
- JBPM案例详解(四)
- JBPM案例详解(五)
- JBPM案例详解(六)
- JBPM案例详解(七)
- JBPM案例详解(九)
- JBPM案例详解(十)
- JBPM案例详解(十一)--完
- JBPM--八
- jbpm+ssh框架案例
- [jbpm]jBPM(八): 也说jBPM + Tomcat + MySQL
- JBPM jar包详解
- Jbpm + SSH整合详解
- JBPM Descriptor详解
- jbpm中的excutionservice详解
- Linux驱动开发系列之二:第一个linux驱动hello word程序
- Delphi 获取句柄 sendmessage
- JBPM案例详解(六)
- 字符串强制换行与超出区域大小后的隐藏
- JBPM案例详解(七)
- JBPM案例详解(八)
- SOA架构
- JBPM案例详解(九)
- JBPM案例详解(十)
- JBPM案例详解(十一)--完
- Windows CE创建一个可以实现程序自启动的文件夹
- 分治法合并排序
- DataGridView中comboBox(DataGridViewComboBoxColumn)的事件编写
- 执行带嵌入参数的sql——sp_executesql