Árvore de páginas

Versões comparadas

Chave

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

Ajuste de 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 diversos no Protheus

Ambiente:

SIGAFAT - Faturamento

Passo a passo:

PROCEDIMENTO 1

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).


Observação: A recuperação do número da Nota é serializado devido à reserva da numeração e série. Gravar a numeração em paralelo, sem utilizar a reserva de numeração para a primeira instância que chamou a sequencia, causaria conflitos (inclusive, chave duplicada e inconsistência de integridade de dados no banco). Por isto, ao abrir a janela de seleção de série / numeração o processo da segunda instância ficará pausado até que o primeiro libere a numeração (ou se encerre automaticamente após 20 segundos)

Já o processo de gravação de dados da nota, bem como geração de integrações Financeiro e Estoque, é multi-usuário. Ou seja, se logo que um primeiro processo chamar a numeração e liberar, e na mesma sequência o segundo processo chamar e liberar a numeração, ambos os processos estarão gravando simultaneamente os registros gerados pelo processamento.


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. Quando emite a primeira Nota, automaticamente é gerado na SD9 um Lote de 5.000 numerações (ou "formulários) para serem utilizados no faturamento.

Atendendo à esta proposta, não é disponibilizada a opção de alterar manualmente a numeração, bem como, não reutiliza numerações já utilizadas. Uma vez tendo utilizado a numeração ("preenchido o formulário de nota") o registro é preenchido na SD9 e mesmo que a nota seja cancelada / excluída; é sugerida a numeração seguinte.

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

Importante: O controle via SD9 não invalida a SX5, a qual continua sendo atualizada com as numerações para fornecer a próxima disponível. Neste modo, ocorre que além da SX5, há como complemento um acompanhamento de cada numeração utilizada através da Tabela SD9 (e AD0 caso MV_FATGCGC = .F. que indica numeração independente por Filial - D9_FILIAL)

Seguem principais validações:

 - O MV_TPNRNFS deve estar com conteúdo = 3

 - Ao implementar este controle, registrar na rotina MATA012 a numeração (e respectiva série) pela qual deve iniciar o faturamento. Obs: A Tabela de Series do Protheus é a SX5 - Tabela 01 desta forma, não deve indicar na SD9 uma série que ainda não existe / não foi criada na SX5 - 01

Obs: Ao emitir a primeira Nota pela SD9 o sistema irá sugerir a numeração antiga da SX5 pois a SD9 ainda não

Obs: 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, assim SX5 também deve ser exclusiva!

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


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. Quando emite a primeira Nota, automaticamente é gerado na SD9 um Lote de 5.000 numerações (ou "formulários) para serem utilizados no faturamento.

Atendendo à esta proposta, não é disponibilizada a opção de alterar manualmente a numeração, bem como, não reutiliza numerações já utilizadas. Uma vez tendo utilizado a numeração ("preenchido o formulário de nota") o registro é preenchido na SD9 e mesmo que a nota seja cancelada / excluída; é sugerida a numeração seguinte.

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

Importante: O controle via SD9 não invalida a SX5, a qual continua sendo atualizada com as numerações para fornecer a próxima disponível. Neste modo, ocorre que além da SX5, há como complemento um acompanhamento de cada numeração utilizada através da Tabela SD9 (e AD0 caso MV_FATGCGC = .F. que indica numeração independente por Filial - D9_FILIAL)


Seguem principais validações:

 - O MV_TPNRNFS deve estar com conteúdo = 3

 - Ao implementar este controle, registrar na rotina MATA012 a numeração (e respectiva série) pela qual deve iniciar o faturamento. Obs: A Tabela de Series do Protheus é a SX5 - Tabela 01 desta forma, não deve indicar na SD9 uma série que ainda não existe / não foi criada na SX5 - 01

Obs: Ao emitir a primeira Nota pela SD9 o sistema irá sugerir a numeração antiga da SX5 pois a SD9 ainda não fora alimentada. Daí em diante, a SD9 replica o conteúdo para a SX5 que passa a sugerir a numeração alinhado à sequencia.


Parâmetro MV_FATGCGC - Quando possui duas ou mais filiais com mesmo CNPJ

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

Obs: Para esta opção ocorre também a atualização da Tabela AD0 de forma a indicar a Filial respectiva à numeração. Para este caso, avaliar se foi criada a tabela AD0 em sua SX2 conforme as características registradas no Boletim Técnico da funcionalidade (abaixo).

 - Utilizar MV_FATGCGC = .F. para Controlar a numeração por Filial (D9_FILIAL), e não por CNPJ. Ou seja: sequenciais distintos, cada Filial possui sua própria sequencial, podendo cada qual ter a mesma numeração (e neste caso repetir a numeração cada qual em sua sequencia e Filial).

 

 - 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 SM0 / Sigamat.


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

(Detalhes em: FAT0002_Soluções possíveis para o Help A460FLOCK (MATA461))

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

b) Ambientes DIFERENTES.

Ambiente: DBF

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

Ambiente: 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, traga na inclusão automaticamente o próximo número disponível, utiliza-se a seguinte sintaxe no inicializador padrão do campo A1_COD:

GetSx8Num("SA1","A1_COD").

Favor validar se o X3 está com esta informação no inicializador!

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 estar 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.

  • IMPORTANTE: 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

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

Quando a numeração é controlada pelo HARDLOCK (Lsnumber.val), sempre que reiniciado, irá pegar a maior numeração que possui.

Para realizar o acerto de numeração, 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 (lsnuber.val) 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 LSNUMBER.VAL.

- Subir o Protheus Server que controla a numeração pelo HARDLOCK (lsnuber.val) 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


OBSERVAÇÃO


Principais Pontos de Entrada que permitem tratar a Numeração do Documento de Saída:


M467FILT - Filtrar séries a serem mostradas (Não é válida para o módulo Loja): http://tdn.totvs.com/pages/releaseview.action?pageId=6784228


SX5NOTA - Validação das séries que deseja considerar no momento da geração da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784448


FTVDCHGX5FIL - Filial específica para busca da série da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784604


M460NUM - Seleção da série - Executado após a seleção da série para permitir a troca através de customização local: http://tdn.totvs.com/pages/releaseview.action?pageId=6784193


M461SER - Série e Número Nota Fiscal Saída: http://tdn.totvs.com/pages/releaseview.action?pageId=46072846


M468ASER - Chamado durante o processamento da nota fiscal, para a obtenção da série da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784231


MA461NNF - Visualização do número da nota gerada pelo SD9: http://tdn.totvs.com/pages/releaseview.action?pageId=6784608


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

(Detalhes em: FAT0002_Soluções possíveis para o Help A460FLOCK (MATA461))

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

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 abaixo:


Validação do Controle de Numeração

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


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 ou 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. Possui mais de um ambiente apontando para o mesmo banco de dados e o mesmo License Server (configuração no ini do server) como por exemplo ambiente Produção e Teste? É 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


b) Ambientes DIFERENTES.

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

Ambiente 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 - Configuração do Campo para geração de número automático

Para que, por exemplo, o cadastro de clientes, traga na inclusão automaticamente o próximo número disponível, utiliza-se a seguinte sintaxe no inicializador padrão do campo A1_COD: GetSx8Num("SA1","A1_COD").

Validar se o X3 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 estar 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.


  • IMPORTANTE: 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


Se estiver ok, passe ao item seguinte.


4 - Procedimento para Acerto de Numeração Automática


IMPORTANTE: Quando a numeração é controlada pelo HARDLOCK, ao reiniciar o License Server não será mais criado o arquivo lsnumber.val ; obrigando assim a regeração a partir da numeração do banco de dados. Detalhes em: http://tdn.totvs.com.br/pages/viewpage.action?pageId=249267720

Deste modo o HARDLOCK 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



Conferência: Verifique na tabela em questão qual é a maior numeração já gerada na Tabela (ou qual a última numeração gerada na sequência que deseja dar contiuidade) - Exemplo: 000100


4.1. Ajuste SXE / SXF

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

- Na tabela SXE - deixe o campo do código com SXF+1 - Exemplo: 000102

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


4.2. Ajuste HARDLOCK


a) Inclusão da rotina APCFG110 no MENU

- Configurador SIGACFG > Ambiente > Ccadastro > Menu;

- Selecionar somente o menu no configurador clicar em OK;

-

adicionar

Adicionar o menu para a coluna "novo menu";

-

selecionar

Selecionar onde deverá ser salva a rotina

-

clicar

Clicar em novo item

-

preencher

Preencher o nome em port/ ingl e esp

- Em "programa" APCFG110 selecionar o módulo de configurador clicar em ok

-

gerar

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

OBS: A rotina APCFG110 também pode ser consultada executando a fórmula: apcfg110() em campo macro executável como por exemplo campo CT5_VLR01


b) Linhas únicas por ALIAS / Filial

- Verificar na rotina APCFG110 a sessão "Próximos números" e principalmente a sessão "EM USO". Deverá conter apenas uma linha para cada ALIAS (por Filial).

Exemplo, ALIAS SC5, pode haver apenas uma linha de numeração para a SC5 para cada Filial. Caso esteja exibindo mais de uma linha para o mesmo ALIAS, reiniciar o License Server.


c) Correção

- Na sessão "Números em uso / números liberados" deixe o campo do código com o próximo número a ser gerado - Exemplo: 000101

- Na sessão "Próximos números" deixe o campo do código com +1 - Exemplo: 000102


5 - Nota complementar sobre 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.

 

Pode lhe interessar:

Principais Pontos de Entrada que permitem tratar o PROCEDIMENTO 1 - CONTROLE DE NUMERAÇÃO AUTOMÁTICA PARA DOCUMENTO DE SAÍDA

M467FILT - Filtrar séries a serem mostradas (Não é válida para o módulo Loja): http://tdn.totvs.com/pages/releaseview.action?pageId=6784228

SX5NOTA - Validação das séries que deseja considerar no momento da geração da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784448

FTVDCHGX5FIL - Filial específica para busca da série da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784604

M460NUM - Seleção da série - Executado após a seleção da série para permitir a troca através de customização local: http://tdn.totvs.com/pages/releaseview.action?pageId=6784193

M461SER - Série e Número Nota Fiscal Saída: http://tdn.totvs.com/pages/releaseview.action?pageId=46072846

M468ASER - Chamado durante o processamento da nota fiscal, para a obtenção da série da NF: http://tdn.totvs.com/pages/releaseview.action?pageId=6784231

, compromete a numeração subsequente.

 

MA461NNF - Visualização do número da nota gerada pelo SD9: http://tdn.totvs.com/pages/releaseview.action?pageId=6784608