Configuração do server Integrador de Notas Fiscais Web (SrvMegaNfIntegrador)

Para que serve este servidor

O Integrador de Notas Fiscais Web é um programa que fica rodando em segundo plano, sozinho, sem ninguém precisar acompanhar. De tempo em tempo ele olha a fila de notas fiscais que foram enviadas para o Mega por sistemas externos (integrações, portais, outras aplicações) e transforma cada uma delas em uma nota fiscal oficial dentro do módulo de Faturamento.

Na prática: a nota chega na fila, o servidor pega, valida, gera a nota no Mega e marca a fila como concluída. Se der algum problema, ele marca a nota com erro e escreve o motivo, para que alguém possa corrigir e liberar novamente pela tela de “Integração de NF Web”.

Quando este servidor é usado no fluxo de emissão automática de notas de débito/crédito por juros, multa ou desconto (Reforma Tributária), a fila que ele consome é alimentada por outro servidor, que roda antes dele. Veja Configuração do server Financeiro para NF Web (SrvMegaFinancNfWeb) para configurar essa etapa anterior.

Os parâmetros deste documento controlam o ritmo e o volume desse trabalho: quantas notas ele processa ao mesmo tempo, de quanto em quanto tempo ele olha a fila, com qual usuário ele trabalha e se ele deve ignorar parte da fila.


Como este servidor de aplicação opera

O termo servidor refere-se ao servidor de aplicação do ERP, e não à máquina física ou virtual onde ele está instalado. Este servidor de aplicação é disponibilizado como um executável independente, compatível com ambientes Windows e Linux. Cada execução ativa desse executável constitui uma instância do servidor, e uma mesma máquina pode executar uma ou mais instâncias. O comportamento, os parâmetros de configuração e o arquivo MegaConfig.xml são idênticos nas duas plataformas.

Do ponto de vista de arquitetura, este servidor é um processo autônomo de segundo plano um daemon, na terminologia de sistemas distribuídos. Ele carrega seu próprio temporizador interno a partir do MegaConfig.xml e decide sozinho quando trabalhar: a cada ciclo consulta a fila, reserva o que vai processar e segue, sem orquestrador, sem cadastro de agenda e sem nenhuma tela que o acione.

O padrão de integração que ele implementa é o de consumidor por varredura (Polling Consumer) sobre uma fila mantida em tabela. Como podem existir várias threads dentro da mesma instância, e várias instâncias em máquinas distintas, todas competindo pela mesma fila, o modelo é o de consumidores concorrentes (Competing Consumers), e a exclusividade de cada registro é garantida por bloqueio de linha no Oracle, não por um controlador central. Isso o distingue dos outros modelos que existem no ERP, pois:

Na prática, essa independência traz duas consequências:


Onde configurar

Todos os parâmetros ficam em um único arquivo de configuração do Mega:

MegaConfig.xml

Ele fica na pasta de configuração da sua instalação. No ambiente padrão de versão, o caminho é:

V:\Versao\Config\MegaConfig.xml

Se você não souber onde está o seu, procure pelo arquivo MegaConfig.xml na pasta onde o Mega foi instalado. É o mesmo arquivo usado por outras configurações do sistema.


Como editar, passo a passo

  1. Faça uma cópia de segurança do arquivo antes de mexer. Copie o MegaConfig.xml para um lugar seguro e renomeie a cópia, por exemplo MegaConfig_backup_2026-09-04.xml. Se algo der errado, você volta a cópia.
  2. Abra o MegaConfig.xml com o Bloco de Notas (ou outro editor de texto simples). Não use Word.
  3. Localize a linha </DOCUMENT>, que fica no final do arquivo.
  4. Cole o bloco de configuração (mostrado mais abaixo) antes dessa linha.
  5. Salve o arquivo.
  6. Pare e inicie o servidor novamente.

O servidor lê a configuração apenas quando é iniciado. Mudanças feitas com ele rodando não têm nenhum efeito.

O arquivo já vem sem esta configuração na instalação padrão. Enquanto o bloco não for adicionado, o servidor funciona com os valores de fábrica descritos na coluna “Valor de fábrica” da tabela abaixo.


Os quatro parâmetros

ParâmetroPara que serveValor de fábricaValores permitidos
USUARIODefine em nome de qual usuário o servidor trabalha1Qualquer código de usuário válido, sempre maior que zero
THREADSQuantas notas ele processa ao mesmo tempo1De 0 a 6
INTERVALODe quanto em quanto tempo ele olha a fila60 segundosNúmero em segundos
FILTRORestringe quais notas da fila ele deve pegarvazio (pega tudo)Condição de consulta, ou vazio

USUARIO — em nome de quem o servidor trabalha

O servidor não é uma pessoa, mas todo lançamento no Mega precisa estar vinculado a um usuário. Este parâmetro diz qual usuário será registrado como responsável pelas notas que o servidor gerar.

O que preencher: o código de um usuário que exista e esteja ativo no Mega, e que tenha permissão para emitir notas fiscais. A recomendação é criar um usuário exclusivo para essa finalidade (por exemplo, “INTEGRACAO NF”), assim fica fácil identificar nos relatórios e no histórico o que foi feito automaticamente e o que foi feito por uma pessoa.

Este é o único parâmetro que impede o servidor de iniciar. Se você preencher com zero, com um valor negativo ou com um texto que não seja número, o servidor não sobe e registra no log a mensagem indicando que o usuário não está configurado. Nenhuma nota será processada até corrigir.


THREADS — quantas notas ao mesmo tempo

Pense em cada “thread” como um atendente. Com o valor 1, o servidor tem um atendente: ele pega uma nota, termina, e só então pega a próxima. Com o valor 4, ele tem quatro atendentes trabalhando em paralelo, e a fila anda quatro vezes mais rápido.

O que preencher:

ValorEfeito
0Pausa o processamento. O servidor continua ligado, mas não pega nenhuma nota. Útil para interromper temporariamente a integração sem desligar o servidor.
1Processamento sequencial, uma nota por vez. É o valor de fábrica e o mais conservador.
2 a 4Faixa recomendada para a maioria dos ambientes. Bom equilíbrio entre velocidade e consumo do banco de dados.
5 ou 6Volume alto. Use apenas se a fila estiver realmente acumulando e o servidor de banco tiver folga.

O máximo aceito é 6. Se você digitar 10, o servidor não avisa e não dá erro: ele simplesmente volta para 1 atendente. Portanto, confira o valor com atenção, porque um número acima do limite deixa a integração mais lenta em vez de mais rápida.

Como decidir: comece com 1 ou 2. Se as notas estiverem demorando para sair da fila, aumente de um em um e observe. Se o banco de dados começar a ficar pesado nos horários de pico, reduza.


INTERVALO — de quanto em quanto tempo olhar a fila

Define a pausa entre uma verificação da fila e a próxima. O valor é sempre em segundos.

O que preencher:

ValorComportamento
10 a 30Resposta rápida. Boa escolha quando as notas precisam sair quase na hora em que entram.
60Valor de fábrica. Verifica a fila uma vez por minuto. Atende bem a maioria dos casos.
300Cinco minutos. Adequado quando o volume é baixo e não há urgência.

Recomendação: não use valores muito baixos, como 1 ou 2 segundos. O servidor faz uma consulta no banco de dados a cada verificação, e verificações excessivas geram carga desnecessária sem ganho real. Abaixo de 5 segundos não traz benefício prático.

Não preencha com 0. Isso desliga a verificação e o servidor fica ligado sem nunca olhar a fila.


FILTRO — restringir quais notas processar

Por padrão este campo fica vazio, e o servidor pega todas as notas pendentes da fila. Isso é o correto para praticamente todos os ambientes.

O filtro existe para situações específicas, por exemplo:

Como preencher: o conteúdo é uma condição de consulta ao banco de dados. Ela deve ser escrita com a letra N antes do nome de cada campo. Exemplos:

N.ORG_IN_CODIGO = 1

Processa apenas as notas da organização de código 1.

N.ORG_IN_CODIGO = 1 AND N.NFW_DT_REGISTROINCLUIDO >= TRUNC(SYSDATE) - 7

Processa apenas as notas da organização 1 que entraram na fila nos últimos 7 dias.

Se a condição estiver escrita de forma incorreta, nenhuma nota será processada e o erro fica registrado no arquivo de log. A fila fica parada sem aviso na tela. Se você esquecer a letra N antes do nome do campo, o filtro não funciona. Este campo é uma configuração sensível — peça apoio da equipe técnica ou do suporte Mega antes de preenchê-lo. Em caso de dúvida, deixe vazio.


Quantidade de notas por verificação

Independente da configuração, o servidor pega no máximo 10 notas por verificação. Esse limite é fixo e não pode ser alterado pelo arquivo de configuração.

Isso significa que, para escoar uma fila grande, o que importa é a combinação dos dois parâmetros. Por exemplo, com INTERVALO de 30 segundos, o servidor faz 2 verificações por minuto, ou seja, até 20 notas por minuto. Se a fila estiver acumulando, reduzir o INTERVALO costuma ter mais efeito do que aumentar o THREADS.


Bloco pronto para copiar

Cole este bloco no MegaConfig.xml, antes da linha </DOCUMENT>. Depois ajuste os valores conforme a sua necessidade.

	<!-- Server de importação automática de NF a partir das tabelas VEN_*WEB (SrvMegaNfIntegrador) -->
	<SRVMEGAIMPNFWEB>
		<!-- Código do usuário do ERP que executa a integração. Obrigatório maior que zero -->
		<USUARIO>1</USUARIO>
		<!-- Quantidade de notas processadas ao mesmo tempo. De 0 a 6. Zero pausa o processamento -->
		<THREADS>3</THREADS>
		<!-- Intervalo entre verificações da fila, em segundos -->
		<INTERVALO>30</INTERVALO>
		<!-- Filtro adicional. Deixe vazio para processar toda a fila -->
		<FILTRO></FILTRO>
	</SRVMEGAIMPNFWEB>

Configurações sugeridas por cenário

Ambiente com volume baixo (até algumas dezenas de notas por dia)

		<THREADS>1</THREADS>
		<INTERVALO>60</INTERVALO>

Ambiente com volume médio, precisa de agilidade

		<THREADS>3</THREADS>
		<INTERVALO>30</INTERVALO>

Ambiente com volume alto, fila acumulando

		<THREADS>6</THREADS>
		<INTERVALO>15</INTERVALO>

Pausar a integração temporariamente, sem desligar o servidor

		<THREADS>0</THREADS>

Se algo não funcionar

SintomaO que verificar
O servidor não iniciaO USUARIO está preenchido com um código válido e maior que zero?
As notas ficam paradas na fila e nada aconteceO THREADS está em 0? O FILTRO está preenchido e pode estar excluindo as notas?
Alterei o arquivo e nada mudouO servidor foi parado e iniciado novamente depois de salvar? Sem reiniciar, a alteração não vale.
A fila anda, mas muito devagarReduza o INTERVALO e/ou aumente o THREADS. Confira se o THREADS não passou de 6.
Notas com status de erroConsulte a tela “Integração de NF Web”, aba de erros. A mensagem do problema fica registrada em cada nota. Após corrigir, use a ação Liberar para reprocessar.

Regras de ouro

  1. Sempre faça backup do MegaConfig.xml antes de alterar.
  2. Sempre reinicie o servidor depois de salvar. Sem isso, nada muda.
  3. Mude um parâmetro por vez e observe o resultado antes da próxima alteração.
  4. Em dúvida sobre o FILTRO, deixe vazio. É a opção segura.

Como iniciar o servidor automaticamente (AUTOSTART)

O bloco <AUTOSTART> do MegaConfig.xml é compartilhado entre os dois servidores. Ao configurá-lo, revise também as tags do Financeiro para NF Web — os detalhes de cada uma estão em Configuração do server Financeiro para NF Web (SrvMegaFinancNfWeb).

Como fazer

  1. Faça uma cópia de segurança do MegaConfig.xml.
  2. Na máquina servidora, abra o Prompt de Comando e digite hostname. Anote o nome.
  3. Abra o MegaConfig.xml com o Bloco de Notas e localize a seção <AUTOSTART>.
  4. Dentro dela, crie (ou complete) o bloco com o nome da máquina:
	<AUTOSTART>
		<NOME_DA_MAQUINA>
			<DEFAULT>N</DEFAULT>
			<SRVMEGANFINTEGRADOR>S</SRVMEGANFINTEGRADOR>
			<SRVMEGAFINANCNFWEB>S</SRVMEGAFINANCNFWEB>
		</NOME_DA_MAQUINA>
	</AUTOSTART>
  1. Salve o arquivo.
  2. Feche e abra novamente o MegaServerStart (ícone na área de notificação do Windows).

S = liga automaticamente. N = não liga.

Nome da tag de cada servidor

ServidorTag no AUTOSTART
Integrador de Notas Fiscais WebSRVMEGANFINTEGRADOR
Financeiro para NF WebSRVMEGAFINANCNFWEB

Cuidados

Cuidado com o nome da tag deste servidor. No AUTOSTART é SRVMEGANFINTEGRADOR, e não SRVMEGAIMPNFWEB (esse é só o nome da seção de parâmetros). Errando o nome, o servidor não sobe e nenhuma mensagem de erro aparece. Se você está configurando os dois servidores juntos, confira também a tag do Financeiro para NF Web em Configuração do server Financeiro para NF Web (SrvMegaFinancNfWeb).

Conferir se subiu

Gerenciador de Tarefas (Ctrl + Shift + Esc), aba “Detalhes”, procure por SrvMegaNfIntegrador.exe e SrvMegaFinancNfWeb.exe.

Este artigo ajudou você?