Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Ajuste

...

do Controle de Numeração automática

Produto:

Microsiga Protheus

Ocorrência:

Procedimentos para ajustar o Controle de Numeração automática de

Documento de saída e ALIAS

Formulários (Tabelas / ALIAS) diversos no Protheus

Ambiente:

SIGAFAT - Faturamento

Passo a passo:

PROCEDIMENTO 1 - CONTROLE DE NUMERAÇÃO AUTOMÁTICA PARA DOCUMENTO DE SAÍDA

 

Verifique o parâmetro MV_TPNRNFS: Indica de que forma será controlada a numeração dos documentos de saída e entrada com formulário próprio.

As opções disponíveis são:

1. Controle de numeração pelo SX5 - Tabelas Genéricas.

2. Controle de numeração pelo SXE / SXF (Hardlock ou Disco System)

3. Controle de numeração dos documentos de entrada e saída por SD9 / Cadastro manual via rotina de atualização de documentos (MATA012).

 

1. Para controle por SX5 - Tabelas Genéricas

 - Verifique na rotina MATA460A(Doc. De saída) e verifique o Cód. da Ultima NOTA gerada (nota "000009" por exemplo).

- Acesse o Configurador -> Tabelas Genéricas

- Vá até X5_TABELA = 01 e na X5_CHAVE > localize a SERIE utilizada para gerar a nota (nesse exemplo Serie 1) X5_TABELA = 01 e X5_CHAVE 1

- Nessa mesma linha, no campo X5_DESCRI preencher = um numero maior que o valor da última nota gerada ("000009"). Ex: X5_DESCRI "000010"

Assim o sistema irá recomeçar a numeração a partir da "000010".

 

2. Para controle por SXE / SXF

 - Verifique qual a maior numeração já gerada na Tabela SF2 - Exemplo: 000009

- Acesse a rotina APCFG110 - Manutenção SXE/SXF

- Na tabela SXF - deixe o campo para o ALIAS SF2 com o próximo número a ser gerado - Exemplo: 000010

- Na tabela SXE - deixe o campo para o ALIAS SF2 com SXF+1 - Exemplo: 000011

- Deixe apenas uma linha para o ALIAS tanto na SXF quanto na SXE. Se houver outras linhas, delete.

Inclua novos registros para validar a atribuição correta do número.

 

3. Para controle por SD9

O controle de numeração por SD9 foi desenvolvido baseado no modelo de Talão de Notas. Desta forma, não é disponibilizada a opção de alterar manualmente a numeração, bem como, não reutiliza numerações já utilizadas.

O ajuste de numeração, quando controlado pela SD9, é automático. Para tanto, é necessário validar todos os pontos considerados para este tratamento, realizado pelo próprio sistema:

 

Seguem principais validações:

 - O MV_TPNRNFS deve estar com conteúdo = 3

 - Validar na rotina MATA012 os números iniciais das notas para respectivas séries.

 

 - Utilizar MV_FATGCGC = .T. para Controlar a numeração por CNPJ, e não por D9_FILIAL (ou seja: apenas um sequencial e numerações diferentes); ou,

 - Utilizar MV_FATGCGC = .F. para Controlar a numeração por D9_FILIAL, e não por CNPJ (ou seja: dois sequenciais distintos, podendo cada qual ter a mesma numeração).

 

 Importante atentar-se:

* Se a numeração de notas for exclusiva, os parâmetros também devem ser exclusivos, bem como as tabelas.

* Se a numeração for compartilhada, os parâmetros também devem ser compartilhados, bem como as tabelas.

 

 - Avaliar se foi criada a tabela AD0 em sua SX2 conforme as características registradas no Boletim Técnico da funcionalidade.

 - Validar se foram criados corretamente: os campos da SD9; os índices; e os parâmetros registrados no boletim.

 Obs: Devem ter sido automaticamente criados ao executar o compatibilizador UPDFAT39 (o qual é imprescindível para implementar a funcionalidade, conforme orientações do boletim).

 - Os CNPJs das filiais devem necessariamente estar cadastrados corretamente no cadastro da empresa.

 

Tendo realizado as validações, item a item:

- Realize backup de sua SD9, e:

- Executar a rotina de Ajuste de Numeração da tabela SD9 (MATA470 - verifique orientações do Boletim) para corrigir o controle de numeração.

 

Boletim Técnico:

View file
nameFAT_BT_Controle de Numeracao SD9 de NFS por CNPJ_TPGNRW.pdf
height250

MENSAGEM: A460FLOCK - Ocorreu algum problema na última geração de notas fiscais

 

O alerta "A460FLOCK - Ocorreu algum problema na última geração de notas fiscais" acontece em 3 situações:

 

1- Falta da tabela SX5

2- Falta do parâmetro mv_numiten

3- Arquivo SX5 corrompido

 

Sendo assim,

1- Acesse o Configurador e o Banco de Dados e valide se em ambas é localizada a tabela;

2- Verifique se o parâmetro MV_NUMITEN está criado e com conteúdo válido;

3- E para a última situação, será necessário realizar o procedimento abaixo:

 

A- Primeiramente validar que o controle de numeração é via SX5:

Verifique o parâmetro MV_TPNRNFS: Indica de que forma será controlada a numeração dos documentos de saída e entrada com formulário próprio.

As opções disponíveis são:

1. Controle de numeração pelo SX5 - Tabelas Genéricas.

2. Controle de numeração pelo SXE / SXF

3. Controle de numeração dos documentos de entrada e saída pelo SD9.

 

B- Realizar um Backup da tabela SX5

C- Abir o backup para validar o arquivo, aplicar o utilitário PACK sobre ele (para excluir registros deletados), e salvar com outro nome para manter o backup original intacto

D- Aplicar um ZAP na tabela SX5 (truncate table) que irá deletar a tabela mantendo apenas a estrutura

E- Executar um APPEND na SX5 do backup no qual foi aplicado PACK

 

Obs IMPORTANTE:

*Atente-se se o SX5 é exclusivo ou compartilhado. Se SF2 e SD2 são exclusivas, ou seja, cada Filial tem seu próprio controle de Notas de saída; então, o controle de numeração da nota de saída também deve ser exclusivo. Neste caso, se o MV_TPNRNFS = 1 então o controle de numeração é via SX5, a qual também deve ser exclusiva.

Se for imprescindível utilizar a SX5 compartilhada, deixando apenas a TABELA 01 exclusiva, é necessário utilizar Ponto de Entrada: CHGX5FIL - CHGX5FIL+-+Utiliza+Tabela+01+Exclusiva+em+um+SX5+Compartilhado (Utilizando SX5 compartilhado, cada filial deverá possuir um mv_numiten).

 

* Outra situação que deve ser levada em consideração para  este tipo de problema, é se o configurador estiver aberto na tabela 01 de série notas fiscais e tentar faturar a nota, o sistema também exibe o mesmo help, sendo necessário, fechar o configurador durante o processo.

 

Importante : Todo procedimento deve ser primeiramente realizado em base teste. Somente realizar na base de produção após o processo ser validado pela equipe de TI da empresa juntamente com o usuário final. Havendo dúvidas ou dificuldade em relação ao procedimento, acionar um consultor Totvs.

 

PROCEDIMENTO 2 - CONTROLE DE NUMERAÇÃO AUTOMÁTICA PARA TABELAS (ALIAS) DIVERSAS POR SXE/SXF ou HARDLOCK

IMPORTANTE: PROTHEUS 12 o controle deve ser somente via Hardlock. Para validar em seu ambiente, consulte o item 4.1 abaixo.

 

Seguir esta ordem de verificação para acerto de numeração automática:

 

1 - Usuário ADMIN

O usuário que inicializa o serviço do Protheus Server (que usa hardlock) deve ser o ADMINISTRADOR.

Se estiver ok, passe ao item seguinte.

 

2 - Pasta SYSTEM

 

2.1. SXE e SXF / Hardlock.

Mais de uma pasta System = USO OBRIGATÓRIO DE HARDLOCK.

NÃO FUNCIONA com SXE e SXF para mais de um SYSTEM.

 

2.2. SpecialKey e X2_PATH

Se utilizar hardlock, e tiver mais de um ambiente, é necessário:

 

a) Obrigatório uso da chave SpecialKey (detalhes em http://tdn.totvs.com/display/tec/SpecialKey).

Exemplo:

 [ENVDBF]

 SourcePath=C:\Protheus10\APO\R13

 RootPath=C:\Protheus10\Protheus_Data\R13

 StartPath=\system\\13

 x2_path=

 RpoDb=dbf

 RpoLanguage=portuguese

 RpoVersion=101

 LocalFiles=ads

 Trace=0

 localdbextension=.dbf

 SPECIALKEY=ENVDBF

com a chave CheckSpecialKey

 [general]

 CheckSpecialKey=0

 

O controle de numeração do Protheus utiliza a Tabela ASCII para definição de sequência.

Antigamente utilizava-se o Hard Lock conectado ao servidor. Posteriormente esse controle foi migrado para as Tabelas SXE / SXF físicas no diretório do ambiente.

A partir do Protheus V12 o controle de numeração deve ser exclusivamente via License Server (Release 25 inclusive já valida no momento do Upgrade para não permitir virada do release sem uso do License - DFRM1-16558).

Além do fato de o desempenho ser muito superior neste modelo em relação ao modelo nas tabelas SXE/SXF, existe também o fato de que as tabelas SXE/SXF serem gerenciadas pelo FileSystem, e por conta disto podem ser corrompidas em casos de encerramentos inesperados, como quedas de energia.

A numeração das tabelas em License Server é armazenada em memória, enquanto o License Server está ativo. Quando o serviço do License Server é parado, é criado um arquivo chamado LSNumber.val na pasta do Application Server. Neste arquivo são gravadas as últimas sequências das chaves em uso no License, das tabelas que possuem numeração automática. Quando o License é reiniciado, esses dados são lidos deste arquivo e carregados em memória novamente, para dar continuidade na sequência da numeração automática.

Todos os detalhes em: Numeração automática pelo License Server

Dica
titleVídeo How To

Quer saber mais sobre o Controle de Numeração Automática? Veja nosso vídeo sobre o assunto no link: Ajuste de Numeração automática das tabelas

Deck of Cards
idValidações
Card
idLicense
labelPASSO 1 - License Server

Validar que seu controle de numeração está devidamente configurado para utilizar o License Server:

Verifique no arquivo appserver.ini como está preenchida a chave (ENABLENUMER) da sessão [licenseserver]. Deve estar configurado: Enablenumber=1 o que indica controle no License Server (Enablenumber=0 indica controle pelas antigas tabelas SXE/SXF):

Nota
titleExemplo

[LICENSESERVER]
Enable=1
Port=5555
ShowStatus=1
ENABLENUMBER= 0 ou 1

ENABLENUMBER= 0 = SXE e SXF
ENABLENUMBER= 1 = License Server

Informações
titleImportante
olocações IMPORTANTES:
  • Se não existir a linha Enablenumber na seção [LicenseServer], assume-se o padrão, que é numeração no License Server.

  • Caso identifique que ainda está configurado como SXE/SXF recomendamos que faça um backup das tabelas SXE e SXF antes de alterar pois, ao alterar o modo de numeração para o modo License Server (Enablenumber=0 para Enablenumber=1) as tabelas SXE e SXF serão deletadas no momento em que acessar a primeira rotina que utilize numeração automática, e nesse momento, o License Server irá buscar a última numeração de cada tabela com numeração automática, e carregar em memória. Após a alteração, caso a numeração esteja na ordem incorreta, utilizar a rotina APCFG110 para acertar (abordada a seguir).

  • O usuário que inicializa o serviço do Protheus Server (que usa License Server) deve ser o ADMINISTRADOR.

  • Certifique-se de estar com BUILD e LIB e versão do LS - License Server atualizados (LS deve ser igual ou superior a 1.03.014). Detalhes em: Habilitada geração do arquivo LSNumber.val
  • Com esta atualização volta a ser gravado o arquivo LSNumber.val (quando o servidor de licenças é encerrado corretamente, via console ou no fim do serviço).
    Esse arquivo grava a última sequência disponível para as chaves em uso no License, quando o servidor de licenças é reiniciado esses dados são carregados para a aplicação e no momento de obter a próxima sequência serão considerado os dados que estiverem nesse arquivo.
    A funcionalidade é recomendada pois uma vez que a sequencia estiver corrigida o License irá guardar o conteúdo e continuar sempre a partir dele; ao invés de buscar na tabela do sistema a próxima sequencia para a chave a partir da última numeração gravada.

    Se estiver com License Server anterior à versão 1.03.014 e com builds superior a 7.00.131227A - 1.0.3 então, neste caso, o sistema não irá gravar o arquivo LSNumber.val e passará a buscar na Tabela a maior numeração já gravada para dar sequência. Detalhes em: Criação do LSNumber.val / Numeração automática pelo License Server

    Ou seja, o License Server irá varrer a Tabela em questão (exemplo SC5) no Banco de Dados e irá se basear na maior numeração que possui gravada e incrementar em +1
    Exemplo: A sequência do campo está na numeração 000096 , 000097 , 000098 , 000099 , 000100 .... Mas, por algum motivo, essa tabela já possui um registro gravado com a numeração 142535. Ao reiniciar o LS, irá varrer a tabela para encontrar a última numeração e como o número 142535 é maior que o 000100, seguirá a numeração a partir do 142535 respeitando a regra da maior numeração que possui gravada e incrementar em +1
    Observação: Para ambientes que possuam lacunas na numeração automática como exemplificado acima, é possível utilizar o ponto de entrada CRIASXE, que consegue varrer a tabela e setar a numeração. Mais informações: ADVPL - Ponto de Entrada CRIASXE.

  • Múltiplos Ambientes utilizando o mesmo License Server:

    Quando sua estrutura possui mais de um Appserver / mais de uma pasta System apontando para o mesmo License Server, a numeração de uma base pode influenciar na outra. Por isso, é necessário configurar a chave SpecialKey no arquivo appserver.ini de cada base, para que cada ambiente possua uma chave diferente no License Server. Esse cenário é encontrado por exemplo quando se possui mais de um ambiente (exemplo ambiente de Produção e ambiente de Teste) apontando para o mesmo banco de dados e o mesmo License Server (configuração no ini do server).

    Veja como configurar a chave SpecialKey

    Ambiente DBF:

b) Ambientes DIFERENTES.

Ambiente: DBF

  • Se os ambientes forem DBF/CDX eles devem apontar para endereços no X2_PATH, obrigatoriamente, diferentes.

 

  • Ambiente TOP:

TOP
  • Se os ambientes forem TOPConnect/TOTVSDBAcess, os alias dos ambientes devem ser, obrigatoriamente, diferentes.

 

Se 2.1 e 2.2 estiverem ok, passe ao item seguinte.

 

3 - Campo

Para que o cadastro de clientes, por exemplo,
Card
defaulttrue
idFormulário
labelPASSO 2 - Função no dicionário

Validar que o Formulário (a tabela / rotina) em questão possui realmente a função de numeração automática:

Nem todas as Tabelas / as Rotinas do Protheus possuem por padrão a função de sugerir numeração automática.

Para que, por exemplo, cadastro de clientes, traga na inclusão automaticamente o próximo número disponível,

pode

utiliza-se

utilizar

a seguinte sintaxe no inicializador padrão (SX3) do campo A1_COD:

GetSx8Num("SA1","A1_COD")

.

Favor validar

É necessário verificar se o X3 do campo que deseja está com esta informação no inicializador padrão!

Obs:

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

.

 

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 não repetir o campo na função, o sistema só assume a numeração pelo Alias.

 

Se estiver ok, passe ao item seguinte.

 

4 - Controle:

 

4.1 - Como está definido o controle(ENABLENUMER)? É pelo hardlock ou pelo SXE e SXF?

Para analisar como é controlada, verificar como está configurado no licenseserver:
Ex:
[LICENSESERVER]
Enable=1
Port=5555
ShowStatus=1
ENABLENUMBER= 0 ou 1

ENABLENUMBER= 0 = SXE e SXF
ENABLENUMBER= 1 = Hard Lock

 

4.2 - Procedimento para Acerto de Numeração Automática quando utiliza HARDLOCK - RECOMENDADO PELA MICROSIGA (Obs: Se for SXE e SXF, pular para o item 4.3):

 

No diretório appserver, arquivo appserver.ini

Na sessão [licenseserver]

enablenumber=1

 

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 isnumber.val no diretório \BIN\SERVER\ do serviço que está sendo executado (CTRL+C: YES).

- Apagar o arquivo ISNUMBER.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 ira 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á Armazenado 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.

 

LEMBRETE: ESTE PROCEDIMENTO DEVE SER EFETUADO EM MODO EXCLUSIVO, POIS, QUALQUER INTERVENÇÃO QUE OS PROCEDIMENTOS SOFREREM POR ACESSO DE USUÁRIOS, DEVERÁ SE REINICIAR TODO O PROCEDIMENTO NOVAMENTE DESDE O INÍCIO.

 

OBS: QUANDO UTILIZADO O CONTROLE DE NUMERAÇÃO AUTOMÁTICA COM MESMO SERVIDOR DE LICENÇAS (HARDLOCK) NOS AMBIENTES DE PRODUÇÃO E HOMOLOGAÇÃO E NECESSÁRIO UTILIZAR A CLAUSULA "SPECIALKEY" NO ARQUIVOS DE CONFIGURAÇÃO APPSERVER.INI (Maiores detalhes consulte o Link SpecialKey).

 

4.3 - Procedimento para Acerto de Numeração Automática quando utiliza SXE e SXF:

 

Para localizar as Tabelas SXE e SXF há duas formas:

1ª - Acessar por Fórmulas:

- Cadastro de Fórmulas - rotina CFGX019 > Incluir

- Digitar um Código (exemplo 001)

- Digitar um Nome (Exemplo: CONTROLE DE NUMERAÇÃO)

- No campo Fórmula, digitar o conteúdo: apcfg110()

Ao teclar Tab em seu teclado, o sistema abre as tabelas para ajuste.

 

2ª - Criar uma opção no MENU chamando 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

- informar a numeração atual e próximo número utilizado

 

Realizar o seguinte ajuste nas tabelas SXE e SXF:

- Verifique primeiramente qual a maior numeração já gerada na Tabela SA1 - Exemplo: 000100

- Na tabela SXF - deixe o campo A1_COD com o  próximo número a ser gerado - Exemplo: 000101

- Na tabela SXE - deixe o campo A1_COD com SXF+1 - Exemplo: 000102

- Deixe apenas uma linha para o ALIAS SA1 tanto na SXF quanto na SXE. Se houver outras linhas, delete.

 

Inclua novos registros para validar a atribuição correta do número.

 

5 - Uso simultâneo

O uso simultâneo da Tabela faz com que o sistema se comporte de forma a atender todas as chamadas de numeração. O resultado da ordem da numeração está sujeito à efetivação realizada pelo usuário que a reservou.

A reserva de numeração compromete a ordem quando há mais de um usuário manipulando a tabela ao mesmo tempo, se determinado usuário já reservou a numeração e não efetivou o registro, após um segundo usuário ter reservado a numeração seguinte; podendo ocasionar em duplicidade de registros na SXF para garantir todas as reservas feitas. Desta forma, a não efetivação das reservas, compromete a numeração subsequente.

Os inicializadores GetSx8Num e GetSxeNum tem o mesmo funcionamento e objetivo, porém caso necessário incluir em algum campo que não seja por padrão,  o mais utilizado a partir da release 12.125 é a GetSx8Num, pois as tabelas SXE/SXF não estão disponíveis para acesso direto no Lobo Guará.


Aviso
titleObservação

Particularmente se o caso for referente ao Cadastro de Cliente SA1 é importante verificar também se a configuração não está Nativa do módulo SIGALOJA:SIGALOJA Geração do código de cliente a partir do CPF/CNPJ)

Com relação ao uso da função A030INICPD() no Inicializador padrão de A1_COD, é um tratamento para o código do cliente caso exista integração com o RM Sistemas, o que depende da configuração do parâmetro MV_RMCLASS, se você não tem esta integração,  a função não terá efeito no seu processo.

Aviso
titleImportante

Esta configuração no SX3 para geração automática de numeração sequencial deve ser utilizada apenas por campos nos quais já consta a definição no nativo do Protheus. Não deve ser incluída manualmente em campos que não possuem este controle automático por padrão (como por exemplo no campo C5_NUM). Isto porque, este tratamento por si só não trata abandono de numeração reservada não utilizada (este tratamento é realizado no código fonte das rotinas). Ou seja, ao reservar a próxima numeração clicando em "Incluir"(registro 000010 por exemplo) mas não efetivar a gravação, abandonando o registro, depois de já ter sido utilizada a numeração seguinte (depois de outra instância ter gravado a 000011 por exemplo) serão provocadas lacunas fazendo com que o controle automático se perca. Desta forma, seria necessário verificar a possibilidade de uso de ponto de entrada na rotina que deseja implementar o uso de numeração automática para o fiel comportamento da ferramenta, de forma a tratar abandonos de reserva de numeração.

No Portal gestão de Vendas devido a utilização de threads, que permanece ativa aguardando novas execuções a utilização GetSx8Num(), não é possível a utilização desta função pois não é encerrada as threads mantendo a mesma numeração ou ocorrendo abandono de numerações.

Nesse caso, para capturar o próximo número para o campo A1_COD, é possível realizar uma customização utilizando a função de usuário (User Function) na chamada do campo do Inicializador padrão (X3_RELACAO). Isso permitirá controlar o momento em que a ação está vindo do Portal de Gestão de Vendas, possibilitando o tratamento e a validação do retorno para apresentação correta da numeração no PGV.

Abaixo indicamos um exemplo de função, lembrando que trata-se apenas de um exemplo, caso necessite customizar, solicite o acompanhamento de seu analista programador:


Bloco de código
titleExemplo de User Function
#Include 'TOTVS.ch'

User Function NextSA1Cod()
Local cNum := GETSXENUM("SA1","A1_COD")

DbSelectArea("SA1")
SA1->(DbSetOrder(1))
While (DbSeek(xFilial("SA1")+cNum))
ConfirmSX8()

cNum := GETSXENUM("SA1","A1_COD")
Enddo

DbCloseArea()
RollbackSx8()
Return cNum
Card
defaulttrue
idAjuste da numeração automática
labelPASSO 3 - Ajuste Configurador

Ajuste da numeração automática:

Para acertar a numeração automática, quando ela sai de ordem por algum motivo, deve-se executar a rotina APCFG110 pelo Configurador.

Verifique primeiramente o último/maior número gravado na Tabela (registro "000004" por exemplo) a partir da qual deseja dar sequência (Atente-se à numeração de acordo com a Filial).


Informações
titleObservação

Suponhamos que o License Server seja parado de forma inesperada, como uma queda de energia ou fechamento inadequado, o arquivo não é gerado, e não reinicialização do License, as informações da última numeração são lidas diretamente das tabelas no banco e carregadas em memória.

Ou seja, se houver uma numeração discrepante na sequência da tabela, como por exemplo, alguma numeração iniciada com uma letra, em meio a uma sequência de números (no banco de dados, as letras vem depois dos números, então o código iniciado com letra vai ser considerado o último número da sequência, depois de qualquer número), toda vez que o servidor é reiniciado sem execução do processo correto (via console ou no fim do serviço), esse código será carregado com base nessa numeração "incorreta" do banco.


Vamos tomar, como exemplo, a numeração automática no campo A1_COD da tabela de Clientes (SA1).

Na imagem abaixo, note que existem 4 clientes cadastrados, portanto a última numeração é 000004:
2019-04-10_1001.pngImage Added

Na rotina APCFG110, a numeração deverá estar conforme a imagem abaixo:
2019-04-10_1002.pngImage Added

  • Na seção inferior (antiga SXF) - Numeros em uso/ Numeros liberados: Exibe a última numeração sugerida / a sugerir (ainda não gravada) → neste exemplo, 000005.
  • Na seção superior (antiga SXE) - Proximos numeros: Exibe a numeração seguinte, ou seja (última numeração sugerida / a sugerir (ainda não gravada)) + 1 → neste exemplo, 000006.
  • Se por algum motivo, ao incluir um Novo Cliente na rotina de Clientes, a próxima numeração não estiver sendo 000005, então deve clicar 2 vezes no número que está em Números em uso, alterar para o que seria o próximo, e na área Próximos números inserir o subsequente correto. Com isso é redefinida a ordem que o sistema de numeração automática deve seguir.

Informações
titleObservação

Certifique-se de que tanto na seção inferior quanto na superior exista apenas uma linha (um registro) de sugestão da numeração para o ALIAS. Se houver registro duplicado, com ALIAS e Chave idênticos, reinicie o License Server e valide se foi ajustado de modo a possuir apenas uma linha (Dúvidas ou dificuldades nesse procedimento, acionar o Suporte Framework Protheus).

Pode lhe interessar:

Numeração automática pelo License Server

CFG - Numeração automática

FRAME - Acerto de Numeração