Exclusividade de Séries
Independente se o controle de sequência automática da numeração é via SX5 , LS ou SD9, o controle de Séries do Protheus sempre será via SX5. Se a SX5 e seus registros forem compartilhados, então as séries estarão disponíveis para todas as Filiais (Obs: no caso de controlar a sequencia de numeração também via SX5, a numeração será igualmente compartilhada - haverá uma mesma sequência de numeração, à qual será utilizada por todas as Filiais). Se o Faturamento é exclusivo (ou seja, registros na SF2 possuam o campo de Filial preenchido) então, é natural que a organização opte por séries exclusivas. Ou seja, cada Filial possui sua série e, consequentemente, uma sequência de numeração individual. Para trabalhar com séries exclusivas é necessário atentar-se às definições de compartilhamento da SX5 - Tabela 01 de séries do Protheus conforme detalhes a seguir.
Premissas para exclusividade de Série por Filial: - Compartilhamento da Tabela 01 da SX5:
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 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.
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 (inclusive para registro de novas séries visto que a estrutura da SX5 Tabela 00 não está adaptada para Filial); 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 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 a seguir.
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 com o Ponto)
- Cada Filial deverá possuir um MV_NUMITEN exclusivo.
|
Questões Gerais
- 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
- 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)
- O parâmetro MV_ESPECIE pode conter apenas séries já existentes na SX5 - Tabela 01
|
- MV_TPNRNFS = 1 : Controle via Tabela Genérica SX5 - Tabela 01
Essa opção é a mais antiga do Protheus. Ela se baseia unicamente na 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 via License Server (antigo SXE / SXF)
Esta opção armazena armazena a próxima numeração disponível e a seguinte. Até a versão 11 do Protheus era armazenado nas Tabelas físicas SXE e SXF 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 sobre o License em: Controle de Numeração de Tabelas (ALIAS) no Protheus).
- MV_TPNRNFS = 3 : Controle 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 saltos/lacunas.
Veja nas abas abaixo o detalhamento de cada opção e procedimentos de ajuste.
Deck of Cards |
---|
effectDuration | 0.5 |
---|
id | 1 |
---|
effectType | fade |
---|
| Card |
---|
default | true |
---|
effectDuration | 0.5 |
---|
id | TPNRNFS |
---|
label | MV_TPNRNFS = 1 - SX5 |
---|
| Controle de numeração via Tabela Genérica SX5 - Tabela 01 de Séries (MV_TPNRNFS = 1) Essa opção é a mais antiga do Protheus. Ela se baseia unicamente na SX5 - Tabela de séries do Protheus para incrementar a numeração. O controle de numeração via SX5 realiza lock (trava de segurança) na Tabela SX5 de séries e no parâmetro MV_NUMITEN para reservar a numeração. Caso possua grande volume de Faturamento, recomenda-se a utilização da opção 3 - SD9 para evitar lock de registro por concorrência.
Premissas para correto funcionamento do controle de numeração: - Ao utilizar a SX5 para o controle de numeração, se houver necessidade de utilizar numeração exclusiva por Filial (cada Filial possui sua sequencia individual) então é necessário trabalhar também com séries exclusivas. Adeque o ambiente de acordo com o item "Exclusividade de Séries" abordado acima.
Ajuste para sugerir a numeração correta: - Verifique o último/maior número de Nota gravada na SF2 (nota "000009" por exemplo) a partir da qual deseja dar sequência. Atente-se à numeração de acordo com a Filial F2_FILIAL
- 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".
|
Card |
---|
default | true |
---|
effectDuration | 0.5 |
---|
id | 2 |
---|
label | MV_TPNRNFS = 2 - LS |
---|
| Controle de numeração via Tabelas SXE / SXF (MV_TPNRNFS = 2) Esta opção armazena a próxima numeração disponível, e a seguinte, através do mecanismo do LS - License Server. Até a versão 11 do Protheus era armazenado nas Tabelas físicas SXE e SXF 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 sobre o License em: Controle de Numeração de Tabelas (ALIAS) no Protheus.
Premissas para correto funcionamento do controle de numeração: - Possuir LS - License Server instalado e atualizado para substituição das antigas SXE/SXF
- Se houver necessidade de Séries exclusivas, adeque o ambiente de acordo com o item "Exclusividade de Séries" abordado acima.
(Se não houver necessidade de Séries exclusivas, o sistema irá exibir todas as séries para todas as Filiais, porém, sugerir a numeração atualizada para a Filial que está acionando a Preparação da Nota.)
Ajuste para sugerir a sequência numérica correta: - Verifique o último/maior número de Nota gravada na SF2 (nota "000009" por exemplo) a partir da qual deseja dar sequência. Atente-se à numeração de acordo com a Filial F2_FILIAL
- Acesse a rotina APCFG110 - Manutenção SXE/SXF (Caso não localize a rotina em seu Menu, verifique como inserir em Controle de Numeração de Tabelas (ALIAS) no Protheus)
- Localize o registro que precisa ser ajustado.
Note que são exibidos registros para NFF na coluna ALIAS para o caso de Documento de saída. O campo Chave armazena Série / Filial / Tabela (SF2)
![](/download/attachments/329024579/LS%20NFF%20por%20Filial.jpg?version=1&modificationDate=1537990114083&api=v2)
- Na seção inferior (antiga SXF) - Numeros em uso/ Numeros liberados: Exibe a última numeração sugerida
- Na seção superior (antiga SXE) - Proximos numeros: Exibe a numeração seguinte (última sugerida + 1)
- É importante esclarecer que no processo de Preparação da Nota, diferente de rotinas de cadastro (como por exemplo SA1 - Cadastro de Clientes), após finalizar a gravação, o sistema não abre automaticamente o próximo formulário sugerindo a numeração.
Deste modo, geralmente não há registro na seção inferior de Próximos numeros, pois o próximo número acabou de ser gravado, e o usuário ainda não acionou novamente a preparação da Nota para atualizar a sugestão de numeração na rotina APCFG110.
- Assim sendo, se não houver registro na seção inferior, apenas registre na seção superior (Proximos numeros) o próximo número que deseja utilizar ("000010" neste exemplo);
- Mas, se o usuário tiver acionado novamente a preparação da Nota, chegando até a sugestão da numeração (porém não confirmou a gravação da Nota), então, neste momento em que houve a sugestão da numeração ocorre uma atualização na APCFG110, gravando na seção inferior este último número sugerido, e na seção superior o número seguinte (último sugerido + 1).
- Assim sendo, se houver registro na seção inferior, (Numeros em uso/ Numeros liberados) registre nele a correta sugestão atual a qual deseja utilizar (número "000010" neste exemplo); e registre na seção superior (Proximos numeros) a numeração seguinte ("000011" neste exemplo)
OBSERVAÇÃ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 NFF por Série/Filial. 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). |
Card |
---|
default | true |
---|
effectDuration | 0.5 |
---|
id | 3 |
---|
label | MV_TPNRNFS = 3 - SD9 |
---|
| 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 saltos/ lacunas.
O controle de numeração por SD9 foi desenvolvido baseado no modelo de Talão de Notas. São criados na SD9 um Lote de 5.000 numerações (ou "formulários" teoricamente) para serem utilizados/consumidos 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. Premissas para correto funcionamento do controle de numeração:
(Consulte Boletim Técnico para implementação: FAT_BT_Controle de Numeracao SD9 de NFS por CNPJ_TPGNRW.pdf)
- Se houver necessidade de Séries exclusivas, adeque o ambiente de acordo com o item "Exclusividade de Séries" abordado acima (Se não houver necessidade de Séries exclusivas, o sistema irá exibir todas as séries para todas as Filiais).
- Se duas ou mais Filiais forem faturar utilizando o mesmo número de série, também recomendamos configurar a Exclusividade de Séries e criar um registro da série para cada Filial.
Diferente do controle via LS, o sistema não irá sugerir a numeração atualizada para a Filial que está acionando a Preparação da Nota. Apesar de gravar corretamente a numeração da Nota e a SD9 de acordo com a Filial, irá sugerir sempre a numeração mais alta entre as duas Filiais, pois é o número registrado na SX5. Isso ocorre pois a SD9 não invalida a SX5. Se trata de um controle extra de modo a evitar o lock na SX5. Assim, para evitar dúvida dos usuários o recomendado é utilizar o conceito de exclusividade de série.
- Ao implementar este controle, registrar na rotina MATA012 a próxima numeração (e respectiva série) pela qual deve iniciar o faturamento.
- 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
- Não é permitido inserir numeração/série já gravada na SF2
- É criado um registro na SD9 com esta numeração/serie, à qual será utilizada/consumida quando ocorrer o primeiro faturamento.
- Quando ocorrer o segundo Faturamento o sistema não localizará numeração disponível para consumir e então é automaticamente gerado um lote de 5000 registros de numeração para a série em questão, as quais ficarão disponíveis para serem consumidas (isto ocorrerá sempre que terminarem as numerações disponíveis).
![](/download/thumbnails/329024579/image2018-9-28_9-20-32.png?version=1&modificationDate=1538137232147&api=v2)
- 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 (mas grava corretamente a numeração indicada na MATA012).
- Daí em diante, a SD9 passa a replicar o conteúdo para a SX5 de forma a sugerir a numeração alinhado à sequencia.
- Parâmetro MV_FATGCGC utilizado apenas quando possui duas ou mais filiais com mesmo CNPJ:
- Utilizar MV_FATGCGC = .F. para sugerir a numeração exclusiva por Filial (D9_FILIAL), e não por CNPJ. Ou seja, cada Filial possui sua própria sequencial individual, podendo cada qual ter a mesma numeração (e neste caso repetir a numeração cada qual em sua sequencia e Filial).
- Utilizar MV_FATGCGC = .T. para sugerir a próxima numeração pelo CNPJ. Ou seja: um mesmo sequencial utilizado por todas a Filiais
Para esta opção ocorre o preenchimento dos campos D9_CNPJ e D9_FILORI (Obs: Não ocorre mais atualização da Tabela AD0 à qual foi descontinuada em ambiente atualizado 1539736 DSERFAT-3169 DT Controle das numerações das notas fiscais de saída pela Tabela SD9)
OBS: Em caso de alterar o conteúdo deste parâmetro após já ter sido criado o Lote de numerações, é necessário executar a rotina de Ajuste de Numeração da tabela SD9: MATA470 mencionada abaixo para exclusão das numerações que ficarão em desuso. A sequência dará continuidade a partir da numeração mais alta gravada para a série.
- Os CNPJs das Filiais devem necessariamente estar cadastrados corretamente no cadastro da empresa SM0 / Sigamat;
- Para V11 , conforme Boletim Técnico, é necessário executar o compatibilizador UPDFAT39 para correta criação dos campos da SD9, índices e parâmetros;
- 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)
Ajuste para sugerir a numeração correta: - Realizar backup da SD9
- Executar a rotina de Ajuste de Numeração da tabela SD9: MATA470 (verifique Verifique aqui as orientações do Boletim).
IMPORTANTE: O ajuste de numeração, quando controlado pela SD9, é automático e não manual. Portanto, é necessário validar todos os itens de premissa abordados acima, considerados para este tratamento, para se certificar de que o ajuste realizado pelo próprio sistema será efetivo.
Observações:
- Lacunas na SD9 podem ocorrer se habilitar o parâmetro MV_MUDANUM e indicar uma numeração fora da sequência (para uso correto da SD9 este deve estar habitualmente desabilitado); ou, se criar/ocupar manualmente uma numeração através da MATA012
- Quando executada a rotina de Ajuste de Numeração MATA470 corre a exclusão (delete) dos registros na SD9 de numerações não ocupadas.
- No primeiro faturamento ocorrerá a geração de um novo lote na SD9 partindo da numeração mais alta já utilizada/consumida na SD9
Se não existir ainda nenhum registro na SD9 deve ser inserida uma numeração na MATA012 para a série em questão, a partir da qual será dada sequência; Se desejar partir de uma numeração maior, deve ser inserida uma numeração na MATA012 para a série em questão, e consumida/utilizada esta numeração através da opção alterar da MATA012, preenchendo data e hora de uso. Assim, no primeiro faturamento ocorrerá a geração do lote na SD9 partindo dessa numeração que é a mais alta já utilizada/consumida na SD9
- Durante a captação de um número na SD9 para gerar a Nota
Se for identificado que existem lacunas na SD9 (numeração criada não usada), o sistema passa a consumir esses números de forma a preencher a lacuna (Necessário utilizar MV_MUDANUM desabilitado). Se for identificado que já existe Documento com esse número gravado na SF2, o sistema preenche na SD9 que esse número já está Ocupado e tenta capturar o número seguinte.
- Ao gerar uma Nota a numeração só é registrada como usada na SD9 se no momento do Faturamento estiver habilitado MV_TPNRNFS = 3. Do contrário, o número é registrado na SF2 mas não é consumido na SD9.
|
|
|