Conteúdo

1. 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 (arquivos em formato XML) que serão 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.




3. Configurações iniciais

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

    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.

    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.

    ¹ 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 se está ativo.

    Formulário exemplificando os dados do fracionamento:



    4. Execução do Processo

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

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


      O processo identifica automaticamente quais movimentos de NFCom ainda não geraram o 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. 

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

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

      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 "Nota Fiscal de Comunicação Eletrônica (NFCom)". Ele irá gerar as notas 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. Ele também realiza o reprocessamento de notas, atualizando tanto o conteúdo da nota (xml) quanto seu novo status ao reprocessar.

      Para acessar o agendamento da NFCom, vá em Documentos Eletrônicos | Nota Fiscal de Comunicação Eletrônica (NFCom) | Processos | Agendar Geração NFCom

      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.

      Observaçã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".

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