A interface de plug-in para IBulkRequestDataHandler é usada pelo BulkManager para suportar a produção de uma solicitação requestBulkDataExchange.
A implementação da interface é D2L.IM.IPSIS.Bulk.Handlers.IBulkRequestDataHandler.
A seguinte lista de configuração fornece um ponto de partida para qualquer implementação do LIS:
Modelo – Solicitação em lote (LIS)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler (Ordem de classificação = 10)
- D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler (Ordem de classificação = 20)
RequestBulkDataExchangeHandler
Implementação
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataExchangeHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Valida o ponto de extremidade e configura o cliente.
- Verifica os BulkEntityTypeFilters na solicitação de entrada e adiciona um FilterRuleType para cada um na solicitação de saída. Se qualquer um dos EntityTypes não coincidir com o vocabulário FilterType para o lote (consulte a especificação BDEMS para a definição de vocabulário), o manipulador lançará um KeyNotFoundException.
- Valida que o ponto de salvamento está no formato correto, conforme definido pela especificação. Todos os pontos de extremidade transmitidos devem ser idênticos e no formato "AAAA-MM-DDTHH:MM:SS.NNN". T é a letra T e NNN são os milissegundos. Se uma dessas condições falhar, o manipulador lançará um InvalidRequestDataException.
- Adiciona um FilterRuleType à solicitação de saída para o savepoint.
- Envia a solicitação requestBulkDataExchange usando o cliente.
- Examina a resposta.
- Se a resposta de retorno for um sucesso, o manipulador colocará o sistema de origem em BulkMode (se ainda não estiver) e retornará true.
- Se a resposta de retorno for um erro, o manipulador removerá o sistema de origem do BulkMode, atualizará o status do trabalho para Erro, registrará o erro e retornará false.
RequestBulkDataDefaultJobIdHandler
Esse manipulador adiciona informações extras ao IMJobId, que é usado posteriormente para configurar o MessageId, para facilitar o rastreamento e a solução de problemas das mensagens em lote.
Implementação
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataDefaultJobIdHandler
Comportamento esperado
Se o BulkJob tiver um IMJobId, o manipulador concatenará o nome do SIS com o sistema de origem para a frente do IMJobId (prepend).
Nota sobre a configuração
Esse manipulador deve ser configurado antes de RequestBulkDataExchangeHandler.
RequestBulkDataTruncateJobIdHandler
A Peoplesoft não processa messageIds em lote com mais de 20 caracteres. Esse manipulador trunca o IMJobId, que é usado mais tarde para configurar o MessageId para garantir que o valor seja tão exclusivo quanto possível, mas permanecendo dentro de um limite de 20 caracteres.
Implementação
D2L.IM.IPSIS.LIS.BDEMS.Default.RequestBulkDataTruncateJobIdHandler
Comportamento esperado
Se o BulkJob tiver um IMJobId, o manipulador removerá os hifens do IMJobId e truncará o IMJobId para 20 caracteres.
Notas sobre a configuração
- Esse manipulador deve ser configurado antes de RequestBulkDataExchangeHandler.
- Esse manipulador só deve ser usado como uma alternativa ao bug da Peoplesoft que o restringe a um máximo de 20 caracteres.