Árvore de páginas

FAQ: Por que é exibida a mensagem de não conformidade: Chave Duplicada SC2?


Produto:Microsiga
Ambiente:Unspecified
Versão:P10 e MP11


Solução
Passos para análise:
 
1)      Em ambiente de testes padrão e atualizado, baseado no Portal do Cliente, sem a presença de customizações, faça o teste de inclusão a partir de base de dados vazia, efetuando inclusões e verificando se é gerado o mesmo erro, visando validar o comportamento da rotina.
 
2)      Após backup, a partir da base de dados replicada para o ambiente de testes, apague fisicamente todos os registros marcados como deletados logicamente (D_E_L_E_T_=*) para a tabela SC2;
 
 
3)      Analisar na base de dados da tabela SC2, com registros que atendam à mesma chave presente no X2_UNICO, o qual no momento da inclusão causa tentativa de duplicidade por já existir registro com a mesma chave gravado na base: X2_UNICO DA TABELA SC2: C2_FILIAL+C2_NUM+C2_ITEM+C2_SEQUEN+C2_ITEMGRD.
Exemplo de registro posicionado para análise (localizar no arquivo error.log: " ***"):
Campo 1: C2_FILIAL(C) :01
Campo 2: C2_NUM(C) :045091
Campo 3: C2_ITEM(C) :01
Campo 4: C2_SEQUEN(C) :002
Campo 6: C2_PRODUTO(C) :0229
Campo 7: C2_LOCAL(C) :99
 
4)      Ao utilizar os arquivos SXE/SXF para controle de numeração, analise se os números gravados para a tabela SC2 os quais serão usados como sugestão na próxima gravação estão corretos, onde neste caso, efetue a correção para numeração que não cause tentativa de duplicidade. Através do programa APCFG110, é possível validar as numerações envolvidas. Após realizar backup, faça uma cópia do menu SIGACFG.XNU e adicione no menu a rotina APCFG110, caso ele não esteja presente no seu menu.
Exemplo: APCFG110 1 xxxxxxxxxx 99 0 . Através dessa rotina é possível selecionar nos campos Próximos e Números em Uso/Liberados a tabela SC2, onde é possível alterar a numeração presente para o campo C2_NUM. Após essa alteração as tabelas SXE.dbf / SXF.dbf serão atualizadas automaticamente, como também o controle via Hardlock.
 
5)      Validar se o inicializador padrão presente no campo C2_NUM corresponde ao padrão da rotina: Inic. Padrão: GETNUMSC2().
 
6)      Para validar os registros que já estão em duplicidade na sua base, pode-se também utilizar o programa CheckDupl. A exemplo do programa APCFG110, faça a inclusão no menu do Configurador: - Título: Verificar Integridade - Programa: CheckDupl - Abrir o Configurador e executar a nova opção: Verificar Integridade, onde é possível selecionar a tabela SC2, para validar registros em duplicidade.
 
7)      Validar o processo sem a presença de customizações, visando avaliar o comportamento da rotina sem tais customizações.