Dataverse para Desenvolvedores: Estruturando Dados Empresariais
Um guia prático sobre o Microsoft Dataverse, cobrindo modelagem de dados, relações, segurança e integração com Power Apps e Power Automate.
O que é o Dataverse
O Microsoft Dataverse é a plataforma de dados por trás do Power Platform. Diferente de uma planilha do SharePoint ou um banco SQL tradicional, ele combina armazenamento relacional com camadas nativas de segurança, lógica de negócios e integração.
Se você está construindo aplicações empresariais com Power Apps, entender o Dataverse deixou de ser opcional.
Por que usar Dataverse em vez de SharePoint Lists
SharePoint Lists funcionam bem para cenários simples, mas encontram limitações rapidamente:
- Limite de 12 lookups por view no SharePoint
- Delegation limitada em Power Apps com SharePoint como fonte
- Sem controle granular de permissões por registro
- Sem relações N:N nativas entre listas
O Dataverse resolve todos esses problemas com um modelo relacional completo, views ilimitadas e Security Roles nativos.
Modelagem de tabelas
Ao criar tabelas no Dataverse, siga estas práticas:
Nomenclatura com prefixo do publisher
Toda tabela e coluna customizada deve usar o prefixo do seu publisher. Se seu prefixo é pc, suas tabelas serão pc_Projeto, pc_Tarefa, etc. Isso evita conflitos com soluções de terceiros.
Tipos de coluna mais úteis
- Choice: Para campos com opções fixas (Status, Prioridade)
- Lookup: Para relações 1:N entre tabelas
- Currency: Para valores monetários (já formata e converte moedas)
- Calculated/Rollup: Para campos derivados automaticamente
pc_Projeto (Tabela)
├── pc_nome (Text, Primary Column)
├── pc_descricao (Multiline Text)
├── pc_status (Choice: Ativo, Pausado, Concluído)
├── pc_dataInicio (Date)
├── pc_dataFim (Date)
├── pc_orcamento (Currency)
└── pc_responsavel (Lookup -> systemuser)
Relações entre tabelas
O Dataverse suporta três tipos de relação:
1:N (One-to-Many): Um Projeto tem muitas Tarefas. Crie um Lookup na tabela filho apontando para o pai.
N:N (Many-to-Many): Um Projeto pode ter vários Membros, e um Membro pode participar de vários Projetos. O Dataverse cria automaticamente uma tabela intermediária.
N:1 (Many-to-One): Muitas Tarefas pertencem a um Projeto. É o inverso do 1:N.
Segurança com Security Roles
O modelo de segurança do Dataverse opera em quatro níveis:
- Organization: Acesso a todos os registros
- Business Unit: Acesso a registros da mesma unidade de negócio
- Parent-Child BU: Inclui unidades filhas
- User: Apenas registros próprios
Para cada tabela, defina permissões de Create, Read, Write, Delete, Append e Assign no Security Role adequado.
Integração com Power Apps
No Power Apps, conectar ao Dataverse é nativo. Use Filter() e LookUp() com delegation completa:
Filter(pc_Projetos, pc_status = 'Ativo' && pc_responsavel = User())
Diferente do SharePoint, todas as funções de consulta são delegáveis no Dataverse, incluindo Search(), Sort() e CountRows().
Integração com Power Automate
Crie fluxos que reagem a mudanças no Dataverse:
- When a row is added: Trigger quando novo registro é criado
- When a row is modified: Trigger em atualizações
- Perform a bound/unbound action: Execute lógica customizada
Boas práticas finais
- Sempre use soluções para empacotar tabelas, apps e fluxos juntos
- Defina alternate keys para cenários de integração
- Use Business Rules para validações simples (sem código)
- Ative auditoria nas tabelas críticas
- Planeje a estrutura de Business Units antes de implementar segurança