Versões comparadas

Chave

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

Conteúdo

Índice
excludeConteúdo

1. Visão Visão Geral

O processo de Gerar NFCom - disponível no Módulo "TOTVS Gestão de Estoque, Compras e Faturamento" - transforma os movimentos criados nesse módulo em documentos fiscais eletrônicos (xmlsarquivos em formato XML) que serão enviado para a transmitidas à SEFAZ do Contribuinte posteriormente, em outra etapa do fluxo da NFCom (para visualizar o fluxo, acesse Nota Fiscal de Comunicação Eletrônica (NFCom) | 3.2 Processos).


...

2. Fluxo do Processo

Abaixo é detalhado o fluxo do processo de Gerar NFCom, ao clicar em algumas etapas o processo será detalhado.

draw.io Diagram
bordertruefalse
diagramNameFluxo Gerar NFCom
simpleViewerfalse
width
linksauto
tbstylehidden
diagramDisplayName
lboxtrue
diagramWidth3611061
revision4

...

9

Column
width60%
Painel
borderColor#002233
borderWidth1
borderStyledashed
titleDetalhes



...

3. Configurações iniciais

Para acessar o menu Documentos Eletrônicos | Nota Fiscal de Comunicação Eletrônica (NFCom) e Gerar gerar a NFCom, é necessário realizar algumas configurações iniciais, conforme abaixo:

Deck of Cards
idConfig
Card
labelPermissões Usuários

Este modelo de documento possui uma permissão de acesso diferente dos demais documentos eletrônicos. Para dar permissão de acesso ao menu da NFCom a um usuário, siga os passos abaixo:

  • Acesse o perfil vinculado ao usuário
,
  • desejado do módulo TOTVS Gestão de Estoque, Compras e Faturamento
,
  • e edite o perfil
, vá
  • ;
  • até a aba Acesso a Menus, siga o caminho [04] Vendas | [04.02] Documentos Eletrônicos, selecione [04.02.01.07] Nota Fiscal de Comunicação Eletrônica (NFCom) ,  [04.02.01.07.08] Gerar NFCom e logo após, clique em Permitir Acesso.
Expandir
titleSegurança - Acesso - Perfis

Image Removed

Formulário com o caminho para permissão. 

Expandir
titleFormulário do Perfil

Image Removed

Image Added

Card
labelConfigurar Multiprocessamento

Este processo possui o conceito de multiprocessamento¹, ou seja, pode ser executado em vários pedaços para que o processamento de grandes volumes de dados seja mais rápido.
Suponhamos que a geração da NFCom será feita para 15.000 movimentos. O multiprocessamento irá dividir esses movimentos em vários processos separados e executar cada um desses processos com quantidades menores de notas. Isso resulta em um ganho de tempo e performance tanto na geração das notas quanto na utilização do sistema como um todo.

draw.io Diagram
borderfalse
diagramNameMultiprocessamento
simpleViewerfalse
width
linksauto
tbstylehidden
diagramDisplayName
lboxtrue
diagramWidth571
revision2

¹ Este conceito é referido tecnicamente na Linha RM como fracionamento de jobs.

Para usar o multiprocessamento na geração da NFCom, é necessário cadastrá-lo em Ambiente | Segurança de Jobs Fracionáveis. No cadastro, informe o perfil do usuário correspondente ao módulo, a classe de job como "DocNFComGerarData", as frações máximas e mínimas de acordo com a quantidade de vezes que desejar dividir o multiprocessamento e marque se ele é agendável e/ou

Card
labelConfigurar Job Fracionável

Para usar o fracionamento na geração da NFCom é necessário criar um fracionamento de job informando a classe "DocNFComGerarData" as frações máximas e mínimas, marcar se é agendável e se está ativo.

Expandir
titleAmbiente - Processos - Segurança de Jobs Fracionáveis

Formulário com exemplificando os dados do fracionamento:

Expandir
titleFormulário do Fracionamento de Job

...


...

4. Execução do Processo

O processo Gerar NFCom pode ser Executado conforme abaixoComo exibido no tópico 1. Visão Geral, há três caminhos para execução do processo de Gerar NFCom. Todas seguem as mesmas regras para a geração do XML da NFCom, diferindo apenas na maneira como o usuário pode planejar e executar a emissão das notas. Abaixo, seguem as diferenças entre cada um dos processos, incluindo detalhes sobre seleção de registros, multiprocessamento (fracionamento de jobs) e agendamento para execução automática:

Deck of Cards
idExecução
Image Removed

Card
labelGerar NFCom (principal)

A execução deste processo ocorre através do menu Documentos Eletrônicos | Nota Fiscal de Comunicação Eletrônica (NFCom) | Processos | Gerar NFCom.

Expandir
titleGerar NFCom

Image Added


O processo identifica automaticamente 1- O processo identificar quais movimentos de NFCom ainda não geraram o Xml.

2- O processo vai gerar a NFCom e persistir na base de dados com o status Não Transmitido.

3- Este processo é passível de fracionamento de job

4- Quando parametrizado em N camadas o processo identifica instâncias dele mesmo para evitar concorrência.

XML, não sendo necessário selecionar nenhum registro na tela. Esta seleção é realizada considerando a parametrização do tipo de Movimento (vide item Nota Fiscal de Comunicação Eletrônica (NFCom) | 2.Parâmetros). Mesmo que algum registro em específico seja selecionado, a geração não irá se aplicar apenas para ele, e sim para todos os movimentos no sistema que estejam parametrizados para geração da NFCom e ainda não tenham suas notas geradas.

Este processo principal não reprocessa notas já geradas ou com erro/inconsistência. Caso seja necessário reprocessar notas específicas, veja "Gerar NFCom (à partir do movimento)" ou volte acesse  Nota Fiscal de Comunicação Eletrônica (NFCom) | 3.2 Processos e verifique a etapa responsável pelo reprocessamento da NFCom.

As notas serão geradas com o status Não Transmitido, caso não haja erros na validação do schema, ou "Inconsistente", caso ocorra alguma falha na validação. 

Expandir
titleProcessos - Gerar NFCom
Card
labelGerar NFCom (a partir do Movimento)

A execução deste processo é através do menu Faturamento | Movimentação | Processos ocorre diretamente no movimento. Para isto, acesse o movimento parametrizado para geração de NFCom e vá em Processos | Gerar Xml NFCom.

1- Pode ser selecionado o(s) Movimento(s) que serão gerados.

2- Este processo será semelhante a Gerar NFCom que está no menu Nota Fiscal de Comunicação Eletrônica (NFCom) que vai persistir na base de dados a NFCom com status "Não Transmitido".

Expandir
titleGerar Xml NFCom

Exemplo acessando o processo através de um movimento de faturamento:

Image Added

Esta tela permite a seleção específica dos movimentos que irão gerar a NFCom na tela. Caso nenhum movimento seja selecionado, o processo será executado para todos os movimentos presentes na tela, semelhante à maioria dos processos da Linha RM.
Importante ressaltar que este processo possui limite de 500 registros. Ainda que a configuração de quantidade máxima de registros exibidos na tela seja alterada, não será possível executar o processo para mais de 500 registros. Para volumes de dados maiores, utilize o processo "Gerar NFCom (principal)" descrito na primeira aba deste tópico.

Este processo é semelhante ao de  "Gerar NFCom" que está no menu de "3- Será criado uma NFCom na tela de Nota Fiscal de Comunicação Eletrônica (NFCom)e se o movimento já estiver registrado, o mesmo será atualizado com o status Não Transmitido.4- Ao regerar um movimento que já foi registrado, o mesmo ocorrerá para as NFCom's com ". Ele irá gerar as notas com  o status Não Transmitido, Inconsistente ou Rejeitado.

5- Este processo é passível de fracionamento de job

6- Quando parametrizado em N camadas o processo identifica instâncias dele mesmo para evitar concorrência.

Expandir
titleProcessos - Gerar Xml NFCom

Image Removed

caso não haja erros na validação do schema, ou "Inconsistente", caso ocorra alguma falha na validação. Ele também realiza o reprocessamento de notas, atualizando tanto o conteúdo da nota (xml) quanto seu novo status ao reprocessar.

Através dos Parâmetros do Tipo de Movimento | Etapa XX - Fiscal - Nota Fiscal de Comunicação Eletrônica

Configurando o parâmetro NFCom como Envia Automaticamente, a nota será gerada na inclusão do movimento.

Card
labelGerar NFCom (automático por agendamento de job)

Execução desse processo:

1- Esta opção trata uma automatização da opção Enviar (principal).

2- A execução deste processo ocorre através do menu Para acessar o agendamento da NFCom, vá em Documentos Eletrônicos | Nota Fiscal de Comunicação Eletrônica (NFCom) | Processos | Gerar Agendar Geração NFCom

3- Na tela de execução do processo, deixe o campo "Data Final" em branco e Defina a recorrência de execução do Job de acordo com a necessidade operacional (diária, semanal, etc.).

Ao configurar esta recorrência da geração da NFCom, a mesma será de forma contínua e sem necessidade de intervenção manual, conforme ilustrado abaixo:

Expandir
titleProcesso - Gerar NFCom (Agendamento de Job)

Image Removed

Card
labelGerar NFCom (ao salvar Movimento)
Expandir
titleParâmetros da Nota Fiscal de Comunicação Eletrônica

4. Layout do xml Gerado

Esse processo irá gerar o xml da NFCom conforme estrutura abaixo, ao clicar em cada ponto da estrutura pode ser verificado os detalhes e regras de geração de cada campo.

...

Expandir
titleAgendar geração NFCom

Image Added

Este processo é equivalente ao "Gerar NFCom (principal)", com a diferença de que permite o agendamento dos jobs responsáveis pela execução. Dessa forma, é possível programar múltiplas execuções futuras de maneira automática, sem a necessidade de intervenção do usuário. O agendamento da NFCom estará disponível apenas se o ambiente utilizado for em N camadas e se o cadastro do fracionamento estiver com a opção "Agendável" marcada. Caso contrário, será exibida apenas uma tela de conclusão de processos.

Assim como o processo principal, o agendamento considera todos os movimentos previamente parametrizados e que ainda não tenham notas geradas.  Além disso, ele não reprocessa notas com erro ou inconsistentes e não permite a seleção pontual dos movimentos.

Informações
titleObservação

Diferente dos modelos de NF-e e NFS-e, o processo de Gerar NFCom não faz nenhuma comunicação com a SEFAZ. Ele apenas gera o XML da nota e valida seu schema, sendo necessário realizar a transmissão das notas posteriormente.


...

5. Multiprocessamento

O multiprocessamento é um recurso desenvolvido para proporcionar mais agilidade, melhor performance e maior automação no processo de geração da NFCom.

Como essa funcionalidade é uma novidade em relação à maioria dos outros documentos eletrônicos da Linha RM, preparamos um pequeno FAQ para esclarecer possíveis dúvidas:

  • O que acontece se eu não fizer o cadastro do multiprocessamento?
    • A geração da NFCom será realizada em um único processo. Isso pode ser desvantajoso, pois resultará em um tempo de execução maior, especialmente para grandes volumes de notas e poderá tornar a utilização do sistema mais lenta. Além disso, cada processo tem um limite de execução de 21.000 notas, e um volume maior do que esse resultará em erro.
  • Quando a divisão dos processos ocorre na geração da NFCom?
    • Se o multiprocessamento for cadastrado conforme explicado no tópico 3. Configurações Iniciais | Configurar Multiprocessamento, a divisão dos processos acontecerá automaticamente ao iniciar a geração da NFCom. Não é necessário definir nenhum parâmetro adicional, pois o sistema realiza essa divisão de forma automática. O acompanhamento dos processos gerados pode ser feito em Ambiente | Gerenciamento de Jobs.
  • Quantos registros por processo o multiprocessamento suporta?
    • São 21.000 registros/notas por processo. Caso o multiprocessamento esteja parametrizado para fazer 50 divisões, por exemplo, é possível fazer a geração de volumes de mais de 1.000.000 de notas.
  • O que acontece se a quantidade de divisões que informei no cadastro do multiprocessamento não for suficiente para gerar minhas notas?
    • O sistema recalcula automaticamente a quantidade necessária de divisões com base no volume total de notas. Esse cálculo segue a fórmula:

      Total de notas / limite de notas por processo (21.000) → arredondado para cima.

      Por exemplo, se houver 50.000 notas e o multiprocessamento estiver configurado para apenas 2 divisões, o cálculo será:

      50.000 / 21.000 ≈ 2,4 → arredondando para cima → 3 divisões.

      O cadastro original do multiprocessamento não será alterado, pois essa nova quantidade de divisões será ajustada internamente pelo sistema sempre que necessário.


...

6. Concorrência entre processos

Em ambientes N camadas, pode ocorrer a situação em que dois ou mais usuários executam o mesmo processo simultaneamente, o que resultaria na criação de processos idênticos.

No caso da geração da NFCom, se isso acontecer, ambos os processos fariam a mesma seleção de notas, gerando duplicidades, pois as mesmas notas seriam processadas em paralelo. Para evitar esse problema, o sistema gerencia a concorrência internamente por meio da identificação dos processos gerados.

Sempre que for detectado execuções simultâneas do mesmo processo (classe do processo) para a mesma coligada e classe de parâmetros, a execução será bloqueada. Nesses casos, o sistema exibirá a seguinte mensagem:

"Já existe uma execução desse processo em andamento".

Image Added

  • Mas então o multiprocessamento não vai dar concorrência?
    • Não, pois a cada processo que ele cria, recebe notas diferentes e não causa duplicidade.
  • E no caso de nomes diferentes do processo? Na imagem acima, há processos de nome "Gerar NFCom" e "Agendar geração NFCom"
    • Isso não é um problema, pois todas as três formas de geração da NFCom utilizam a mesma classe do processo (DocNFComGerarData), que é o que importa para localizar processos concorrentes.

...