A interface de plug-in para IReplaceDepartmentHandler é usada pelos Adaptadores do IPSIS para oferecer suporte à operação de substituição para Departamentos.
A implementação da interface é D2L.IM.IPSIS.OrgUnits.Departments.Handlers.IReplaceDepartmentHandler.
As listas de configuração do IPSIS, Modelo – Departamento fornecem um ponto de partida para qualquer implementação do IPSIS.
A seguinte lista de manipuladores é usada como ponto de partida:
- ReplaceDepartmentReadHandler (Ordem de classificação = 10)
- ReplaceDepartmentValidateHandler (Ordem de classificação = 20)
- ReplaceDepartmentCreateLMSHandler (Ordem de classificação = 30)
- ReplaceDepartmentCreateIMHandler (Ordem de classificação = 40)
- ReplaceDepartmentSaveLMSHandler (Ordem de classificação = 50)
- ReplaceDepartmentSaveIMHandler (Ordem de classificação = 60)
ReplaceDepartmentReadHandler
O ReplaceDepartmentReadHandler lê todas as informações relacionadas ao Departamento que existem nas tabelas LMS ou IM do banco de dados a ser usado em outros manipuladores.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departmentss.Handlers.ReplaceDepartmentReadHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Tenta ler informações sobre o Departamento das tabelas IM:
- Se encontrado, o manipulador tentará ler quaisquer mapeamentos ao LMS para o Departamento.
- Se encontrado, o manipulador tentará ler sobre o Departamento do LMS.
- Tenta ler informações sobre qualquer OrgUnits principal indicado nas tabelas IM.
- Se não encontrar nenhuma, o manipulador configurará a lista de principais padrão da Organização no único principal.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Um manipulador Read deve ocorrer antes dos manipuladores Validate.
ReplaceDepartmentValidateHandler
O ReplaceDepartmentValidateHandler garante que um Código e um Nome válidos sejam atribuídos ao Departamento.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentValidateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- O manipulador Validate verifica se um Código e um Nome foram especificados para a solicitação. Os valores de Código e Nome devem ser strings com um comprimento maior que 0. Se o Código ou o Nome forem nulos ou vazios, o manipulador lançará um ArgumentNullException e todo o processamento do manipulador será interrompido.
- O manipulador Validate também verifica se a solicitação não está tentando alterar o tipo (por exemplo, alterar uma Faculdade para um Departamento) de uma unidade organizacional existente.
- Se a solicitação estiver tentando alterar o tipo, um InvalidOperationException será lançado e todo o processamento do manipulador será interrompido.
- Se houver sucesso em tudo, o processamento continuará para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Os manipuladores Validate devem ser configurados antes do manipulador Create.
ReplaceDepartmentParentsNoUpdateLMSHandler
O ReplaceDepartmentParentsNoUpdateLMSHandler recupera unidades organizacionais principais criadas no LMS e preserva o relacionamento para que não seja sobrescrito por essa operação de atualização.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentParentsNoUpdateLMSHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Obtém todos os departamentos principais e atualiza a lista principal.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Nenhum erro é lançado para esse tradutor.
Nota sobre a configuração
- Esse manipulador deve ocorrer após os manipuladores Read e Validate.
- Esse manipulador deve ocorrer antes dos manipuladores Save.
- Ordem de classificação recomendada = 3.
ReplaceDepartmentCreateLMSHandler
O ReplaceDepartmentCreateLMSHandler cria o Departamento no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentCreateLMSHandler
Comportamento esperado
Esse manipulador só executa se não houver Departamentos do Brightspace associados à solicitação. O manipulador realiza as seguintes tarefas:
- Cria o Departamento do Brightspace usando as informações transmitidas na solicitação (acionando a criação de logs de auditoria automática).
- Se houver sucesso em tudo, o manipulador configurará o status do resultado para EntityCreated.
- Se houver um erro, o manipulador configurará o status do resultado para CreateFailed.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houve um problema no processamento, uma exceção será lançada, junto com o máximo de detalhes disponíveis.
Notas sobre a configuração
- Esse manipulador é colocado após quaisquer manipuladores Validate.
- O manipulador Create LMS deve ocorrer antes do manipulador Create IM.
ReplaceDepartmentCreateIMHandler
O ReplaceDepartmentCreateIMHandler cria a Entidade nas tabelas IM e um mapeamento se estiver definido.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentCreateIMHandler
Comportamento esperado
Esse manipulador só executa se não houver nenhuma Entidade correspondente nas tabelas IM. O manipulador realiza as seguintes tarefas:
- Cria o Departamento na Plataforma de IM.
- Se houver um OrgUnit do LMS associado à solicitação, o manipulador criará o Mapeamento do Departamento da plataforma de IM para o Departamento do LMS.
- Se houver sucesso em tudo, o manipulador configurará o status do resultado para EntityCreated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houve um problema no processamento, uma exceção será lançada, junto com o máximo de detalhes disponíveis.
Nota sobre a configuração
Esse manipulador seria colocado após qualquer manipulador CreateLMS.
ReplaceDepartmentSaveLMSHandler
O ReplaceDepartmentSaveLMSHandler salva as alterações feitas no Departamento do Brightspace.
Implementação
Esse manipulador só executa se houver alterações a serem salvas no Departamento do Brightspace. O manipulador realiza as seguintes tarefas:
- Atualiza o Departamento do Brightspace (ativando a criação de logs de auditoria automática).
- Se a solicitação for uma atualização e pelo menos um campo foi modificado, o manipulador configurará o status do resultado como EntityUpdated.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é colocado após qualquer manipulador Create.
ReplaceDepartmentSaveIMHandler
O ReplaceDepartmentSaveIMHandler salva as alterações feitas na Entidade de IM e nos Mapeamentos.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentSaveIMHandler
Comportamento esperado
O manipulador só executa se houver alterações a serem salvas para a Entidade ou a Hierarquia nas tabelas IM. O manipulador realiza as seguintes tarefas:
- Atualiza a Entidade IM se houver alterações pendentes.
- Atualiza as relações da Hierarquia da Entidade IM, se os principais foram adicionados ou removidos.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é colocado após quaisquer manipuladores SaveLMS.
ReplaceDepartmentMapByCodeHandler
Esse manipulador associa um Departamento a um Departamento existente do Brightspace ao corresponder o OrgUnitCode.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentMapByCodeHandler
Comportamento esperado
Esse manipulador só deve ser usado se for esperado que o Código da unidade organizacional seja exclusivo dentro de uma Org. O manipulador realiza as seguintes tarefas:
- Se não houver um Mapeamento de departamento, o manipulador tentará encontrar um Departamento no Brightspace que coincida com o OrgUnitCode.
- Se uma correspondência for encontrada, o manipulador atualizará o objeto de solicitação para conter o orgUnit correspondente.
- Se nenhuma correspondência for encontrada, o manipulador não fará nada.
- Se várias correspondências forem encontradas, o manipulador lançará um MultipleOrgUnitsFoundException, que resultará no retorno de um erro.
- O manipulador só deve ser usado se for esperado que o Código da unidade organizacional seja exclusivo dentro de uma Org.
- O processamento prossegue para o próximo manipulador.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador normalmente seria colocado entre os manipuladores Read e os manipuladores Create; nesse caso, ele só executa se os manipuladores Read não conseguirem encontrar um Departamento mapeado.
ReplaceDepartmentNameNoUpdateLMSHandler
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentCreateHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Atualiza o objeto de solicitação para indicar que o Nome não deve ser atualizado.
- O processamento continua para o próximo manipulador (Return True).
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é colocado antes de quaisquer manipuladores SaveLMS.
ReplaceDepartmentValidateLMSOrgUnitExistsHandler
O ReplaceDepartmentValidateLMSOrgUnitExistsHandler verifica se a unidade organizacional à qual a solicitação corresponde foi excluída no Brightspace.
Implementação
D2L.IM.IPSIS.Default.OrgUnits.Departments.Handlers.ReplaceDepartmentValidateLMSOrgUnitExistsHandler
Comportamento esperado
O manipulador realiza as seguintes tarefas:
- Tenta obter a unidade organizacional atual.
- Se a unidade organizacional atual não existir (a solicitação é um create ou a unidade organizacional foi excluída do Brightspace), o manipulador tentará obter o ExternalOrgUnitInfo para a solicitação.
- Se o ExternalOrgUnitInfo for válido, significa que não é um create e a unidade organizacional foi excluída do Brightspace. Um UpdateOrgUnitFailedException é lançado.
- Essa exceção fará o Serviço do LIS responder com invaliddata. Esse foi considerado o código de resposta mais adequado para a situação.
Comportamento de erro
Se houver um problema durante o processamento, uma exceção será lançada, junto com o máximo possível de detalhes.
Nota sobre a configuração
Esse manipulador é colocado após os manipuladores Read, normalmente como um dos primeiros manipuladores Validate.