Dataverse em tempo real em Canvas Apps offline no campo

O que você vai configurar quando o sinal falha no talhão
Este tutorial mostra como configurar Dataverse em tempo real em Canvas Apps offline para operações de campo sem conexão estável, o cenário típico de inspeção de safra, vistoria de maquinário em usina ou checagem de silo. Ao final, você terá um app que grava dados críticos localmente quando não há sinal e sincroniza automaticamente assim que o dispositivo volta a se conectar, enquanto mantém dados de referência voláteis, como preço de commodity ou disponibilidade de agrônomo, atualizados em tempo real quando a conexão existe.
O modelo até agora era binário. Um app de Canvas Apps configurado como offline tratava tudo pelo cache local, mesmo quando o técnico estava com 4G funcionando dentro da sede da cooperativa. A atualização de Power Platform de julho e agosto de 2026 muda isso: agora é possível misturar, na mesma tela, tabelas com sincronização em tempo real e tabelas com cache offline-first, escolhidas por finalidade de negócio, não por limitação técnica do app inteiro.
Isso importa especialmente para quem opera no agronegócio. Um técnico inspecionando um talhão a 40 km da sede não tem sinal estável, mas o preço da soja no dia da colheita muda, e o status de disponibilidade de um agrônomo para retorno urgente também muda. Antes, ou tudo ficava defasado até a próxima sincronização manual, ou o app inteiro dependia de conexão para funcionar. Agora dá para separar os dois comportamentos dentro do mesmo aplicativo.
Pré-requisitos antes de tocar no perfil de sincronização
- Licenciamento: Power Apps per app ou per user plan com acesso ao conector premium de Dataverse. Apps que usam apenas SharePoint ou Excel como fonte não se beneficiam deste recurso, ele é específico de tabelas Dataverse.
- Ambiente: ambiente Dataverse dedicado, de preferência Managed Environment. Ambientes do tipo Teams (Dataverse for Teams) não expõem o novo controle de sincronização por tabela.
- Papel no tenant: System Administrator ou System Customizer no ambiente para configurar o perfil de sincronização móvel e habilitar sincronização offline por tabela. O App Maker configura o app em si, mas não altera perfis de sincronização sem um desses dois papéis.
- Dispositivo de teste: Power Apps mobile app atualizado em Android ou iOS. O cache offline completo não funciona no navegador nem no Power Apps para desktop, apenas no app móvel nativo.
- Recurso em versão prévia: confirme antes de qualquer coisa se a funcionalidade está habilitada na sua região. Acesse o Power Platform admin center, selecione o ambiente, entre em Configurações > Funcionalidades > Recursos em versão prévia e procure por acesso Dataverse em tempo real em apps offline. Se não aparecer, o rollout ainda não chegou à sua região.
- Modelagem prévia: tabelas Dataverse já criadas para o cenário. No exemplo deste tutorial: Inspeções de Talhão, Safra, Ocorrência de Praga (cache local, preenchidas em campo) e Preço de Commodity (tempo real, consultada, não editada em campo).
Este recurso está em preview no momento da atualização de julho e agosto de 2026. Nem todo tenant e nem toda região tem disponibilidade no lançamento. Confirme no Power Platform admin center e no Centro de mensagens antes de prometer prazo a um cliente ou incluir a funcionalidade num escopo fechado de projeto.
Sequência de cinco passos para configurar Dataverse em tempo real em Canvas Apps offline, do ambiente ao teste em campo
Passo a passo: do ambiente ao dispositivo do técnico
Passo 1. Habilitar o recurso em versão prévia no ambiente
No Power Platform admin center, abra o ambiente Dataverse onde vive o app, vá em Configurações > Funcionalidades > Recursos em versão prévia e ative o acesso Dataverse em tempo real para apps offline. Esse toggle é por ambiente, não por app nem por tenant inteiro, o que significa que você pode testar em um ambiente de desenvolvimento antes de habilitar em produção. É exatamente isso que recomendamos: valide o comportamento num ambiente sandbox usando dados de um talhão fictício antes de tocar no ambiente onde os técnicos já trabalham.
Passo 2. Configurar o perfil de sincronização móvel no Dataverse
Com o recurso habilitado, vá até a definição das tabelas que vão ao dispositivo. Em cada tabela usada offline, confirme que a opção Habilitar sincronização offline para dispositivos móveis está marcada. Depois, crie ou edite um perfil de sincronização móvel específico para o time de campo, definindo filtros de linha. Isso é decisivo em operação agrícola: sem um filtro bem dimensionado, o dispositivo do técnico tenta baixar o histórico completo de inspeções da cooperativa inteira, o que trava o app e consome dados móveis desnecessariamente.
Um filtro razoável para Inspeções de Talhão seria trazer apenas registros do usuário atual, dos últimos 90 dias, e vinculados às safras ativas. Para Preço de Commodity, que será tratada em tempo real e não em cache, esse filtro nem se aplica, ela não vai para o armazenamento local do dispositivo.
Passo 3. Ativar o modo offline no Canvas App
No Power Apps Studio, abra o app, vá em Configurações do app > Geral e ative o toggle Offline. Conecte as fontes de dados Dataverse normalmente pelo painel de dados. Até este ponto, o comportamento é o mesmo de qualquer app offline-first já existente: tudo que for marcado como offline vai para o cache local do dispositivo.
Passo 4. Definir tempo real versus cache por tabela
Este é o passo novo. Em Configurações do app > Avançado > Dados, cada tabela conectada agora exibe um seletor de modo de sincronização com duas opções: Cache local (offline-first) e Tempo real (somente quando conectado). Marque Inspeções de Talhão, Ocorrência de Praga e Safra como cache local, porque são os dados que o técnico precisa criar e editar mesmo sem sinal nenhum. Marque Preço de Commodity como tempo real, porque é um dado que muda ao longo do dia e não faz sentido o técnico decidir alguma coisa com base num preço de três dias atrás só porque ficou em cache.
O racional de negócio por trás dessa divisão é simples: cache local para tudo que é produção de dado em campo, tempo real para tudo que é consulta de referência que perde valor rápido. Confundir os dois é o erro mais comum nessa configuração, e volta no tópico de erros comuns mais abaixo.
Passo 5. Sinalizar o estado da conexão na interface
Use a propriedade Connection.Connected para avisar o usuário quando os dados de tempo real estão realmente atualizados ou vindo de uma última leitura em cache de sessão. Isso evita que o técnico tome decisão de campo achando que o preço exibido é do minuto atual quando, na verdade, o dispositivo está sem sinal há vinte minutos.
If(
Connection.Connected,
Notify(
"Conectado - preço de commodity atualizado em tempo real",
NotificationType.Success
),
Notify(
"Sem conexão - exibindo o último preço sincronizado",
NotificationType.Warning
)
)Coloque essa fórmula no OnVisible da tela que exibe o preço de commodity, ou vincule diretamente a propriedade Visible de um ícone de status a Connection.Connected, para o indicador atualizar em tempo real conforme o técnico entra e sai de área de cobertura.
Passo 6. Gravar dados de campo com Patch, mesmo sem conexão
O formulário de inspeção continua usando Patch normalmente. A diferença é que, com a tabela marcada como cache local no passo 4, o Canvas Apps enfileira a gravação no armazenamento do dispositivo quando não há conexão, e sincroniza essa fila automaticamente com o Dataverse assim que a conectividade volta. Não é preciso escrever lógica própria de fila, o runtime do app cuida disso.
Patch(
'Inspeções de Talhão',
Defaults('Inspeções de Talhão'),
{
Talhao: varTalhaoSelecionado,
DataInspecao: Today(),
StatusPraga: varStatusPraga,
Observacao: TextInputObservacao.Text,
Latitude: Location.Latitude,
Longitude: Location.Longitude
}
)Note que o Patch é idêntico ao que você já escreveria num app sem esse recurso. A mudança não está na fórmula, está na configuração da tabela feita no passo 4. Isso é bom para quem já tem apps offline em produção: adicionar a tabela de preço em tempo real não exige reescrever as telas de gravação de inspeção.
Passo 7. Publicar e testar em condição real de campo
Publique o app e abra-o no Power Apps mobile app instalado no celular ou tablet do técnico. Ative o modo avião, preencha uma inspeção completa de talhão, tire uma foto de evidência de praga e salve. Em seguida, desative o modo avião e observe a sincronização acontecer em segundo plano, sem precisar reabrir o app.
Como validar que a sincronização em tempo real está funcionando
Com o app funcionando corretamente, você deve observar três coisas concretas:
- No dispositivo, ao ativar o modo avião, a tela de Preço de Commodity mostra o indicador de "sem conexão" configurado no passo 5, enquanto a tela de Inspeção de Talhão continua permitindo criar e editar registros normalmente.
- Ao reconectar, o registro criado offline aparece no Dataverse com o campo de data de criação correspondente ao momento em que foi salvo no dispositivo, não ao momento da sincronização. Isso é auditável e importa para rastreabilidade de inspeção agrícola.
- No Power Platform admin center, em Ambientes > Monitor > Status de sincronização móvel offline, o registro do dispositivo do técnico mostra a fila de sincronização zerada após a reconexão, confirmando que não ficaram registros pendentes.
Se o preço de commodity muda no meio do dia e o técnico, ainda conectado, reabre a tela, o valor exibido deve refletir a mudança sem exigir sincronização manual nem reinício do app. Esse é o comportamento de tempo real que diferencia essa tabela das demais.
Erros comuns e o que realmente está acontecendo
Mensagem ou sintoma | Causa provável |
|---|---|
"Este recurso não está disponível neste ambiente" | O toggle de preview não foi habilitado no ambiente, ou o ambiente é do tipo Dataverse for Teams, que não suporta o novo modo de sincronização por tabela. |
App trava ou demora minutos para carregar o cache inicial | Filtro do perfil de sincronização móvel mal dimensionado, trazendo histórico completo de inspeções em vez de apenas os registros recentes e relevantes ao usuário. |
"Foi feita uma alteração conflitante neste registro" | Dois técnicos editaram a mesma inspeção offline, cada um no próprio dispositivo, e ambos sincronizaram depois. É esperado em operação de campo com equipe grande, trate com regra de concorrência baseada no campo modifiedon. |
Tabela não aparece no seletor de tempo real dentro do app | A tabela não tem a opção "Habilitar sincronização offline para dispositivos móveis" marcada na definição em Dataverse, condição necessária mesmo para tabelas que serão tratadas como tempo real. |
Preço de commodity continua defasado mesmo com sinal bom | A tabela foi marcada como cache local no passo 4 por engano, em vez de tempo real. Revise a configuração em Configurações do app > Avançado > Dados. |
A armadilha da disponibilidade regional
Vale repetir porque é o ponto onde consultorias e times internos mais se queimam com cliente: este recurso chegou como preview na atualização de julho e agosto de 2026, e o rollout de recursos do Power Platform historicamente é escalonado por região do Azure e por tipo de licenciamento do tenant. Antes de incluir "Dataverse em tempo real offline" numa proposta comercial, num cronograma de implantação ou numa promessa verbal a um gerente de cooperativa, confirme a disponibilidade real no ambiente de destino, não apenas num ambiente de testes que por acaso já recebeu o rollout.
A forma correta de confirmar é checar o toggle em Configurações > Funcionalidades > Recursos em versão prévia diretamente no ambiente de produção do cliente, e cruzar com o Centro de mensagens do Microsoft 365 admin center, que normalmente traz o cronograma de disponibilização por região antes do recurso aparecer no admin center do ambiente.
Fechando o ciclo
Separar cache local de leitura em tempo real dentro do mesmo Canvas App resolve um problema real de quem opera no agronegócio: dado de produção não pode esperar sinal, e dado de referência não pode ficar defasado quando o sinal existe. Se sua operação já tem apps de inspeção rodando em modo offline puro, vale revisar quais tabelas hoje ficam presas ao cache sem necessidade e poderiam se beneficiar do modo tempo real assim que o recurso estiver confirmado na sua região. É esse tipo de ajuste fino de arquitetura que costuma render mais retorno do que construir um app novo do zero.
Luiz Antonio Sgargeta é sócio fundador e CEO da Trinapse, consultoria brasileira de Microsoft 365 com quase duas décadas de operação, acumula mais de 20 anos em desenvolvimento de software e em ambientes corporativos de alta complexidade.
Trabalha com SharePoint desde o SharePoint Portal Server 2003 e com .NET desde a versão 1.0. Acompanhou a plataforma em todas as suas reinvenções, do portal de documentos on-premises ao SharePoint Online dentro do Microsoft 365, o que dá a ele uma leitura rara sobre o que muda de verdade e o que é apenas nome novo para o mesmo problema.
No início da carreira atuou em uma das maiores operações de e-commerce do país, em sistemas que não toleram degradação de performance nem indisponibilidade, essa origem definiu o critério que ele aplica até hoje: solução boa é a que sustenta volume real, integra com o legado que já existe e não quebra no pico.
Depois disso, passou por praticamente todo tipo de projeto corporativo, de portais e intranets de milhares de usuários a integrações críticas e automação de processos de ponta a ponta, sempre em grandes empresas e em desafios de alta exigência.
A marca do trabalho dele é a tradução entre tecnologia e negócio, levanta a necessidade real por trás do pedido do cliente, questiona o processo antes de automatizá-lo e desenha a solução pelo resultado esperado, não pela ferramenta disponível, é o que permite conversar com a diretoria sobre retorno e com o time técnico sobre arquitetura na mesma reunião.
Hoje lidera a frente comercial e estratégica da Trinapse e conduz a empresa no novo ciclo da inteligência artificial, com foco em agentes de IA e operação de processos assistida por IA para cooperativas de crédito, agronegócio e indústria. Escreve no blog da Trinapse desde 2019, com mais de 450 artigos sobre IA, SharePoint, Power Platform, Modern Workplace e transformação de processos, sempre a partir de projeto entregue e não de teoria.



