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