in core/src/main/java/com/alibaba/smart/framework/engine/service/command/impl/DefaultExecutionCommandService.java [219:258]
public ProcessInstance jumpTo(String processInstanceId, String processDefinitionId, String version,
InstanceStatus instanceStatus, String processDefinitionActivityId) {
IdGenerator idGenerator = processEngineConfiguration.getIdGenerator();
ProcessInstance processInstance = new DefaultProcessInstance();
processInstance.setProcessDefinitionIdAndVersion(processDefinitionId+":"+version);
processInstance.setProcessDefinitionId(processDefinitionId);
processInstance.setProcessDefinitionVersion(version);
processInstance.setStatus(instanceStatus);
processInstance.setInstanceId(processInstanceId);
ActivityInstance activityInstance = new DefaultActivityInstance();
activityInstance.setProcessDefinitionActivityId(processDefinitionActivityId);
activityInstance.setProcessDefinitionIdAndVersion(processInstance.getProcessDefinitionIdAndVersion());
activityInstance.setProcessInstanceId(processInstance.getInstanceId());
idGenerator.generate(activityInstance);
ExecutionInstance executionInstance = new DefaultExecutionInstance();
executionInstance.setProcessInstanceId(processInstance.getInstanceId());
executionInstance.setActivityInstanceId(activityInstance.getInstanceId());
executionInstance.setProcessDefinitionActivityId(processDefinitionActivityId);
executionInstance.setProcessDefinitionIdAndVersion(processInstance.getProcessDefinitionIdAndVersion());
idGenerator.generate(executionInstance);
executionInstance.setActive(true);
List<ExecutionInstance> executionInstanceList = new ArrayList<ExecutionInstance>();
executionInstanceList.add(executionInstance);
activityInstance.setExecutionInstanceList(executionInstanceList);
processInstance.getActivityInstances().add(activityInstance);
CommonServiceHelper.createExecution(executionInstance.getInstanceId(), processInstance, null,
processEngineConfiguration);
return processInstance;
}