Pular para o conteúdo
Fynx
Business Intelligence11 min de leitura

Como conectar o Power Apps ao Dataverse

Como conectar o Power Apps ao Dataverse na prática: tabela, papéis de segurança, relacionamentos e leitura e gravação com Patch em Power Fx.

F
Fynx

Seu app corporativo cresceu e a planilha virou o gargalo

Quase todo app de Power Apps começa apoiado numa lista do SharePoint ou numa planilha do Excel. Funciona nos primeiros meses. O problema aparece quando o app vira ferramenta de verdade: dezenas de pessoas gravando ao mesmo tempo, regras de acesso por área, campos que precisam apontar para outro cadastro, auditoria de quem mudou o quê. É nesse ponto que a fonte de dados improvisada começa a travar, duplicar registros e abrir buracos de segurança.

Saber como conectar o Power Apps ao Dataverse é o passo que resolve boa parte disso de uma vez. O Dataverse é a plataforma de dados gerenciada do Power Platform, feita para guardar dados de negócio de forma estruturada, com segurança em nível de linha, relacionamentos entre tabelas e um modelo de permissões que acompanha o crescimento do app. Neste guia prático você vai ver o passo a passo real: escolher a tabela, configurar papéis de segurança, ligar tabelas por relacionamentos e ler e gravar registros com Patch em Power Fx.

O Dataverse é a melhor fonte para apps corporativos por três motivos concretos

Antes do passo a passo, vale entender por que trocar a planilha vale o esforço. Não é hype, são características técnicas que mudam o jogo em produção.

Primeiro, o Dataverse trata dados como um banco relacional de verdade: cada campo tem tipo definido, você cria chaves, e o relacionamento entre tabelas é nativo. Segundo, a segurança não é do arquivo, é do dado: você controla quem lê, cria, edita e apaga cada linha por papel de segurança. Terceiro, ele já vem integrado ao restante do Power Platform, então o mesmo dado alimenta o Power Automate, o Power BI e agentes do Copilot sem exportação manual.

A tabela abaixo compara as fontes mais comuns em cenários corporativos.

CritérioSharePoint / ExcelSQL ServerDataverse
Modelo de dadosListas planasRelacionalRelacional gerenciado
Segurança em nível de linhaLimitadaManualNativa por papel
Relacionamentos entre tabelasFrágeisSim, via códigoNativos (lookup)
Integração Power PlatformBoaMédiaTotal
LicençaIncluída em vários planosDependeConector premium

O ponto de atenção honesto: o Dataverse é um conector premium. Ele exige licença apropriada de Power Apps por usuário ou por app, ou uma licença que já inclua direitos de Dataverse. Vale confirmar o licenciamento antes de padronizar, porque migrar dez apps e descobrir o custo depois é desconforto garantido. Se quiser desenhar esse cenário com quem já fez isso muitas vezes, nossa equipe de Power Platform ajuda a dimensionar.

Passo 1: escolha e conecte a tabela certa

Toda conexão começa pela tabela. No Power Apps, uma tabela do Dataverse é o equivalente a uma tabela de banco: colunas tipadas, linhas de dados e uma chave primária.

O passo a passo dentro do app é direto:

  1. No editor do app (canvas ou model-driven), abra o painel Dados.
  2. Clique em Adicionar dados e procure o conector Microsoft Dataverse.
  3. Selecione o ambiente correto. Ambiente errado é a causa número um de "os dados não aparecem".
  4. Marque a tabela desejada, por exemplo Contas, Contatos ou uma tabela personalizada que você criou.
  5. Confirme. A tabela passa a ficar disponível como fonte pelo nome lógico.

Um detalhe que economiza retrabalho: prefira criar tabelas personalizadas com nomes claros e um prefixo de publicador padronizado desde o início. Renomear tabela depois de o app estar em produção é dor de cabeça, porque fórmulas e integrações apontam para o nome lógico.

Depois de conectada, a tabela já responde a funções como Filter, Search, LookUp e coleções. Um exemplo simples de exibir apenas contas ativas numa galeria:

Filter(
    Contas,
    'Status' = 'Status (Contas)'.Ativo
)

Repare que valores de campos de escolha (choice) usam o enum da própria coluna, não texto solto. Isso evita erro de digitação e mantém a fórmula robusta a mudanças de rótulo.

Passo 2: configure papéis de segurança antes de liberar o app

Aqui está a diferença mais importante em relação a uma planilha. No Dataverse, quem pode fazer o quê é controlado por papéis de segurança (security roles), e o acesso é aplicado no nível da linha. Isso significa que dois usuários podem abrir o mesmo app e ver conjuntos de registros diferentes, sem nenhuma lógica extra na tela.

O modelo funciona em camadas. Cada tabela tem privilégios separados para as operações, e cada privilégio tem um alcance que define até onde o usuário enxerga.

PrivilégioO que controla
CreateCriar novas linhas
ReadLer linhas existentes
WriteEditar linhas
DeleteExcluir linhas
Append / Append ToRelacionar uma linha a outra
ShareCompartilhar uma linha com outro usuário

O alcance de cada privilégio vai de Usuário (só as próprias linhas) até Organização (todas as linhas da tabela), passando por unidade de negócio. Na prática, o roteiro que recomendamos é:

  1. Compartilhar o app com os usuários ou grupos que vão usá-lo.
  2. Atribuir a esses usuários um papel de segurança que tenha, no mínimo, Read na tabela.
  3. Ajustar Create, Write e Delete conforme o que cada perfil realmente precisa fazer.
  4. Testar com uma conta de usuário comum, nunca só com a conta de administrador.

Esse último ponto merece destaque porque é onde a maioria dos apps quebra na primeira semana. O desenvolvedor testa como administrador, tudo funciona, publica, e o usuário final recebe erro de permissão. Compartilhar o app não concede acesso aos dados: são duas camadas separadas. O app precisa ser compartilhado e o papel de segurança precisa dar o privilégio na tabela. Governar isso com critério é parte do que tratamos em governança de dados, porque permissão frouxa vira risco de vazamento e permissão apertada demais vira chamado de suporte.

Passo 3: ligue as tabelas com relacionamentos de pesquisa

Dados corporativos raramente vivem numa tabela só. Um pedido pertence a um cliente, um chamado pertence a um contato, uma despesa pertence a um projeto. No Dataverse, essa ligação é feita por relacionamentos de pesquisa (lookup), que são nativos e mantêm a integridade entre as tabelas.

Um relacionamento um-para-muitos cria uma coluna de pesquisa na tabela "muitos". Por exemplo, a tabela Chamados ganha uma coluna Cliente que aponta para uma linha da tabela Contas. No Power Apps, você navega por esse relacionamento com notação de ponto, sem precisar de mesclagem manual.

Para exibir o nome do cliente dentro de uma galeria de chamados:

ThisItem.Cliente.'Nome da conta'

Para preencher uma caixa de combinação (combo box) com as contas disponíveis e depois gravar a escolha, você usa a própria linha da tabela relacionada como valor, não um texto:

// Items da combo box
Contas

// Ao salvar, grave o registro inteiro no campo de pesquisa
Patch(
    Chamados,
    Defaults(Chamados),
    {
        Titulo: txtTitulo.Text,
        Cliente: cmbCliente.Selected
    }
)

O detalhe técnico que confunde muita gente: campos de pesquisa não recebem um GUID nem um texto, eles recebem o registro relacionado inteiro. Passar cmbCliente.Selected funciona porque a combo box já tem a linha da conta. Esse comportamento mantém o relacionamento consistente e é uma das razões pelas quais o Dataverse escala melhor que listas manualmente cruzadas.

Passo 4: leia e grave com Patch, a função que faz o trabalho pesado

Patch é a função central para gravar no Dataverse. Ela cria ou atualiza registros, campo a campo, sem depender de formulários visuais. Dominar Patch deixa o app mais rápido e muito mais flexível.

Criar um registro novo usa Defaults para gerar uma linha em branco da tabela:

Patch(
    Chamados,
    Defaults(Chamados),
    {
        Titulo: txtTitulo.Text,
        Descricao: txtDescricao.Text,
        Prioridade: 'Prioridade (Chamados)'.Alta
    }
)

Atualizar um registro existente troca Defaults pela linha que você quer alterar:

Patch(
    Chamados,
    galeriaChamados.Selected,
    {
        Status: 'Status (Chamados)'.Resolvido
    }
)

Atualizar vários registros de uma vez é onde Patch mostra força, usando uma tabela de alterações em lote:

Patch(
    Chamados,
    ForAll(
        Filter(Chamados, Status = 'Status (Chamados)'.Pendente),
        {
            ID: ID,
            Status: 'Status (Chamados)'.EmAndamento
        }
    )
)

Duas boas práticas que evitam bugs difíceis de rastrear. Primeira: sempre capture o resultado do Patch numa variável quando precisar do registro criado depois, por exemplo Set(varNovo, Patch(...)). Segunda: trate o erro com IfError ou com Notify, porque uma gravação que falha em silêncio por falta de permissão é o pior tipo de defeito. Um exemplo com tratamento:

IfError(
    Patch(
        Chamados,
        Defaults(Chamados),
        { Titulo: txtTitulo.Text }
    ),
    Notify("Não foi possível salvar o chamado.", NotificationType.Error),
    Notify("Chamado criado com sucesso.", NotificationType.Success)
)

Sobre desempenho, vale conhecer o conceito de delegação. O Dataverse delega a maioria das operações de Filter, Search e LookUp ao servidor, o que significa que o app trabalha bem mesmo com tabelas grandes, sem esbarrar no limite de linhas do lado do cliente. Isso é uma vantagem real frente a fontes que forçam o app a baixar tudo para filtrar localmente. Quando o volume de dados é grande de verdade, esse comportamento se conecta com decisões de arquitetura que tratamos em engenharia de dados.

Um checklist honesto antes de colocar em produção

Depois de conectar, configurar segurança, ligar as tabelas e gravar com Patch, faltam os detalhes que separam um protótipo de um app confiável:

  1. Teste com usuário real, nunca só com administrador.
  2. Confira o ambiente de desenvolvimento e o de produção, para não publicar apontando para dados de teste.
  3. Documente os papéis de segurança e quem tem cada um.
  4. Valide a delegação nas telas com muitos dados, procurando o aviso de delegação no editor.
  5. Planeje o licenciamento premium antes de escalar o app para toda a empresa.

O Dataverse não é a resposta para todo caso. Para um app pequeno, interno, de baixo volume, uma lista do SharePoint pode ser suficiente e mais barata. A troca vale a pena quando você precisa de segurança por linha, relacionamentos reais e integração forte com o resto do Power Platform. Esse mesmo dado bem estruturado, aliás, é o que torna um relatório de Power BI muito mais confiável depois.

Perguntas frequentes

Preciso de licença paga para usar o Dataverse no Power Apps?

Sim. O Dataverse é um conector premium e exige licença apropriada, seja um plano de Power Apps por usuário ou por app, seja uma licença que já inclua direitos de Dataverse. Confirme o cenário de licenciamento antes de padronizar vários apps, porque isso afeta diretamente o custo de escalar.

Qual a diferença entre compartilhar o app e dar acesso aos dados?

São duas camadas independentes. Compartilhar o app permite que a pessoa abra a tela. O acesso aos dados vem do papel de segurança atribuído ao usuário na tabela do Dataverse. O app só funciona de verdade quando as duas coisas estão feitas, e testar com uma conta comum revela rapidamente se ficou faltando alguma.

Como o Dataverse controla quem vê cada registro?

Por papéis de segurança com segurança em nível de linha. Cada papel define privilégios de criar, ler, editar e excluir, e cada privilégio tem um alcance que vai do próprio usuário até a organização inteira. Assim, dois usuários abrem o mesmo app e podem ver conjuntos diferentes de linhas, sem lógica extra na tela.

Devo usar Patch ou o controle de formulário (Edit Form)?

Os dois têm lugar. O formulário de edição é ótimo para telas de cadastro simples e rápidas de montar. O Patch dá controle total: grava campos específicos, faz atualizações em lote, cria registros a partir de qualquer botão e permite tratamento de erro personalizado. Em apps corporativos mais exigentes, Patch costuma ser a escolha principal.

Como ligo uma tabela à outra no Power Apps?

Com relacionamentos de pesquisa (lookup) criados no Dataverse. Eles geram uma coluna que aponta para a linha de outra tabela e mantêm a integridade entre elas. No Power Apps, você navega por essa ligação com notação de ponto e grava o registro relacionado inteiro no campo de pesquisa, não um texto ou um código.

O Dataverse aguenta tabelas com muitos registros?

Sim, e melhor do que planilhas. Ele delega operações de filtro, busca e pesquisa ao servidor, então o app não precisa baixar tudo para trabalhar. Ainda assim, vale ficar atento aos avisos de delegação no editor e desenhar as consultas com cuidado quando o volume for realmente alto.

Conclusão

Conectar o Power Apps ao Dataverse é o passo que transforma um app de planilha num sistema corporativo: tabela estruturada, papéis de segurança por linha, relacionamentos nativos e gravação confiável com Patch. O esforço extra de configuração se paga em segurança, escala e integração com o resto do Power Platform.

Se você quer migrar apps existentes ou nascer já no Dataverse com a arquitetura certa, fale com a gente. A Fynx acumula mais de 2.000 soluções Microsoft entregues e ajuda a colocar seu app em produção com segurança e desempenho.

Quer aplicar isso na sua empresa?

A Fynx implementa BI, Power BI e Power Platform de ponta a ponta. Conte seu cenário e devolvemos um diagnóstico direto ao ponto.

Falar com um especialista

Vamos transformar seus dados em decisão?

Conte seu cenário. Devolvemos um diagnóstico e uma proposta com faixa de investimento em poucos dias úteis, sem folheto, direto ao ponto.