Skip to Content
SAP Electronic Invoicing for Brazil (SAP Nota Fiscal Eletronica)

Importância da Configuração de Lote de NF-e - SAP NFE 10.0

Tags:

URL: https://<host>:<port>/sap/bc/webdynpro/xnfe/master_batch?sap-client=<client>&sap-language=EN

Inicio este documento afirmando que existem exceções à regra, mas em geral a melhor configuração padrão para um cenário produtivo é a abaixo:

Já um ambiente de desenvolvimento / homologação pode ter a configuração padrão abaixo (muita diferença não? Não?) bem continue lendo para entender os por quês.

Tendo começado pelo fim, segue a explicação de cada parâmetro e seu impacto na emissão de NF-e, e um pouco da história do SAP GRC NFE 1.0 até agora o SAP NFE 10.0.

     1) Por que apenas uma linha sem nenhum parâmetro?

O SAP NFE irá usar esta configuração para criação de todos os lotes independente de região, sendo que ele automaticamente isola notas de empresa, região, ambiente e SCAN de outras emissões diferentes.

     2) Parâmetros: De todos os disponíveis na seleção a Região (CUF) é  o mais relevante.

     3) Criação de um lote (BATCH): As NF-es vão sendo recebidas no SAP NFE e assinadas, após assinada começa a contar o tempo de espera. Um lote é fechado quando qualquer uma dos 3 limites de tempo, tamanho ou quantidade é atingido.

Por exemplo, na configuração sugerida para PRD, o lote é criado quando tiver uma NF-e assinada a 30 segundos OU o tamanho somado de NF-es assinadas ultrapassar 500.000 bytes OU a quantidade de NF-es assinadas atingir 50.

Triggers de criação do lote:

Tempo:            Max. Time(Sec) = Limite de tempo de espera da NF-e mais velha

Tamanho:         Max. Size (B) = Tamanho máximo permitido em um lote

Quantidade:      Max. NF-es = Número máximo de NF-es por lote

Ao ser disparada esta criação o sistema irá pegar TODAS as NF-es, respeitando o isolamento, e tentará separar em lotes respeitando os limites de tamanho e quantidade, ou seja, uma NF-e que acabou de ser assinada por esperar 0 segundos se pelo menos 1 já estava esperando a 30 segundos.

Recomendação: Deixe o tamanho e quantidade no máximo e modifique apenas o parâmetro de tempo.

Dica: Mesmo para clientes de pouco volume, evite ser seduzido pela configuração de quantidade = 1 NF-e. Invariavelmente alguma manutenção interna ou da Sefaz pode deixar um backlog de várias notas. Se for por tempo 50 NF-es viram 1 lote, em se usando quantidade=1, serão 50 notas... vai ter que esperar a fila do PI e da Sefaz.

     4) Isolamento forçado por parametrização incorreta: Veja a foto abaixo, mesmo tendo todos os parâmetros exatamente iguais o SAP NFE irá isolar as NF-es do CNPJ 12345678000134 e 12345678000411 mesmo que sejam da mesma região.

Exemplo: Imaginando apenas 3 NF-es assinadas aguardando um lote (1 do primeiro CNPJ, outra do segundo e uma terceira de outro CNPJ mas mesma região), então o tempo de 30 segundos é que irá disparar a criação de lote. Neste momento o SAP NFE irá criar um lote para cada NF-e pela força da configuração.

Ponto ruim: Forçar a criação de lote por Sefaz consome bastante recurso a mais quando se trata da mesma região de envio/destino. O tempo/esforço para enviar e receber autorização de um lote com 1 NF-e é praticamente o mesmo que um lote com 50 NF-es.

Histórico: Nas primeiras versões do SAP GRC NFE 1.0 acontecia problemas relacionados a falha de schema rejeitando o lote como um todo, e esta era a forma usada para separar a responsabilidade das filiais. Também as secretarias falhavam muito com lotes maiores. A realidade atual é que o SAP NFE 10.0 faz muito bem o trabalho de validação quase não existindo falha de schema, e as secretarias também evoluíram muito.

Recomendação: Mate estas configurações antigas e não use o parâmetro CNPJ em nenhum caso.

     5) Tempo de Re-Consulta (BATSR): A transmissão do lote à secretaria acontece em duas mensagens síncronas. A primeira envia os XML’s de NF-es e pega um recibo, a segunda envia o recibo e pega o resultado do processamento.

Na entrega além do recibo, a secretaria envia também o tempo médio de processamento de lotes (TMED), que costuma variar entre 0 e 2 segundos.

Para fazer a consulta do recibo pela primeira vez o SAP NFE usa o menor valor entre o TMED respondido pela Sefaz e o Wait Time (Sec) da configuração de lote. Desta forma o Wait Time raramente é usado nesta primeira consulta.

Histórico: Nem sempre TMED foi utilizado, então sugestões antigas tinham um tempo menor para dar equilíbrio à primeira consulta com as demais.

                Estes valores de Re-Consulta só são utilizados caso a Sefaz responda com status 105 (Lote em Processamento), algo com volte mais tarde. Sendo assim o SAP NFE irá aguardar o tempo definido em Wait Time (Sec) para fazer nova consulta do resultado do lote. E irá tentar pelo número máximo de tentativas.

                É raro uma Secretaria em bom funcionamento responder com o status 105, e é comum quando responde com o status 105 o sistema de a secretaria estar enfrentando uma crise. Sendo assim, vale a dica: Evite configurar seu sistema para estressar o sistema da secretaria é bem provável que seu lote atinga o número máximo rapidamente sem receber a resposta. Neste caso só por ação manual o lote será re-consultado.

Exemplos:

120 segundos por 5 tentativas dá uma janela de espera para Sefaz 10 min.

10 segundos por 10 tentativas dá uma janela de espera para secretaria de 1 min e 40 seg.

Observação: Caso sua emissão de notas seja feita em mais de uma secretaria, uma configuração estressante aqui pode gerar muitas entradas de fila PI impactando faturamento das outras filiais de regiões em que não estão com problema.

     6) Configurações de lote temporárias: Como a recomendação foi dada já no início de manter apenas 1 linha padrão, agora segue alguns exemplos do dia-a-dia do time de suporte NF-e nas empresas.

SÃO TEMPORÁRIAS: Eliminar a entrada após estabilização da Sefaz.

Caso 1: Uma secretaria começa a preender as comunicações por minutos até timeout causando fila no WF síncrono de envio BATCH / BATSR (na verdade qualquer interface).

Ação imediata: Identificada a Sefaz problemática crie uma linha para ela com um tempo. Já que a Sefaz está com problema ao menos evito que ela infecte meus outros estados.

Caso 2: Uma secretaria com dificuldades no link de internet está com dificuldades de receber lotes grandes.

Ação Imediata: Incluir uma configuração para região restringindo o tamanho conforme sua investigação identifique um tamanho ideal para o momento.

     7) Analisando criação de lotes: A fonte importante a investigar é a tabela header do lote /xnfe/batsta.

Filtrando por região, ordene pela data de criação e verifique:

- intervalo entre a criação de cada lote (CREATETMPL)

- quantidade de NF-es por lote (QUANTNFE)

- tamanho do lote (BATCHSIZE)

                No exemplo acima a configuração de lote setada para restringir 1 NF-e por lote desperdiçava idas e vindas à secretaria (recurso + tempo). As NF-es dos quadros vermelhos foram geradas muito próximas umas das outras poderiam ter seguido à secretaria em um mesmo lote sem perda de tempo.

Observação: O que não está visível na imagem é que a grande quantidade de lotes gerados provocava muitas entradas nas filas e um resultado inesperado de demora na autorização, contrário ao desejo da configuração requerente de chegou nota, cria lote.

                Também no header do lote (/xnfe/basta) pode-se ler as informações de tempo de re-consulta (WAIT), número máximo de consultas (MAXRETRIES) e número de consultas realizadas (RETRIES).

Histórico: Este exemplo foi retidado do SAP GRC NFE 1.0, onde o assinador era PI + Java, o que dava um delay natural. Agora com assinatura em ABAP a quantidade de NF-es disponíveis num mesmo segundo é bem maior. A configuração do lote SOMENTE por tempo de espera ficou ainda melhor.

Para terminar lembre-se que a configuração de lote é temporária e deve ser usada pelo time de monitoramento de NF-e como uma ferramenta para adequar ao momento das secretarias, se está ruim lá não precisa ficar aqui.

Grande abraço.

Segue daí