public class JumpTaskCmd implements Command<Comment> { protected String executionId; protected String activityId; public JumpTaskCmd(String executionId, String activityId) { this.executionId = executionId; this.activityId = activityId; } public Comment execute(CommandContext commandContext) { for (TaskEntity taskEntity : Context.getCommandContext().getTaskEntityManager().findTasksByExecutionId(executionId)) { Context.getCommandContext().getTaskEntityManager().deleteTask(taskEntity, "jump", false); } ExecutionEntity executionEntity = Context.getCommandContext().getExecutionEntityManager().findExecutionById(executionId); ProcessDefinitionImpl processDefinition = executionEntity.getProcessDefinition(); ActivityImpl activity = processDefinition.findActivity(activityId); executionEntity.executeActivity(activity); return null; } }
调用:
TaskServiceImpl taskServiceImpl=(TaskServiceImpl)taskService; taskServiceImpl.getCommandExecutor().execute(new JumpTaskCmd(executionId, activityId));
executionId:当前任务executionID。activityId:跳转目标activityID