BulkManager usa la interfaz de complemento de IBulkRequestDataHandler para respaldar la generación de una solicitud requestBulkDataExchange.
La implementación de la interfaz es D2L.IM.IPSIS.Bulk.Handlers.IBulkRequestDataHandler.
La siguiente lista de configuración ofrece un punto de partida para la implementación de LIS:
Plantilla: Solicitud por volumen (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler (Orden de clasificación = 10)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler (Orden de clasificación = 20)
RequestBulkDataExchangeHandler
Implementación
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler
Comportamiento esperado
El controlador realiza las siguientes tareas:
- Valida el extremo y configura el cliente.
- Comprueba los BulkEntityTypeFilters en la solicitud entrante y agrega un FilterRuleType para cada uno en la solicitud de salida. Si alguno de los EntityTypes no coincide con el vocabulario del FilterType por volumen (consulte la especificación BDEMS para conocer la definición de vocabulario), entonces el controlador genera una KeyNotFoundException.
- Valida que el punto de suspensión sea del formato correcto según lo que define la especificación. Todos los extremos que se pasan deben ser idénticos y tener el formato "AAAA-MM-DDTHH:MM:SS.NNN". T es la letra T y NNN, milisegundos. Si cualquiera de estas condiciones falla, el controlador genera una excepción InvalidRequestDataException.
- Agrega un FilterRuleType a la solicitud de salida para el punto de suspensión.
- Envía la solicitud requestBulkDataExchange con el uso del cliente.
- Examina la respuesta.
- Si la respuesta es correcta, el controlador pone el sistema de origen en BulkMode (si todavía no estaba en dicho modo) y devuelve un valor verdadero.
- Si la respuesta es un error, el controlador toma el sistema de origen de BulkMode, actualiza el estado de trabajo a Error, registra el error y devuelve un valor falso.
RequestBulkDataDefaultJobIdHandler
Este controlador agrega información adicional a la IMJobId, que posteriormente se utiliza para establecer la MessageId, a fin de facilitar el seguimiento de los mensajes en masa y la solución de problemas.
Implementación
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler
Comportamiento esperado
Si el BulkJob tiene una IMJobId, el controlador concatena el nombre del SIS para el sistema de origen en la parte frontal de la IMJobId (lo antepone).
Nota de configuración
Este controlador debe configurarse antes que RequestBulkDataExchangeHandler.
RequestBulkDataTruncateJobIdHandler
Peoplesoft no maneja messageIds por volumen que tengan más de 20 caracteres. Con este controlador se trunca la IMJobId, que posteriormente se usa para establecer la MessageId, a fin de garantizar que el valor sea tan exclusivo como sea posible mientras permanece dentro de un límite de 20 caracteres.
Implementación
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataTruncateJobIdHandler
Comportamiento esperado
Si BulkJob tiene una IMJobId, el controlador quita los guiones de IMJobId y, a continuación, trunca la IMjobId a 20 caracteres.
Notas de configuración
- Este controlador debe configurarse antes que RequestBulkDataExchangeHandler.
- Este controlador solo debe utilizarse como una solución alternativa para el error de Peoplesoft que lo restringe a un máximo de 20 caracteres.