jbpm4.4动态路由

  • /**   
  •      * 动态创建连接当前任务节点至名称为destName的节点的Transition   
  •      * @param taskId 任务节点ID   
  •      * @param sourceName 源节点名称   
  •      * @param destName  目标节点名称   
  •      */    
  •     public TransitionImpl addOutTransition(String piId,ProcessDefinitionImpl pd,String sourceName,String midtransition,String destName){     
  •         
  •      EnvironmentFactory environmentFactory = (EnvironmentFactory)JbpmUtil.getProcessEngine();     
  •      EnvironmentImpl env=null;    
  •      TransitionImpl transition=null;  
  •      try {     
  •          env = environmentFactory.openEnvironment();     
  •          //取得当前流程的活动定义      
  •          ActivityImpl sourceActivity = pd.findActivity(sourceName);  
  •            
  •          //取得目标的活动定义      
  •          ActivityImpl destActivity=pd.findActivity(destName);     
  •          //为两个节点创建连接      
  •          transition = sourceActivity.createOutgoingTransition();     
  •          transition.setName(midtransition.trim());     
  •          transition.setDestination(destActivity);   
  •          sourceActivity.addOutgoingTransition(transition);    
  •            
  •      }catch(Exception ex){     
  •          ex.printStackTrace();  
  •         
  •      }finally{     
  •          if(env!=null)env.close();  
  •         
  •      }  
  •       return transition;  
  •     }    

     

  • //将流程指定要新建的transition中   
  •   JbpmUtil.getExecutionService().signalExecutionById(JbpmUtil.getTaskService().getTask(taskId).getExecutionId(), transition.getName());  

     

  • /**   
  •      * 动态删除连接sourceName与destName的Transition   
  •      * @param taskId   
  •      * @param sourceName   
  •      * @param destName   
  •      */    
  •     public void removeOutTransition(ProcessDefinitionImpl pd,String sourceName,String destName){     
  •      EnvironmentFactory environmentFactory = (EnvironmentFactory) JbpmUtil.getProcessEngine();     
  •      EnvironmentImpl env=null;     
  •      try {     
  •          env = environmentFactory.openEnvironment();     
  •          //取得当前流程的活动定义      
  •          ActivityImpl sourceActivity = pd.findActivity(sourceName);     
  •               
  •          //若存在这个连接,则需要把该连接删除      
  •          List<Transition> trans=sourceActivity.getOutgoingTransitions();     
  •          for(Transition tran:trans){     
  •             if(destName.equals(tran.getDestination().getName())){//删除该连接      
  •                 trans.remove(tran);     
  •                 break;     
  •             }     
  •          }     
  •      }catch(Exception ex){     
  •          ex.printStackTrace();    
  •      }finally{     
  •          if(env!=null)env.close();     
  •      }     
  •     }    

     

     

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值