Como criar um Power Apps com funcionamento offline

Por Erick Alves de Moura
Como criar um Power Apps com funcionamento offline

Em muitos cenários de campo, o usuário não pode depender de internet estável para trabalhar. Inspeções, checklists, visitas técnicas e coletas em ambiente fabril são exemplos em que o app precisa continuar funcionando mesmo sem conexão.

No Power Apps, existem dois caminhos principais para isso:

  1. modo offline nativo para apps Canvas com Dataverse, configurado por perfil offline no Power Apps Mobile;
  2. armazenamento local com SaveData e LoadData, útil para cenários mais simples fora do Dataverse.

Neste artigo, vamos seguir um exemplo pequeno e prático: um app Canvas de checklist offline, em que o usuário consegue visualizar itens, preencher status e continuar operando sem internet.

Quando vale a pena usar modo offline

O funcionamento offline faz sentido quando:

  • o app será usado em celular ou tablet;
  • a conectividade é instável ou inexistente em parte do processo;
  • o usuário precisa consultar e atualizar dados localmente;
  • a sincronização pode acontecer depois, quando a conexão voltar.

Um ponto importante: apps Canvas não rodam offline no navegador web. Esse cenário é suportado no Power Apps Mobile, em plataformas móveis suportadas.

Duas abordagens possíveis

1) Offline nativo com Dataverse

Se o app usa Dataverse, o suporte offline é integrado. O Power Apps pode baixar os dados no dispositivo e sincronizar as alterações com o Dataverse quando a conexão retornar. A configuração é feita ativando a opção Can be used offline e selecionando um offline profile.

2) Offline simples com SaveData e LoadData

Se o app não usa Dataverse, você pode armazenar coleções localmente no dispositivo. Essa abordagem é útil para exemplos menores e protótipos, embora tenha limitações e não substitua o offline nativo em cenários mais robustos.

Exemplo prático: app Canvas offline de checklist

Para deixar o artigo simples de reproduzir, o exemplo abaixo usa a abordagem com coleção local.

Cenário

Vamos montar um app com uma lista de verificação contendo:

  • Item
  • Responsável
  • Status
  • Observação

A ideia é:

  • carregar os registros em uma coleção;
  • salvar essa coleção localmente no dispositivo;
  • permitir uso sem internet;
  • recarregar os dados locais quando o app abrir novamente.

Estrutura do exemplo

Você pode criar uma collection inicial com alguns itens de checklist.

Exemplo de carga inicial

No App.OnStart:

ClearCollect(
    colChecklist,
    Table(
        {
            ID: 1,
            Item: "Verificar painel elétrico",
            Responsavel: "Luiz",
            Status: "Pendente",
            Observacao: ""
        },
        {
            ID: 2,
            Item: "Inspecionar etiquetas de segurança",
            Responsavel: "Erick",
            Status: "Pendente",
            Observacao: ""
        },
        {
            ID: 3,
            Item: "Conferir extintores",
            Responsavel: "Fernando",
            Status: "Pendente",
            Observacao: ""
        }
    )
)

Depois disso, o app já tem uma base simples para exibir em galeria.

Passo 1: criar a galeria com os itens

Adicione uma Gallery e use:

colChecklist

Dentro da galeria, exiba:

  • ThisItem.Item
  • ThisItem.Responsavel
  • ThisItem.Status

Você também pode incluir um ícone ou botão para editar o item selecionado.

Passo 2: criar a edição do item

Na tela de edição, você pode usar controles simples:

  • Label para o nome do item
  • Dropdown para status
  • Text input para observação
  • Botão para salvar

Exemplo de atualização

No botão Salvar:

Patch(
    colChecklist,
    LookUp(colChecklist, ID = varItemSelecionado.ID),
    {
        Status: drpStatus.Selected.Value,
        Observacao: txtObservacao.Text
    }
)

E no OnSelect do item da galeria:

Set(varItemSelecionado, ThisItem)

Passo 3: salvar os dados localmente no dispositivo

Depois de atualizar a collection, salve localmente com SaveData.

No botão Salvar, após o Patch, adicione:

SaveData(colChecklist, "ChecklistLocal")

A função SaveData armazena uma coleção localmente no dispositivo, para ser recarregada depois com LoadData. Esse recurso é indicado justamente para cenários offline simples.

Passo 4: recarregar os dados locais ao abrir o app

No App.OnStart, antes de recriar a collection padrão, você pode tentar carregar os dados locais:

LoadData(colChecklist, “ChecklistLocal”, true);

If(
    IsEmpty(colChecklist),
    ClearCollect(
        colChecklist,
        Table(
            {
                ID: 1,
                Item: "Verificar painel elétrico",
                Responsavel: "Fernando",
                Status: "Pendente",
                Observacao: ""
            },
            {
                ID: 2,
                Item: "Inspecionar etiquetas de segurança",
                Responsavel: "Fernando",
                Status: "Pendente",
                Observacao: ""
            },
            {
                ID: 3,
                Item: "Conferir extintores",
                Responsavel: "Fernando",
                Status: "Pendente",
                Observacao: ""
            }
        )
    )
)

O terceiro parâmetro true faz com que o app não gere erro caso o armazenamento local ainda não exista.

Passo 5: identificar se o usuário está offline

O Power Apps permite verificar o estado da conexão com o objeto Connection. A documentação recomenda esse uso para detectar se o app está online, offline ou em conexão limitada.

Você pode usar isso para exibir uma mensagem ao usuário.

Exemplo

No texto de um label:

If(
    Connection.Connected,
    "Online",
    "Offline"
)

Ou até mostrar um aviso visual:

If(
    !Connection.Connected,
    "Você está sem conexão. Os dados serão mantidos localmente.",
    ""
)

Conclusão

Criar um app Canvas com funcionamento offline no Power Apps é totalmente viável, e o melhor caminho depende do cenário.

Para um exemplo pequeno e rápido de demonstrar, SaveData e LoadData resolvem muito bem. Já para aplicações corporativas com Dataverse, o offline nativo no Power Apps Mobile é a abordagem mais robusta e atual.

Se a ideia é montar um artigo técnico com boa demonstração visual, um checklist offline é um excelente exemplo: simples de construir, útil para o leitor e menos comum do que os tutoriais tradicionais de formulário e galeria.

Transforme ideias em soluções reais com a Trinapse.
Fale com nosso time e descubra como acelerar seus projetos com Power Platform.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast