Los adaptadores del IPSIS usan la interfaz de complemento para IReplaceCourseOfferingHandler a fin de respaldar la operación de reemplazo de la oferta de cursos.
La implementación de la interfaz es D2L.IM.IPSIS.OrgUnits.CourseOfferings.Handlers.IReplaceCourseOfferingHandler.
Las siguientes listas de configuración de la interfaz ReplaceCourseOfferingHandler se entregan con el producto. Aparecen junto con el punto de extensión al que están destinadas.
IPSIS, Plantilla: oferta de cursos
- ReplaceCourseOfferingReadHandler (Orden de clasificación = 10)
- ReplaceCourseOfferingValidateHandler (Orden de clasificación = 20)
- ReplaceCourseOfferingDisallowParentChangesIfChildrenExistHandler (Orden de clasificación = 30)
- ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler (Orden de clasificación = 40)
- ReplaceCourseOfferingCreateLMSHandler (Orden de clasificación = 50)
- ReplaceCourseOfferingCreateIMHandler (Orden de clasificación = 60)
- ReplaceCourseOfferingSaveLMSHandler (Orden de clasificación = 70)
- ReplaceCourseOfferingSaveIMHandler (Orden de clasificación = 80)
ReplaceCourseOfferingCopyCourseHandler
ReplaceCourseOfferingCopyCourseHandler configura el sistema para copiar automáticamente el contenido de un curso de origen a una oferta de cursos creada recientemente a través de la plataforma del IPSIS.
Implementación
D2l.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCopyCourseHandler.
Comportamiento esperado
El controlador realiza las siguientes tareas a través de la búsqueda de la unidad de organización desde la cual se copia el contenido:
- Si la copia del curso implícita está habilitada a través de la interfaz, intenta encontrar la unidad de organización de la cual copiar mediante la copia de una plantilla principal o una oferta de cursos del mismo nivel que tenga un código de OrgUnit coincidente con el código de OrgUnit de la plantilla.
- Si se utiliza la copia del curso explícita, busca los campos de extensión “CopyCourseSourceExternalId”, “CopyCourseParent”, “CoupCourseSourceOrgUnitId” o “CopyCourseSourceOrgUnitCode”.
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
Si configura manualmente la lista ReplaceCourseOfferingHandler, coloque este controlador al último.
ReplaceCourseOfferingReadHandler
El ReplaceCourseOfferingReadHandler lee toda la información relacionada con la oferta de cursos que existe en las tablas de Brightspace o el IM de la base de datos que se va a utilizar en otros controladores.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingReadHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Intenta leer la información acerca de la oferta de cursos en las tablas de IM.
- Si la encuentra, intenta leer las asignaciones en Brightspace de la oferta de cursos.
- Si la encuentra, intenta leer sobre la oferta de cursos en Brightspace.
- Comprueba si se especificó algún elemento principal (Semestre, Plantilla o Departamento) en la solicitud.
- Si se especificó, el controlador intenta recuperar las asignaciones y los detalles de la unidad de organización de cada elemento principal especificado y los coloca en request.ParentOrgUnits.
- Si una Id principal de SIS se asigna a varias unidades de organización D2L, entonces solo se utilizará el primer Semestre o la primera Plantilla para cada Id de SIS.
- Si se especificó un elemento principal, pero este no existe en la base de datos, el DataProvider subyacente arroja una OrgUnitMappingNotFoundException, que se captura y registra.
- El proceso continúa con el controlador siguiente (devuelve True).
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
Un controlador Read debe tener lugar antes que los controladores Validate.
ReplaceCourseOfferingValidateHandler
Este controlador se asegura de que un código y un nombre válidos se asignen a la oferta de cursos y de que exista una plantilla válida.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingValidateHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Realiza una verificación a fin de garantizar que el código y el nombre se especifiquen en la solicitud. Estos valores 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 genera una ArgumentNullException y se detiene todo el procesamiento del controlador.
- Al menos debe existir una plantilla principal en request.ParentOrgUnits. Si no se encuentran plantillas principales, se genera una ParentNotFoundException y se detiene todo el procesamiento del controlador.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
ReplaceCourseOfferingDisallowParentChangesIfChildrenExistHandler
Este controlador puede utilizarse para evitar la eliminación o el intercambio de una plantilla principal agregada por IPSIS de cualquier oferta que ya tenga elementos secundarios. En ausencia de este controlador, los elementos principales agregados por IPSIS pueden actualizarse libremente, lo cual podría alterar la información de jerarquía de los antecesores y descendientes de la oferta actual.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingParentDepartmentValidateHandler
Comportamiento esperado
- Si la oferta ya existe (realice un reemplazo en lugar de una creación):
- Si una unidad de organización principal agregada por IPSIS se va a eliminar o reemplazar, genere una excepción para evitar que se ejecuten nuevos controladores.
Nota: Las unidades de organización agregadas manualmente siempre se eliminarán con o sin este controlador instalado
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.
ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Este controlador actualiza la plantilla del curso que sea el elemento principal de la oferta para que los departamentos principales se especifiquen en la solicitud de oferta.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Lee los departamentos asociados con la plantilla que sea el elemento principal de la oferta de cursos actual.
- Si un departamento se especifica en la oferta que actualmente no se asigna como elemento principal de la plantilla del curso, el controlador lo actualiza debidamente.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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
En cualquier momento después de los controladores Read.
ReplaceCourseOfferingCreateLMSHandler
Este controlador crea ofertas de cursos en Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCreateLMSHandler
Comportamiento esperado
Este controlador solo se ejecuta si no hay ofertas de cursos de Brightspace asociadas con la solicitud en las tablas de IM y LMS. El controlador realiza las siguientes tareas:
- Crea una oferta de cursos con la información que se transmite en la solicitud (esto activa el registro automático de auditoría).
- Si el proceso creado es correcto, el controlador establece ReplaceRequestStatus = EntityCreated y el procesamiento continúa con el siguiente controlador.
- Si existe un error, el controlador establece ReplaceRequestStatus = CreateFailed y devuelve un valor falso.
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.
- El controlador Create LMS debe ejecutarse antes del controlador Create IM.
ReplaceCourseOfferingCreateIMHandler
Este controlador 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.CourseOfferings.Handlers.ReplaceCourseOfferingCreateIMHandler
Comportamiento esperado
Este controlador solo se ejecuta si no existen Entidades coincidentes en las tablas de IM. El controlador realiza las siguientes tareas:
- Crea la oferta de curso en la Plataforma IM.
- Crea la jerarquía IM.
- Si hay una OrgUnit asociada con la solicitud, el controlador crea la asignación de la oferta de cursos de la Plataforma IM para la oferta de curso de Brightspace.
- Si todo se realiza correctamente, el controlador establece ReplaceRequestStatus = EntityCreated.
- El proceso continúa con el controlador siguiente (devuelve True).
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
Coloque este controlador después de cualquier controlador CreateLMS.
ReplaceCourseOfferingSaveLMSHandler
El ReplaceCourseOfferingSaveLMSHandler guarda los cambios que se han realizado para la oferta de cursos de Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveLMSHandler
Comportamiento esperado
Este controlador solo se ejecuta si hay cambios que se van a guardar para la oferta de cursos de Brightspace. El controlador realiza las siguientes tareas:
- Elimina todos los departamentos de la solicitud ParentOrgUnits (estos se agregarán como elementos principales de la plantilla principal de la oferta)
- Actualiza la oferta de cursos (esto activa el registro automático de auditoría).
- Cuando todo se realiza correctamente, si ReplaceRequestStatus != EntityCreated, el controlador establece ReplaceRequestStatus = EntityUpdated.
- El proceso continúa con el controlador siguiente (devuelve True).
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
Coloque este controlador después de cualquier controlador Create.
ReplaceCourseOfferingSaveIMHandler
El ReplaceCourseOfferingSaveIMHandler guarda los cambios que se han realizado a la oferta de cursos.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveLMSHandler
Comportamiento esperado
Este controlador solo se ejecuta si hay cambios que se van a guardar para la oferta de cursos. El controlador realiza las siguientes tareas:
- Elimina todos los departamentos de la solicitud ParentOrgUnits (estos se agregan como elementos principales de la plantilla principal de la oferta).
- Actualiza la oferta de cursos (esto activa el registro automático de auditoría).
- Cuando todo se realiza correctamente, si ReplaceRequestStatus != EntityCreated, el controlador establece ReplaceRequestStatus = EntityUpdated.
- El proceso continúa con el controlador siguiente (devuelve True).
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
Coloque este controlador después de cualquier controlador Create.
ReplaceCourseOfferingSaveIMHandler
El controlador Save guarda los cambios que se han hecho en la Entidad IM y las asignaciones. 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 oferta.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingSaveIMHandler
Comportamiento esperado
Este controlador solo se ejecuta si hay cambios que deben guardarse 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 para cualquier elemento principal/secundario afectado.
- Actualiza las asignaciones de la Entidad IM.
- Si todo es correcto, establece ReplaceRequestStatus = EntityUpdated.
- El proceso continúa con el controlador siguiente (devuelve True).
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
Coloque este controlador después de cualquier controlador SaveLMS.
ReplaceCourseOfferingNameNoUpdateLMSHandler
El ReplaceCourseOfferingNameNoUpdateLMSHandler se utiliza cuando una organización no desea que el nombre de la oferta de cursos se actualice después de la creación inicial. Este controlador es necesario si una organización permite a los usuarios actualizar los nombres de los cursos a través de Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingNameNoUpdateLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de la solicitud para indicar que el nombre no debe actualizarse.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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
Se espera que este controlador se ejecute después de los controladores Read, pero antes de los controladores Create.
ReplaceCourseOfferingStatusNoUpdateLMSHandler
Este controlador se utiliza cuando una organización no desea que el estado se actualice después de la creación inicial.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingStatusNoUpdateLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de la solicitud para indicar que el estado no debe actualizarse.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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
Se espera que este controlador se ejecute después de los controladores Read, pero antes del controlador Create.
ReplaceCourseOfferingDatesNoUpdateLMSHandler
El ReplaceCourseOfferingDatesNoUpdateLMSHandler se utiliza cuando una organización no desea que las fechas se actualicen después de la creación inicial.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingDatesNoUpdateLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de la solicitud para indicar que la fecha de inicio y la fecha final no deben actualizarse.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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
Se espera que este controlador se ejecute después de los controladores Read, pero antes del controlador Create.
ReplaceCourseOfferingCodeNoUpdateLMSHandler
El ReplaceCourseOfferingCodeNoUpdateLMSHandler se utiliza cuando una organización no desea que el código de oferta de cursos se actualice después de la creación inicial. Este controlador es necesario si una institución permite a los usuarios actualizar los códigos de los cursos a través de Brightspace.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingCodeNoUpdateLMSHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Actualiza el objeto de la solicitud para indicar que el código no debe actualizarse.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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
Se espera que este controlador se ejecute después de los controladores Read, pero antes del controlador Create.
ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
El ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler actualiza la plantilla del curso que sea el elemento principal de la oferta para que los departamentos principales se especifiquen en la solicitud de oferta.
Implementación
D2L.IM.IPSIS.Default.OrgUnits.CourseOfferings.Handlers.ReplaceCourseOfferingTemplateUpdateDepartmentsLMSHandler
Comportamiento esperado
- Lea los departamentos (en Brightspace) asociados con la plantilla que sea el elemento principal de la oferta de cursos actual.
- Si un departamento se especifica en la oferta que actualmente no está asignada como elemento principal de la plantilla del curso, actualícelo en consecuencia.
- Si todo es correcto, el procesamiento continúa con el siguiente controlador (devuelve True).
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 puede utilizarse en cualquier momento después de los controladores Read.
ReplaceCourseOfferingValidateLMSOrgUnitExistsHandler
Este controlador 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.CourseOfferings.Handlers.ReplaceCourseOfferingValidateLMSOrgUnitExistsHandler
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), intente 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ó en Brightspace. 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 Validar.