activiti任意跳转

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

猜你喜欢

转载自sweat89.iteye.com/blog/1917013