final String nameEn, final BranchType branchType, final String beginExecutionPeriodID,
final String endExecutionPeriodID) throws FenixServiceException {
final DegreeCurricularPlan degreeCurricularPlan = FenixFramework.getDomainObject(degreeCurricularPlanID);
if (degreeCurricularPlan == null) {
throw new FenixServiceException("error.noDegreeCurricularPlan");
}
final CourseGroup parentCourseGroup = (CourseGroup) FenixFramework.getDomainObject(parentCourseGroupID);
if (parentCourseGroup == null) {
throw new FenixServiceException("error.noCourseGroup");
}
final ExecutionSemester beginExecutionPeriod;
if (beginExecutionPeriodID == null) {
beginExecutionPeriod = ExecutionSemester.readActualExecutionSemester();