Ocorrência
Ao realizar o processo de Enturmação em turma mista, o sistema apresenta a seguinte mensagem:
Falha ao ativar restrições. Uma ou mais linhas contêm valores que violam as restrições non-null unique ou foreign-key

Ambiente
TOTVS Educacional - Educacional - EDU - Todas as versões
Solução
O incidente ocorre devido ao aluno em questão possuir duas matriculas na mesma disciplina nesse mesmo período letivo (situação que não é possível ser feita pelo sistema, onde possivelmente foi utilizado o Importador ou Banco de Dados para a inserir a informação), ou a data de matrícula no período letivo (que é um campo obrigatório) não foi preenchida.
Enquanto o sistema estiver retornando dados duplicados para listagem dos alunos, não será possível realizar o processo. Para correção, bastará realizar a exclusão das duplicidades.
A consulta abaixo servirá para retornar possíveis duplicidades de matrícula. O resultado da consulta é necessário para validarmos onde o sistema está se perdendo
SELECT *
FROM PPESSOA (NOLOCK)
JOIN SALUNO (NOLOCK)
ON ( PPESSOA.CODIGO = SALUNO.CODPESSOA )
JOIN SPESSOA (NOLOCK)
ON ( PPESSOA.CODIGO = SPESSOA.CODIGO )
JOIN SMATRICPL (NOLOCK)
ON ( SALUNO.CODCOLIGADA = SMATRICPL.CODCOLIGADA
AND SALUNO.RA = SMATRICPL.RA )
JOIN SHABILITACAOFILIAL(NOLOCK)
ON ( SMATRICPL.CODCOLIGADA = SHABILITACAOFILIAL.CODCOLIGADA
AND SMATRICPL.IDHABILITACAOFILIAL = SHABILITACAOFILIAL.IDHABILITACAOFILIAL )
JOIN SHABILITACAO (NOLOCK)
ON ( SHABILITACAOFILIAL.CODCOLIGADA = SHABILITACAO.CODCOLIGADA
AND SHABILITACAOFILIAL.CODCURSO = SHABILITACAO.CODCURSO
AND SHABILITACAOFILIAL.CODHABILITACAO = SHABILITACAO.CODHABILITACAO )
JOIN SHABILITACAOALUNO (NOLOCK)
ON ( SMATRICPL.CODCOLIGADA = SHABILITACAOALUNO.CODCOLIGADA
AND SMATRICPL.IDHABILITACAOFILIAL = SHABILITACAOALUNO.IDHABILITACAOFILIAL
AND SMATRICPL.RA = SHABILITACAOALUNO.RA )
JOIN SSTATUS (NOLOCK)
ON ( SMATRICPL.CODCOLIGADA = SSTATUS.CODCOLIGADA
AND SMATRICPL.CODSTATUS = SSTATUS.CODSTATUS )
JOIN SMATRICULA (NOLOCK)
ON ( SMATRICPL.CODCOLIGADA = SMATRICULA.CODCOLIGADA
AND SMATRICPL.IDPERLET = SMATRICULA.IDPERLET
AND SMATRICPL.RA = SMATRICULA.RA
AND SMATRICPL.IDHABILITACAOFILIAL = SMATRICULA.IDHABILITACAOFILIAL )
JOIN SSTATUS S2 (NOLOCK)
ON ( SMATRICULA.CODCOLIGADA = S2.CODCOLIGADA
AND SMATRICULA.CODSTATUS = S2.CODSTATUS
AND S2.DISCIPLINA = 'S'
AND S2.DIINCALUNODISC = 'S' )
JOIN STURMADISC (NOLOCK)
ON ( SMATRICULA.CODCOLIGADA = STURMADISC.CODCOLIGADA
AND SMATRICULA.IDTURMADISC = STURMADISC.IDTURMADISC
AND SMATRICPL.IDPERLET = STURMADISC.IDPERLET
AND STURMADISC.CODDISC = :CODDISC
AND SMATRICULA.IDTURMADISCORIGEM IS NULL )
LEFT JOIN SMATRICULA M2 (NOLOCK)
ON ( SMATRICULA.CODCOLIGADA = M2.CODCOLIGADA
AND SMATRICULA.RA = M2.RA
AND SMATRICULA.IDTURMADISC = M2.IDTURMADISCORIGEM
AND SMATRICULA.IDPERLET = M2.IDPERLET )
WHERE M2.IDTURMADISCORIGEM IS NULL
AND SSTATUS.PLDISPENTURMACAO = 'S'
AND SMATRICPL.CODCOLIGADA = :CODCOLIGADA
AND SMATRICPL.CODFILIAL = :CODFILIAL
AND SMATRICPL.IDPERLET = :IDPERLET
0 Comentários