Sincronização automática de cadastros INPERA em modo monitor, com execução da importação em paralelo à interface NT 0575/2026

Resumo da Nota Técnica

Na versão anterior, a sincronização de cadastros da plataforma INPERA para o FACILITE dependia de o usuário acionar manualmente o botão de sincronização nos aplicativos Balcão, Comanda ou Orçamento, ou de executar o utilitário de forma manual. Além disso, enquanto a importação estava em andamento, a importação era executada dentro da própria interface do utilitário, o que deixava o aplicativo sem resposta: não era possível interromper o ciclo nem encerrar o programa, e o Windows também deixava de responder a outras ações até o término da importação.

A partir desta versão, o utilitário `prjImportacaoInpera.exe` passa a operar em modo monitor, com ícone na área de notificação do Windows (ao lado do relógio) e execução automática por intervalo de tempo configurável, e a importação passa a ser executada em paralelo à interface. Com isso, o menu do ícone responde imediatamente, as opções de interromper o ciclo e de encerrar o aplicativo funcionam durante a importação, e o computador permanece disponível para outras atividades enquanto a sincronização é processada.

Detalhes da Nota Tecnica

A funcionalidade foi implementada no utilitário `prjImportacaoInpera.exe` (`[1696] Sincronização de Cadastros INPERA - FACILITE`), no banco de dados do FACILITE Comércio.

### Modos de execução

O utilitário passa a reconhecer três formas de execução:

1. Modo monitor: acionado quando o utilitário é executado com o terceiro parâmetro igual a `MONITOR`, ou quando é aberto sem parâmetros e a configuração `CINP_HABSINCDADOSCADASTRAIS` está habilitada para a empresa. Neste modo o aplicativo permanece residente, com ícone na área de notificação, e executa a importação automaticamente conforme o intervalo configurado.

2. Modo acionado pelos aplicativos de venda: comportamento já existente, disparado pelos módulos Balcão, Comanda e Orçamento. Executa uma única importação e encerra ao concluir.

3. Modo manual: abertura do utilitário para carga inicial ou atendimento de suporte, com a tela completa de seleção de cadastros.

### Inicialização automática do modo monitor

Para que o modo monitor seja iniciado junto com o sistema, a ativação é feita pelo aplicativo ConfigECF, na aba Inicialização Automática. Dentro dos grupos por módulo (Comanda, Integrado, Balcão e Orçamento) deve ser marcada a opção `prjImportacaoInpera.exe`.

A marcação grava a chave `ImportacaoInpera` com o valor `Sim` no arquivo `InicializacaoAutomatica.ini`, localizado na pasta do executável. Ao abrir o módulo correspondente, o sistema lê esse arquivo e inicia o utilitário em modo monitor. O utilitário não é iniciado novamente caso já esteja em execução na estação.

### Controle de instância única

O utilitário passa a permitir apenas uma execução por estação. Ao tentar abrir uma segunda instância, a abertura é cancelada, evitando dois ciclos de importação simultâneos sobre a mesma base.

### Ícone e menu na área de notificação

No modo monitor é exibido um ícone na área de notificação do Windows, com menu de contexto acionado pelo botão direito, contendo as opções:

| Opção | Função |

|---|---|

| Iniciar ciclo | Inicia a execução automática por intervalo de tempo |

| Parar ciclo | Interrompe a execução automática e também a importação que estiver em andamento |

| Importar agora | Executa uma importação imediata, sem aguardar o intervalo |

| Mostrar progresso | Exibe a janela reduzida com o andamento da importação |

| Abrir tela manual | Exibe a tela completa de importação manual |

| Sair | Encerra o aplicativo |

As opções Iniciar ciclo e Parar ciclo se alternam conforme o ciclo esteja parado ou ativo. Enquanto houver importação em andamento, as opções Importar agora e Abrir tela manual permanecem inativas. A opção Mostrar progresso fica ativa somente quando a janela está recolhida.

Ao posicionar o ponteiro sobre o ícone, é exibida a situação atual: se o ciclo está ativo ou parado, o intervalo configurado, a data e hora da última execução e, quando houver, a descrição do último erro.

### Janela de progresso

No modo monitor, a janela de progresso permanece oculta por padrão. Para acompanhar o andamento da importação, o usuário utiliza a opção Mostrar progresso do menu do ícone ou aplica duplo clique sobre o ícone. A janela exibe a tabela que está sendo sincronizada e o percentual de conclusão.

Fechar a janela de progresso, pelo botão Sair ou pelo botão X, devolve o aplicativo para a área de notificação sem interromper a importação e sem encerrar o aplicativo. O encerramento definitivo é feito pela opção Sair do menu do ícone.

### Execução da importação em paralelo à interface

A sequência de importação passa a ser executada fora da interface do aplicativo. A interface fica responsável apenas pelo ícone na área de notificação, pelo controle de intervalo, pela exibição do andamento e pelo encerramento do programa; a importação, por sua vez, executa as consultas à plataforma INPERA e as gravações no banco de dados do FACILITE de forma independente.

Em decorrência dessa separação:

- o menu do ícone abre e responde imediatamente, mesmo com importação em andamento;

- o computador permanece disponível para outros aplicativos durante a sincronização;

- o andamento exibido na janela de progresso é atualizado pela interface a partir da situação registrada pela importação, e não pela própria importação.

A execução em paralelo aplica-se exclusivamente ao modo monitor. Os modos acionado pelos aplicativos de venda e manual permanecem com o comportamento anterior, executando a importação de forma sequencial, com a janela aguardando a conclusão.

### Interrupção do ciclo

Ao acionar Parar ciclo durante uma importação, a interrupção é reconhecida entre registros e o ciclo é encerrado de forma controlada:

- a flag `EMPRESA.EMP_SINCINPERA` é devolvida para `True`, liberando o Monitor INPERA;

- a data e hora da última importação (`CONFIGINPERA.CINP_DHULTIMPORTHIBRIDO`) não é atualizada, de modo que os registros ainda não importados sejam considerados na execução seguinte;

- a interrupção é registrada em `LOGOPERACAO`.

### Encerramento do aplicativo durante a importação

Ao acionar Sair com importação em andamento, o aplicativo solicita a interrupção e retorna o controle imediatamente ao usuário. O encerramento ocorre ao final do ciclo, sempre após a devolução de `EMPRESA.EMP_SINCINPERA` para `True`.

Caso a importação não seja interrompida em até 10 segundos, o aplicativo devolve `EMPRESA.EMP_SINCINPERA` para `True`, registra a ocorrência em `LOGOPERACAO` e encerra o processo. Esse limite evita que o aplicativo permaneça aberto indefinidamente aguardando uma etapa que não responde, garantindo que a integração com o Monitor INPERA não fique bloqueada.

### Ações bloqueadas durante a importação

Enquanto houver importação em andamento:

- um novo ciclo disparado pelo intervalo automático é ignorado;

- a opção Importar agora informa que já existe um ciclo em andamento;

- na tela do utilitário, os botões Importar e Testar Conexão não executam ação.

### Mensagens e registro de erros

No modo monitor, as mensagens de erro da importação deixam de abrir janelas que exigem confirmação do usuário, uma vez que o aplicativo opera sem janela visível. As ocorrências passam a ser registradas em `LOGOPERACAO` e apresentadas como aviso na área de notificação, e a descrição do último erro fica disponível na dica do ícone.

Em caso de falha de comunicação com a plataforma INPERA, o ciclo é encerrado com registro do erro e o modo monitor permanece ativo, aguardando o próximo intervalo.

### Correções de exibição da janela

Foram corrigidas as seguintes inconsistências na exibição da janela em modo monitor:

1. Ao acionar Mostrar progresso ou aplicar duplo clique no ícone, a janela era exibida e recolhida em seguida, sem permanecer aberta. A janela passa a permanecer aberta até que o usuário a recolha.

2. Após acionar Parar ciclo e, em seguida, exibir a janela pelo ícone ou pela opção Abrir tela manual, era apresentada a mensagem `Cannot change Visible in OnShow or OnHide`. A mensagem não é mais apresentada.

3. Após a ocorrência acima, os botões Sair e X da janela não recolhiam o aplicativo para a área de notificação e também não encerravam o aplicativo. Ambos passam a recolher a janela corretamente.

As três situações decorriam da repetição da rotina de inicialização do utilitário a cada exibição da janela. A inicialização passa a ser executada uma única vez por execução do aplicativo.

### Comportamentos preservados

Não houve alteração em:

- ordem e conteúdo da sequência de importação dos cadastros;

- importação incremental e uso da data da última importação (`CONFIGINPERA.CINP_DHULTIMPORTHIBRIDO`), inclusive a regra de não atualizar a data em caso de erro;

- convivência com o Monitor INPERA por meio de `EMPRESA.EMP_SINCINPERA`;

- botão de sincronização e comportamento dos aplicativos Balcão, Comanda e Orçamento;

- tela e fluxo da importação manual.

### Alterações de Banco de Dados

Não foi criada nem alterada nenhuma estrutura de banco de dados nesta entrega. Os campos utilizados pelo modo monitor pertencem à tabela `CONFIGINPERA` e são criados pelo utilitário UTIL (`UFBUtilUtilitario.exe`):

| Campo | Tipo | Finalidade |

|---|---|---|

| `CINP_HABSINCDADOSCADASTRAIS` | Booleano | Habilita a sincronização automática de dados cadastrais |

| `CINP_INTEGRAINPERAHIBRIDO` | Booleano | Habilita a integração híbrida com o INPERA |

| `CINP_INTERVALOSINCCADASTROS` | Inteiro | Intervalo, em segundos, entre as importações automáticas |

| `CINP_DHULTIMPORTHIBRIDO` | Timestamp | Data e hora da última importação concluída com sucesso |

Antes de utilizar o modo monitor é necessário executar o utilitário UTIL na base do cliente, para garantir a existência desses campos.

Vídeo
https://youtu.be/FFLB3Gr-sKA
  

Parâmetros Envolvidos

### 1. Configurações no Monitor INPERA (`Monitor_INPERA.exe`)

Através do aplicativo Monitor INPERA, acessar a aba Configurações. Devem ser marcadas as opções:

- `Habilitar Integração Hibrida com o Inpera` — corresponde ao campo `CONFIGINPERA.CINP_INTEGRAINPERAHIBRIDO`. Habilita a integração híbrida de cadastros.
- `Sincronização de dados Cadastrais` — corresponde ao campo `CONFIGINPERA.CINP_HABSINCDADOSCADASTRAIS`. Habilita o modo monitor do utilitário `prjImportacaoInpera.exe`. Quando esta opção não estiver marcada, o utilitário não inicia o ciclo automático e apresenta aviso na área de notificação.

Na mesma aba devem estar informados o código da empresa e o token de integração da plataforma INPERA. Após o preenchimento, utilizar Gravar Dados para salvar as configurações na tabela `CONFIGINPERA`.

### 2. Intervalo entre as importações automáticas

- Campo: `CONFIGINPERA.CINP_INTERVALOSINCCADASTROS`
- Unidade: segundos
- Configuração: não existe campo em tela para este item. O valor deve ser informado diretamente no banco de dados, na tabela `CONFIGINPERA`, para a empresa desejada.
- Comportamento quando não informado: o utilitário adota 900 segundos (15 minutos).
- Valor mínimo aceito: 60 segundos. Valores inferiores são elevados automaticamente para 60 segundos.

### 3. Parâmetro 4.18.721

- Parâmetro: 4.18.721
- Descrição: HABILITA INTEGRAÇÃO COM O INPERA
- Caminho: FACILITE Comércio - Integrado > menu Utilitários > Parâmetros do Sistema > aba Parâmetros Gerais
- Valor: Sim
- Comportamento: habilita o botão de sincronização de cadastros INPERA nos aplicativos Balcão, Comanda e Orçamento. Não é exigido pelo modo monitor, que é controlado pelas configurações da tabela `CONFIGINPERA`.

### 4. Inicialização automática (`ConfigECF.exe`)

- Caminho: aba Inicialização Automática, nos grupos Comanda, Integrado, Balcão e Orçamento
- Opção: `prjImportacaoInpera.exe`
- Comportamento: ao marcar a opção, o utilitário passa a ser iniciado em modo monitor junto com o módulo correspondente. A configuração é gravada na chave `ImportacaoInpera` do arquivo `InicializacaoAutomatica.ini`, na pasta do executável.
- Observação: não confundir com a opção `IntegracaoInpera.exe`, existente na mesma tela, que corresponde a outro utilitário.

» Nota Técnica