flowable 回退,驳回

/**
    *@Author cf
    *@Description  驳回
     * proInstanceId  需要驳回的流程实例id(当前发起节点的流程实例id)
     * currTaskKeys   驳回发起的当前节点key 为  act_ru_task 中TASK_DEF_KEY_ 字段的值
     * targetKey  目标节点的key  为act_hi_taskinst 中 TASK_DEF_KEY_
    **/
   public void rollback(String proInstanceId, List currTaskKeys, String targetKey) {
        runtimeService.createChangeActivityStateBuilder()
                .processInstanceId(proInstanceId)
                .moveActivityIdsToSingleActivityId(currTaskKeys, targetKey)
                .changeState();
    }

使用方式:

/**
    *@Author cf
    *@Description  跳转指定节点
    *@Date 9:48 2019/4/17
     * currentTask 当前节点
     * targetTaskDefKey 目标节点key
    **/
    public  boolean rollbaskTask(Task currentTask,String targetTaskDefKey){
        //跳转到需要回退的节点
        List key = new ArrayList<>();
        key.add(currentTask.getTaskDefinitionKey());
        
        actService.rollbask(currentTask.getProcessInstanceId(), key, targetTaskDefKey);
    }

注意:

1.这个api  并行网关是支持的,也可以从主线跳到支线,但是跳到支线的串行线运行完了之后,网关之后的任务不会走
慎用并行跳转

2.每跳转一次,都会生成新的执行实例id(executionId)

3.flowable还提供了很多种节点跳转的方式,按需求使用哦,其他使用方式请参考上面例子

https://flowable.org/docs/javadocs/org/flowable/engine/runtime/ChangeActivityStateBuilder.html

 

4.以上仅供参考

 

你可能感兴趣的:(flowable)