- /**
- * 动态创建连接当前任务节点至名称为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();
- }
- }
jbpm4.4动态路由
最新推荐文章于 2020-03-10 14:53:27 发布