【Activiti】跳转到工作流的任意节点(本例用跳转到上一节点讲解即流程回退)
2017-01-03 10:19
591 查看
所有用到的service以及实现类都是工作流(Activiti)本身的。
用这个JumpCmd方法就可以实现所有流程节点的跳转。
public String taskRollback(String taskId){ //根据要跳转的任务ID获取其任务 HistoricTaskInstance hisTask = historyService .createHistoricTaskInstanceQuery().taskId(taskId) .singleResult(); //进而获取流程实例 ProcessInstance instance = runtimeService .createProcessInstanceQuery() .processInstanceId(hisTask.getProcessInstanceId()) .singleResult(); //取得流程定义 ProcessDefinitionEntity definition = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(hisTask.getProcessDefinitionId()); //获取历史任务的Activity ActivityImpl hisActivity = definition.findActivity(hisTask.getTaskDefinitionKey()); //实现跳转 managementService.executeCommand(new JumpCmd(instance.getId(), hisActivity.getId())); } public class JumpCmd implements Command<ExecutionEntity>{ private String processInstanceId; private String activityId; public static final String REASION_DELETE = "deleted"; public JumpCmd(String processInstanceId, String activityId) { this.processInstanceId = processInstanceId; this.activityId = activityId; } @Override public ExecutionEntity execute(CommandContext commandContext) { ExecutionEntity executionEntity = commandContext.getExecutionEntityManager().findExecutionById(processInstanceId); executionEntity.destroyScope(REASION_DELETE); ProcessDefinitionImpl processDefinition = executionEntity.getProcessDefinition(); ActivityImpl activity = processDefinition.findActivity(activityId); executionEntity.executeActivity(activity); return executionEntity; } }
用这个JumpCmd方法就可以实现所有流程节点的跳转。
相关文章推荐
- 扩展Activiti-5.12轻松实现流程节点间自由跳转和任意驳回/撤回
- 扩展Activiti-5.12轻松实现流程节点间自由跳转和任意驳回/撤回
- Activiti6.0版本流程撤回、跳转、回退等操作
- 也谈一下Activiti工作流节点的自由跳转
- activiti 工作流会签 / 多人审批时一人通过也可 / 在当前节点获取下一节点的信息 / 流程部署之后发布之前获取所有节点的信息 / 流程启动开始之前传送之后节点办理人 / 同一结点设置多个监听
- Activiti或者jbpm工作流的流程回退
- Activiti工作流节点的自由跳转
- Activiti灵活跳转驳回回退操作动态修改流程
- 也谈一下Activiti工作流节点的自由跳转
- activiti灵活跳转驳回回退操作动态修改流程
- 也谈一下Activiti工作流节点的自由跳转
- activiti工作流任意节点撤回
- Activiti工作流之获取流程定义中所有的节点
- Activiti6.0版本流程撤回、跳转、回退等操作
- Activiti工作流之获取流程定义中所有的节点
- Activiti实现自由流(任意节点的相互跳转)
- Activiti工作流节点的自由跳转
- Activiti工作流节点的自由跳转
- activiti web流程设计器 工作流的 整合视频教程 SSM和独立部署
- activiti 流程图点击进行流程跳转(简易流程可行)