Los adaptadores del IPSIS usan la interfaz de complemento para IReplaceCourseTemplateHandler a fin de respaldar la operación de reemplazo de las plantillas de cursos.
La implementación de la interfaz es D2L.IM.IPSIS.OrgUnits.CourseTemplates.Handlers.IReplaceCourseTemplateHandler.
Las siguientes listas de configuración proporcionan un punto de partida para cualquier implementación del IPSIS:
IPSIS, Plantilla: plantilla del curso
ReplaceCourseTemplateRetainExistingDepartmentHandler
El ReplaceCourseTemplateRetainExistingDepartmentHandler comprueba si la solicitud no tiene un departamento principal especificado. Si la respuesta es afirmativa, el controlador mantiene cualquier departamento principal existente cuando se actualiza la plantilla (en contraposición a la eliminación de todos los elementos principales).
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateRetainExistingDepartmentHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Comprueba si no existe ningún elemento principal especificado en la solicitud.
- Si no hay ningún elemento principal especificado, el controlador intenta obtener la unidad de organización actual (a fin de verificar si la solicitud es una actualización).
- Si la unidad de organización actual es válida, para cada elemento principal en request.CurrentParents, el controlador agrega el elemento principal a request.UpdatedParents. Para cada elemento principal en ParentOrgUnits de la unidad de organización actual, el controlador agrega el elemento principal a request.ParentOrgUnits
- Continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador debe configurarse antes que los controladores Read y, por lo tanto, debe configurarse primero.
ReplaceCourseTemplateReadHandler
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateReadHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Intenta leer la información acerca de la plantilla del curso en las tablas de IM.
- Si la encuentra, intenta leer las asignaciones en Brightspace para buscar la plantilla del curso.
- Si la encuentra, intenta leer sobre la plantilla del curso en Brightspace.
- Comprueba si se especifica un departamento principal en la solicitud. Si se especifica un departamento principal, el controlador agrega el elemento principal a las ParentOrgUnits de la solicitud. Si no se especifica un departamento principal, la organización se establece como elemento principal de la solicitud (request.ParentOrgUnits).
- Si se especifica un elemento principal, pero no tiene asignaciones de IM en la base de datos, el controlador Read genera una ParentNotFoundException y se detiene todo el procesamiento del controlador.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Por lo general, el controlador Read es el primero de los controladores, a menos que se configure el ReplaceCourseTemplateRetainExistingDepartmentHandler. En ese caso, el controlador Read debe ser el segundo controlador.
ReplaceCourseTemplateValidateHandler
El ReplaceCourseTemplateValidateHandler se diseña para garantizar que la información mínima requerida esté disponible para los controladores Create.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateValidateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- El controlador Validate realiza una verificación a fin de garantizar que el código y el nombre se especifiquen para la solicitud. Los valores de código y nombre deben ser cadenas con una longitud superior a 0. Si el código o el nombre son nulos o están vacíos, el controlador Validate genera una ArgumentNullException y se detiene todo el procesamiento del controlador.
- El procesamiento continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Los controladores Read deben ejecutarse antes que el controlador Validate.
- Este controlador debe configurarse para que se ejecute antes de los controladores Create.
ReplaceCourseTemplateParentsNoUpdateLMSHandler
Cuando se procesa ReplaceTemplateRequest a través del IPSIS, ReplaceCourseTemplateParentsNoUpdateLMSHandler recupera
unidades de organización personalizadas de la plantilla del curso y conserva esta relación, incluso si no se crearon a través del IPSIS para que la operación de actualización no la sobrescriba.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateParentsNoUpdate
LMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- El controlador captura todos los elementos principales de la plantilla del curso y actualiza la lista principal
- El procesamiento continúa con el siguiente controlador
Comportamiento de error
- No se arrojan errores en este controlador
Nodo de configuración
- Este controlador debe ejecutarse después de los controladores de lectura y validación
- Este controlador debe ejecutarse antes de los controladores de guardado
ReplaceCourseTemplateDisallowParentChangesIfChildrenExistHandler
El ReplaceCourseTemplateDisallowParentChangesIfChildrenExistHandler puede utilizarse para evitar la eliminación o el intercambio de un departamento principal por cualquier plantilla que ya tenga elementos secundarios. En ausencia de este controlador, los elementos principales pueden actualizarse libremente, lo cual podría alterar la información de jerarquía de los antecesores y descendientes de la plantilla actual.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateParentDepartmentValidateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si la plantilla ya existe (realice un reemplazo en lugar de una creación):
- Si una unidad de organización principal se va a eliminar o reemplazar, el controlador genera una excepción para evitar que se ejecuten nuevos controladores.
Notas de configuración
- Este controlador debe configurarse para ejecutarse después de los controladores Validate.
- Este controlador debe configurarse para que se ejecute antes de los controladores Create.
ReplaceCourseTemplateParentDepartmentValidateHandler
El ReplaceCourseTemplateParentDepartmentValidateHandler puede establecerse para tomar una situación en la cual no se proporciona un departamento principal para la plantilla.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateParentDepartmentValidateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Si no se encuentra el departamento principal, el controlador comprueba que el Elemento de formulario, Crear cursos > Departamento, tenga IsRequired establecido en falso.
- Si se establece en verdadero, el controlador genera una Excepción de variable de configuración no válida, lo que brinda instrucciones sobre cómo resolverlo.
Notas de configuración
- El controlador Read debe ejecutarse antes que el controlador Validate.
- El controlador Validate debe configurarse para que se ejecute antes que los controladores Create.
ReplaceCourseTemplateCreateLMSHandler
El ReplaceCourseTemplateCreateLMSHandler crea la plantilla del curso en Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateCreateLMSHandler
Comportamiento esperado
Este controlador solo se ejecuta si no existen plantillas de cursos existentes de Brightspace asociadas con la solicitud. El controlador realiza las siguientes tareas:
- Si no se especifica un departamento principal, entonces la nueva plantilla tiene la organización establecida como el elemento principal. Esto provoca un error si el Elemento de formulario del departamento de curso no se configura de manera correcta. En Elementos de formulario, compruebe que en Crear curso > Departamento el indicador IsRequired se establezca en falso a fin de que la creación pueda prosperar.
- El controlador crea la plantilla del curso utilizando la información que se transmite en la solicitud (esto activa el registro automático de Auditoría de creación de plantilla).
- Si la tarea de creación es correcta, el controlador establece ReplaceRequestStatus = EntityCreated.
- El procesamiento continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Este controlador se coloca después de cualquier controlador Validate.
- Este controlador se ejecuta antes que los controladores Create IM.
ReplaceCourseTemplateCreateIMHandler
El ReplaceCourseTemplateCreateIMHandler crea la Entidad en las tablas de IM y una asignación en caso de que se defina una.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateCreateIMHandler
Comportamiento esperado
Este controlador solo se ejecuta si no hay ninguna ExternalOrgUnitInfo o asignación coincidente en las tablas de IM. El controlador realiza las siguientes tareas:
- Crea la plantilla del curso en la Plataforma IM.
- Crea las entradas de Jerarquía IM.
- Si hay una unidad de organización de Brightspace asociada con la solicitud, el controlador crea la asignación de la plantilla del curso de la Plataforma IM para la plantilla del curso de Brightspace.
- Si todo se realiza correctamente, el controlador establece ReplaceRequestStatus = EntityCreated.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Este controlador se ejecuta después del controlador CreateLMS.
- Es legítimo no configurar ReplaceCourseTemplateCreateIMHandler ni ReplaceCourseTemplateSaveIMHandler. Si no se crean entradas en la tabla IM, IPSIS no sabe si la plantilla existe en Brightspace. Debe configurarse un controlador de asignación que asigne la solicitud de SIS a la plantilla de Brightspace para permitir las actualizaciones. Sin un controlador de asignación, IPSIS siempre crea una nueva plantilla, incluso si existe una coincidencia.
ReplaceCourseTemplateSaveLMSHandler
El ReplaceCourseTemplateSaveLMSHandler guarda los cambios que se han realizado en la plantilla del curso de Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateSaveLMSHandler
Comportamiento esperado
Este controlador solo se ejecuta si hay cambios que se van a guardan para la plantilla del curso de Brightspace. El controlador realiza las siguientes tareas:
- Actualiza la plantilla de curso de Brightspace (esto activa el registro automático de Auditoría de actualización de plantilla).
- Cuando todo se realiza correctamente, si ReplaceRequestStatus != EntityCreated, el controlador establece ReplaceRequestStatus = EntityUpdated.
- El procesamiento continúa al siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador se coloca después de los controladores Create.
ReplaceCourseTemplateSaveIMHandler
El controlador Guardar guarda los cambios que se han hecho a las asignaciones y la Entidad IM. Esto incluye la actualización de la información de jerarquía y la propagación de los cambios de todos los antecesores y descendientes de la plantilla determinada.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateSaveIMHandler
Comportamiento esperado
Este controlador solo se ejecuta si hay cambios que se van a guardan para la Entidad o las asignaciones en las tablas de IM. El controlador realiza las siguientes tareas:
- Actualiza la Entidad IM.
- Actualiza la Jerarquía IM y la información de relación de cualquier elemento principal y secundario afectado.
- Actualiza las asignaciones de la Entidad IM.
- Si todo se realiza correctamente, el controlador establece ReplaceRequestStatus = EntityUpdated.
- El procesamiento continúa con el siguiente controlador.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Notas de configuración
- Este controlador se ejecuta después del controlador SaveLMS.
- Es legítimo no configurar ReplaceCourseTemplateCreateIMHandler ni ReplaceCourseTemplateSaveIMHandler. Si no se crean entradas en la tabla IM, IPSIS no sabe si la plantilla existe en Brightspace. Debe configurarse un controlador de asignación que asigne la solicitud de SIS a la plantilla de Brightspace para permitir las actualizaciones. Sin un controlador de asignación, IPSIS siempre crea una nueva plantilla, incluso si existe una coincidencia.
ReplaceCourseTemplateValidateLMSOrgUnitExistsHandler
El ReplaceCourseTemplateValidateLMSOrgUnitExistsHandler comprueba si la unidad de organización a la cual corresponde la solicitud se ha eliminado en Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseTemplates.Handlers.ReplaceCourseTemplateValidateLMSOrgUnitExistsHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Intenta obtener la unidad de organización actual.
- Si la unidad de organización actual no existe (la solicitud es "create" o la unidad de organización se ha eliminado de Brightspace), el controlador intenta obtener la ExternalOrgUnitInfo para la solicitud.
- Si la ExternalOrgUnitInfo es válida, entonces no es una creación y la unidad de organización se eliminó de Brightspace, y se genera una UpdateOrgUnitFailedException.
- Esta excepción provoca que el Servicio del LIS responda con invaliddata. Se consideró que este es el código de respuesta más apropiado para esta situación.
Comportamiento de error
Si existe un problema durante el procesamiento, se arroja una excepción, junto con información tan detallada como sea posible.
Nota de configuración
Este controlador se coloca después de los controladores Read, generalmente como uno de los primeros controladores Validate.