class="java" name="code">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