Forum
See question

Erro ao migrar Base de dados   

16 views
0
0

Bom dia,
Estou com erro ao migrar da versão 07.81166 para a 07.81169.

Error:

/*
INSERIR REGISTOS “FANTASMAS” NA TABELA ANEXOS
Para todos os registos de CabecMovCBL que têm IdGDOC
mas que ainda NÃO existem em Anexos.ArquivoDigitalID
*/

 

Já validei e não existe dados a null no campo datacriação.
Alguém tem alguma ideia ?

Faça login para poder traduzir
Primavera
Marked as spam
Criado há 14 horas e 13 minutos raqueldiogo
r
raqueldiogo Raquel Diogo Responsiveness Member
1 answers
0
Private answer

Bom dia,

O erro mencionado está relacionado com a tentativa de inserir registos na tabela "Anexos" que não possuem correspondência adequada. Apesar de já ter validado que não existem valores nulos no campo "DataCriacao", é importante verificar outros possíveis problemas que podem estar a causar o erro.

Recomenda-se executar os seguintes passos:

  1. Verificar se existem registos na tabela "CabecMovCBL" que possuem "IdGDOC" mas que ainda não estão presentes na tabela "Anexos". Utilize o seguinte script para identificar esses registos:
  2. SELECT c.IdGDOC, c.DataCriacao, c.DataDoc, *FROM CabecMovCBL cLEFT JOIN Anexos a ON c.IdGDOC = a.ArquivoDigitalIDWHERE a.ArquivoDigitalID IS NULL;
     
  3. Se forem identificados registos, pode ser necessário inserir os dados manualmente na tabela "Anexos". Utilize um script semelhante ao seguinte para realizar a inserção:
  4. INSERT INTO Anexos (Id, Tabela, Chave, FicheiroOrig, Descricao, Data, Utilizador, Tipo, Idioma, Web, ArvoreAnexosID, FicheiroWeb, ExportarTTE, Encriptado, StorageState, SyncErrors, LastSyncDate, LastSyncError, StorageUser, DocumentoOficial, ArquivoDigitalID)
    SELECT NEWID() AS Id, CASE WHEN c.Modulo IN ('V','EC') THEN41 WHEN c.Modulo IN ('C','EF') THEN40 WHEN c.Modulo = 'N' THEN42 WHEN c.Modulo = 'S' THEN63 WHEN c.Modulo IN ('T','U') THEN64 WHEN c.Modulo = 'M' THEN74 WHEN c.Modulo = 'B' THEN76 WHEN c.Modulo = 'L' THEN43 ELSE43 END AS Tabela, CASE c.Modulo WHEN 'L' THEN CONCAT(c.Ano, c.TipoLancamento, c.Diario, c.NumDiario) ELSE CAST(c.IdDocOrig AS VARCHAR(100)) END AS Chave, CASE c.Modulo WHEN 'L' THEN CONCAT(c.Ano, c.TipoLancamento, c.Diario, c.NumDiario, '.pdf') ELSE CONCAT(c.Documento, '_', c.Serie, '_', c.NumDoc, '.pdf') END AS FicheiroOrig, 'Documento Oficial' AS Descricao, c.DataCriacao AS Data, c.Utilizador AS Utilizador, NULL AS Tipo,2070 AS Idioma,0 AS Web, NULL AS ArvoreAnexosID, NULL AS FicheiroWeb,0 AS ExportarTTE,0 AS Encriptado,0 AS StorageState,0 AS SyncErrors, GETDATE() AS LastSyncDate, NULL AS LastSyncError, NULL AS StorageUser,1 AS DocumentoOficial, c.IdGDOC AS ArquivoDigitalIDFROM CabecMovCBL cWHERE NOT EXISTS (SELECT1 FROM Anexos a WHERE a.ArquivoDigitalID = c.IdGDOC);
     
  5. Certifique-se de que todos os campos obrigatórios na tabela "Anexos" estão devidamente preenchidos, especialmente o campo "LastSyncDate", que não permite valores nulos.
  6. Após realizar as correções, tente novamente a migração.

Se o problema persistir, pode ser necessário verificar a integridade da base de dados ou contactar o suporte técnico para análise mais detalhada.

Nota: Certifique-se de realizar um backup da base de dados antes de executar qualquer alteração.

Esta resposta foi gerada pelo Cegid Pulse, com base na base na informação disponível em histórico.

Ajude-nos a melhorar esta funcionalidade:

  • Se a resposta corresponde à sua questão, assinale-a com "Mark as best answer".
  • Se a resposta estiver incorreta, dê-lhe um voto negativo e aguarde a resposta da comunidade.

Faça login para poder traduzir
Marked as spam
Criado há 14 horas e 12 minutos cegidpulse
cegidpulse Cegid Pulse Most Valuable Professional