Á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 para Documento de Saída

...

  • Ao implementar este controle, registrar na rotina MATA012 a próxima numeração (e respectiva série) pela qual deve iniciar o faturamento.
    Obs1: 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
    Obs2: 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 passa a replicar 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
    Obs: Para esta opção ocorre também a atualização da Tabela AD0 de forma a indicar a Filial respectiva à numeração. Neste caso, avaliar se foi criada a tabela AD0 em sua SX2 conforme as características registradas no Boletim Técnico da funcionalidade.
    - 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).
  • Cada Filial deverá possuir um MV_NUMITEN exclusivo;
  • O parâmetro MV_ESPECIE pode conter apenas séries já existentes na SX5 - Tabela 01;
  • Para V11 , conforme Boletim Técnico, é necessário executar o compatibilizador UPDFAT39 para correta criação dos campos da SD9, índices e parâmetros.
  • Os CNPJs das Filiais devem necessariamente estar cadastrados corretamente no cadastro da empresa SM0 / Sigamat.

  • OBS: Exclusivamente para NSU - Número Seqüencial Único em SC - Santa Catarina, verificar também o parâmetro MV_MUDANUM (Detalhes em: http://interno.totvs.com/mktfiles/tdiportais/helponlineprotheus/p12/portuguese/matr012_int.htm)

...

    • O ajuste de numeração, quando controlado pela SD9, é automático e não manual. Para tanto, é necessário validar todos os itens de premissa acima, considerados para este tratamento, para se certificar de que o ajuste realizado pelo próprio sistema será efetivo.
    • Realizar backup da SD9 (E AD0 caso populada).
    • Executar a rotina de Ajuste de Numeração da tabela SD9: MATA470 (verifique aqui orientações do Boletim).

Produto:

Microsiga Protheus

Ocorrência:

Ajuste do Controle de Numeração automática de Documento de saída no Protheus

Versões:V11 e V12

Ambiente:

SIGAFAT - Faturamento

O Protheus possui três possíveis métodos de controlar a numeração automática para Documento de Saída - Faturamento (e Doc. de entrada com formulário próprio).

O método utilizado é definido através do parâmetro


  • MV_TPNRNFS
e as opções são:MV_TPNRNFS
  • = 1 : Controle de numeração via Tabela Genérica SX5 - Tabela 01
    Essa opção é a mais antiga do Protheus. Caso possua grande volume de Faturamento, recomenda-se incrementar a utilização da opção 3 - SD9 (Detalhes abaixo) para evitar lock de registro por concorrência.
  • MV_TPNRNFS = 2 : Controle de numeração via Tabelas SXE / SXF
    As Tabelas SXE e SXF armazenam a próxima numeração disponível e a seguinte. Até a versão 11 do Protheus essas Tabelas eram físicas no diretório System do ambiente, porém, a partir da Versão 12, o controle deve ser somente via License Server (antigo Hardlock). Veja mais informações em: Controle de Numeração de Tabelas (ALIAS) no Protheus).
  • MV_TPNRNFS = 3 : Controle de numeração com uso de SD9
    Recomendado quando há grande volume de Faturamento para evitar lock de registro por concorrência; e para Organizações que possuem duas ou mais Filiais com mesmo CNPJ. Esta opção possui um controle individual de cada numeração, impedindo a reutilização e evitando lacunas.

(Abaixo o detalhamento de cada opção e procedimentos de ajuste.)


Sobre processamento serializado: A recuperação do número da Nota no processo de emissão é 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 sequência, 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.


Sobre Nota Fiscal de Saída Manual (Rotina MATA920): Para que o controle de numeração seja acionado na inclusão de Nota Manual, basta passar pelo campo "Nota Fiscal" (C920NOTA) do formulário deixando-o em branco. Neste momento é exibido um alerta mencionando que deixar o número do Documento em branco indica que após inserção dos dados, será solicitada uma série, e o número será sugerido pelo sistema (com base no controle de numeração) na hora da gravação. Obs: Este desenvolvimento está válido com MATA920 igual ou superior a 19/12/2017 (detalhes em Numeração Automática de Nota Fiscal Manual de Saída).


Parâmetros envolvidos no lock de registro (consultados dentro da transação de Geração da Nota):

  • MV_GNRENF - Recomenda-se utilizar com conteúdo .F. para que não seja gerada a tela de Guia de Recolhimento no momento do Faturamento. O ideal é realizar o processo de GNRE pelo módulo Fiscal.
  • MV_FATTRAV - Recomenda-se utilizar opção 4




1. Controle de numeração via Tabela Genérica SX5 - Tabela 01 (MV_TPNRNFS = 1)

Essa opção é a mais antiga do Protheus. Caso possua grande volume de Faturamento, recomenda-se a utilização da opção 3 - SD9 (Detalhes abaixo) para evitar lock de registro por concorrência.

O controle via SX5 realiza lock (trava de segurança) na Tabela SX5 e no parâmetro MV_NUMITEN por isso é imprescindível que as premissas mencionadas abaixo estejam corretas em seu ambiente.


Premissas:

  • Se o Faturamento é exclusivo (ou seja, registros na SF2 possuam o campo de Filial preenchido) então, é necessário que o controle de numeração também seja exclusivo.

    1ª Opção: SX5 deve ser exclusiva: Confirme em "Configurador > Bases de Dados > Dicionário de Dados > SX5" o modo de compartilhamento da Tabela; e confirme principalmente no Banco de Dados > Top/Ctree se os registros
da
  • da SX5 Tabela 00 e Tabela 01 estão ambas com o campo de Filial devidamente preenchidos indicando que o modo de compartilhamento dos registros está adequado.

    2ª Opção: Caso a SX5 seja compartilhada, utilizar o Ponto de Entrada CHGX5FIL (dúvidas, acione o Suporte ADVPL Protheus) para passar o código da Filial logada para a SX5 a fim de localizar o registro exclusivo da Tabela 01 (veja qui Exemplo de uso do Ponto)

    IMPORTANTE: Não é recomendada a alteração de compartilhamento da SX5 em ambiente Produção já em uso!
    Conforme menciona ao tentar realizar esta alteração no Configurador, a adequação de dados da base não ocorre ao alterar o modo de compartilhamento; ocasionando quebra de integridade
pois a Tabela fica exclusiva mas com registros compartilhados
  • (inclusive para registro de novas séries visto que a estrutura da SX5 Tabela 00 não está adaptada para Filial
. Assim
  • ); assim, ao emitir a Nota o sistema não localiza os registros (pois o campo de Filial não está preenchido) e gera o Help A460FLOCK. Após alteração do compartilhamento seria necessário droppar a SX5 e recriar com o modo de compartilhamento exclusivo, o que
também
  • no entanto não é recomendado pois é um procedimento incisivo para uma Tabela de Estrutura utilizada por todo o sistema.
    Em caso de possuir Faturamento Exclusivo com controle de Numeração (SX5) compartilhada para ambiente já populado em Produção a recomendação de contorno é utilizar o Ponto de entrada sugerido.

  • Cada Filial deverá possuir um MV_NUMITEN exclusivo;

  • O parâmetro MV_ESPECIE pode conter apenas séries já existentes na SX5 - Tabela 01.
Ajustes


Ajuste para sugerir a numeração correta:

  • Acesse a rotina MATA460A (Doc. De saída) e verifique o número da última Nota gerada (nota "000009" por exemplo)
  • Acesse o Configurador > Tabelas Genéricas
  • Localize a 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 com um número maior que a última nota gerada. Ex: X5_DESCRI "000010"
  • Assim o sistema irá recomeçar a numeração a partir da "000010".


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

Essa mensagem indica que a Numeração ficou "lockada" / reservada. Isso ocorre por que a trava de numeração não foi liberada.

Avalie pontualmente cada validação da FAQ FAT0002_Soluções possíveis para o Help A460FLOCK (MATA461)


2. Controle de numeração via Tabelas SXE / SXF (MV_TPNRNFS = 2)

As Tabelas SXE e SXF armazenam a próxima numeração disponível e a seguinte.

Até a versão 11 do Protheus essas Tabelas eram físicas no diretório System do ambiente, porém, a partir da Versão 12, o controle deve ser somente via License Server (antigo Hardlock). Veja mais informações em: Controle de Numeração de Tabelas (ALIAS) no Protheus)


Premissas:

  • Se SF2 e SD2 forem exclusivas (ou seja, cada Filial tem seu próprio controle de Notas de Saída); então, o controle de numeração também deve ser exclusivo, assim as Tabelas SXE e SXF também devem ser
exclusivam
  • exclusivas (ou seja, os registros com o campo de Filial preenchidos);

  • Cada Filial deverá possuir um MV_NUMITEN exclusivo;

  • O parâmetro MV_ESPECIE pode conter apenas séries já existentes na SX5 - Tabela 01.


Ajustes:

Na
  • Na tabela SXF (Numeros em uso/ Numeros liberados) - deixe o campo, para o ALIAS SF2, com o próximo número a ser gerado - Exemplo: 000010
  • Na tabela SXE (Proximos numeros) - deixe o campo, para o ALIAS SF2, com SXF+1 - Exemplo: 000011


Importante: Deixe apenas uma linha por Filial para o ALIAS SF2 tanto na SXF quanto na SXE.

Se houver outras linhas, reinicie o License Server e valide se foi ajustado de modo a possuir apenas uma linha por Filial para o ALIAS SF2 tanto na SXF quanto na SXE.
(Dúvidas ou dificuldades nesse procedimento, acionar o Suporte Framework

Protheus)

3. Controle de numeração com uso de SD9 (MV_TPNRNFS = 3)

Recomendado quando há grande volume de Faturamento para evitar lock de registro por concorrência; e para Organizações que possuem duas ou mais Filiais com mesmo CNPJ. Esta opção possui um controle individual de cada numeração, impedindo a reutilização e evitando lacunas.

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

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)

Premissas (Consulte Boletim Técnico para implementação: FAT_BT_Controle de Numeracao SD9 de NFS por CNPJ_TPGNRW.pdf)

Ao implementar este controle, registrar na rotina MATA012 a próxima numeração (e respectiva série) pela qual deve iniciar o faturamento.
Obs1: 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
Obs2: 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 passa a replicar 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
    Obs: Para esta opção ocorre também a atualização da Tabela AD0 de forma a indicar a Filial respectiva à numeração. Neste caso, avaliar se foi criada a tabela AD0 em sua SX2 conforme as características registradas no Boletim Técnico da funcionalidade.
    - 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).
  • Cada Filial deverá possuir um MV_NUMITEN exclusivo;
  • O parâmetro MV_ESPECIE pode conter apenas séries já existentes na SX5 - Tabela 01;
  • Para V11 , conforme Boletim Técnico, é necessário executar o compatibilizador UPDFAT39 para correta criação dos campos da SD9, índices e parâmetros.
  • Os CNPJs das Filiais devem necessariamente estar cadastrados corretamente no cadastro da empresa SM0 / Sigamat.
    OBS: Exclusivamente para NSU - Número Seqüencial Único em SC - Santa Catarina, verificar também o parâmetro MV_MUDANUM (Detalhes em: http://interno.totvs.com/mktfiles/tdiportais/helponlineprotheus/p12/portuguese/matr012_int.htm

    )

    Ajustes:

  • O ajuste de numeração, quando controlado pela SD9, é automático e não manual. Para tanto, é necessário validar todos os itens de premissa acima, considerados para este tratamento, para se certificar de que o ajuste realizado pelo próprio sistema será efetivo.
  • Realizar backup da SD9 (E AD0 caso populada).
  • Executar a rotina de Ajuste de Numeração da tabela SD9: MATA470 (verifique aqui orientações do Boletim).


    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

    Pode lhe interessar:FAT0046 Controle de Numeração de Tabelas (ALIAS) no Protheus