FAQs - Suporte técnico

MP - GFE - Erro de chave única duplicada no módulo SIGAGFE ou demais módulos do Protheus

time.png Tempo aproximado para leitura: 00:07:56 min

Dúvida
Como resolver erros de sequência numérica nos programas do GFE - Gestão de Frete Embarcador ou em outros módulos do Protheus?

Ambiente
Microsiga Protheus - Gestão de Frete Embarcador - Todas as Versões

Solução
Para os cadastros e movimentos no qual a numeração é gerada automaticamente e não é permitido que o usuário altere a mesma, esta numeração é controlada pelas tabelas SXE/SXF ou pelo License Server dependendo da configuração do ambiente do cliente.

Inicialmente deverá ser verificado se o controle de numeração está sendo realizado pelo License Server.

Para isso deverá ser aberto appserver.ini do License Server que normalmente tem o nome totvsappserver.ini e procurar pela tag EnableNumber e verificar se está ligado - igual a 1 ou desligado - igual 0.

Quando está igual a 1 significa que está ligado, ou seja, o controle de numeração está sendo realizado pelo License Server.

Quando está igual a 0 significa que está desligado, ou seja, o controle de numeração não está sendo realizado pelo License Server e sim pelos arquivos SXE e SXF do Protheus. Estes arquivos ficam dentro da pasta system da instalação do Protheus.

Para o primeiro caso, onde o controle de numeração está sendo realizado pelo License Server, deve ser seguido o passo-a-passo abaixo:

1. Executar o programa APCFG110 - Controle de Numeração pela opção Miscelanea/Executar Programas. Neste programa Executar Programas, informar APCFG110 no campo Nome Funcao e Confirmar.

2. Neste novo programa aberto, Numerador Automático, procurar na primeira grid o Alias da tabela que está ocorrendo o erro de Chave Duplicada para a Filial em questão - a Filial aparece no começo da coluna Chave. Após encontrar o registro correto, alterar a coluna Número para dois número acima do último documento criado. Por exemplo, o último romaneio existente para a Filial 01 é 0003560 e neste caso deve-se informar o número 0003562.

3. Neste mesmo programa Numerador Automático, porém na segunda grid executar o mesmo procedimento descrito acima porém alterar a coluna Número para um número acima do último documento criado. Por exemplo, o último romaneio existente para a Filial 01 é 0003560 e neste caso deve-se informar o número 0003561.

Para o segundo caso, onde o controle de numeração está sendo realizado pelo Protheus, deve-se seguir o passo-a-passo abaixo:

1. Procurar pelos arquivos SXE.??? e SXF.??? dentro do diretório system e renomear os mesmos. Quando acessar o Protheus novamente e incluir o próximo documento estes arquivos serão criados e alimentados com o próximo numerador de forma automática.

Neste segundo caso, pode ser realizado o mesmo passo-a-passo do primeiro caso, porém este procedimento é mais rápido e vai resolver o problema de chave duplicada para todas as tabelas.

Informações adicionais fornecidas pela área de Tecnologia:
No momento da instalação do License Server 2014, é questionado se a numeração automática será controlada pelo Hardlock - Sim/Não. Se manter como Sim - que é a configuração mais recomendada, ele assume a numeração por hardlock - Enablenumber=1. Se manter o controle por SXE/SXF, deve selecionar a opção Não, ou alterar a linha para Enablenumber=0.

Caso tenha gerado incorreção na numeração, segue abaixo o procedimento de acerto de numeração automática:

  • Verificar inicialmente questões referentes ao campo 1 em questão.
  • Caso não seja resolvido o problema deve-se verificar sobre o controle 2.

0 - Pasta system

Mais de uma pasta system = uso obrigatório de hardlock

Não funciona com SXE e SXF para mais de um system.

1 - Sobre o campo:

1.1 - Para que o cadastro de clientes, por exemplo, traga na inclusão automaticamente o próximo número disponível, pode-se utilizar a seguinte sintaxe no inicializador padrão do campo A1_COD:

GetSx8Num("SA1","A1_COD")

Na maioria das vezes o inicializador padrão do campo está cadastrado como: GetSx8Num("SA1").

2 - Sobre o controle:

2.1 - Como está definido o controle - ENABLENUMBER? É pelo hardlock ou pelo SXE e SXF?

[LICENSESERVER]
enable=1
ENABLENUMBER=0
;CONTROLE DE NUMERAÇÃO
;=1 PELO HARDLOCK default
;=0 PELO SXE E PELO SXF

2.2 - Procedimento para Acerto de Numeração Automática quando utiliza Hardlock - Recomendado pela Microsiga:

Para acertar a numeração pelo hardlock, siga os seguintes passos.

  • Parar todo o serviço do Protheus que controla o hardlock e, caso possua mais de um Protheus Service, para todos eles;
  • Subir o Protheus Server que controla a numeração pelo hardlock em Modo Console - Somente em Modo Console, ou seja, a partir de comando diretamente no DOS;
  • Parar o serviço que controla a numeração por hardlock e desta forma será criado o arquivo lsnumber.val no diretório \BIN\SERVER\ do serviço que está sendo executado -CTRL+C: YES.
  • Apagar o arquivo LSNUMBER.VAL.
  • Subir o Protheus Server que controla a numeração pelo hardlock em Modo Console e acessar o módulo que deverá ser acertada a numeração. Neste ponto, como não existe nenhuma numeração de referência, o hardlock irá pegar o número máximo existente para o campo e irá incrementar em +1.
  • Parar o serviço que controla a numeração por hardlock e desta forma será criado o arquivo LSNUMBER.VAL no diretório \BIN\SERVER\ do serviço que está sendo executado e neste arquivo será armazenada a numeração pertinente ao campo.
  • A partir deste ponto, poderá subir o Protheus Server em modo Serviço, através da ferramenta de controle de serviços do Windows.

Este procedimento irá acertar a numeração para a rotina e consequentemente como todas as numerações automáticas que são controladas pelo hardlock serão reiniciadas.

Este procedimento deve ser efetuado em modo exclusivo, pois, qualquer intervenção que os procedimentos sofrerem por acesso de usuários, deverá ser reiniciado todo o procedimento novamente desde do início. 

O uso de numeração automática em base de teste com mesmo servidor de licenças - hardlock da produção compromete a sequência de numeração da base de produção. Solução: Solicitar um novo hardlock e trabalhar separado.

2.3 - Procedimento para acerto de numeração automática quando utiliza SXE e SXF:

Para manutenção do SXE e SXF e numeração para Hardlock. Basta criar uma opção no Menu chamando o programa APCFG110.

  • Ambiente/Cadastro/Menu;
  • Selecionar somente o menu no Configurador clicar em OK;
  • Adicionar o menu para a coluna novo menu;
  • Selecionar onde deverá ser salva a rotina;
  • Clicar em novo item;
  • Preencher o nome em port/ ingl e esp;
  • Em programa APCFG110 selecionar o módulo de configurador clicar em ok;
  • Gerar como sigacfg/ sair do configurador e entrar novamente para visualizar a nova rotina

Na rotina APCFG110 no configurador, verificar qual numeração está incorreta - o número em uso ou próximo número, efetuar a alteração manualmente.

3 - Quando uma tabela tiver mais de um campo com numeração automática, a função deve ficar conforme exemplo:

CAMPO: A1_COD – GETSXENUM(SA1, A1_COD, A1_COD)

CAMPO: A1_CODTST – GETSXENUM(SA1, A1_CODTST, A1_CODTST)

Se você não repetir o campo na função, o Sistema só assume a numeração pelo Alias.

4 - Caso o problema seja em uma rotina pontual é necessário verificar a questão com a rotina.

Solicitamos ao cliente confirmar em quais rotinas ocorre erro de numeração automática e se é somente nela.

Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _