Mapeando campos com relações em fluxos de dados padrão

No fluxo de dados padrão, você pode mapear facilmente campos da consulta de fluxo de dados para tabelas do Dataverse. No entanto, se a tabela Dataverse tiver campos de pesquisa ou relação, será necessária uma consideração adicional para garantir que esse processo funcione.

Qual é a relação e por que você precisa disso?

Se você vem de um plano de fundo de desenvolvimento de banco de dados, está familiarizado com o conceito de uma relação entre tabelas. No entanto, muitos usuários dos serviços do Microsoft Power Platform não têm essa formação. Você pode se perguntar qual é a relação ou por que deve criar uma relação entre tabelas.

As tabelas e sua relação são conceitos fundamentais de criação de um banco de dados. Saber tudo sobre relacionamentos está além do escopo deste artigo. No entanto, discutiremos isso de uma maneira geral aqui.

Digamos que você queira armazenar informações sobre os clientes e seus detalhes, incluindo a região, no Dataverse. Você pode manter tudo em uma tabela. Sua tabela pode ser chamada de Clientes e pode conter campos, como CustomerID, Name, Birthdate e Region. Agora imagine que você tenha outra tabela que também contenha as informações da loja. Essa tabela pode ter campos, como ID da Loja, Nome e Região. Como você pode ver, a região é repetida em ambas as tabelas. Não há um único lugar onde você possa obter todas as regiões; alguns dos dados da região estão na tabela Clientes e alguns deles estão na tabela Lojas. Se você criar um aplicativo ou um relatório a partir dessas informações, sempre precisará combinar as informações das duas regiões em uma.

Duas tabelas sem relação.

O que é feito na prática de design do banco de dados é criar uma tabela para Região em cenários como o descrito acima. Essa tabela região teria uma ID da região, um nome e outras informações sobre a região. As outras duas tabelas (Clientes e Lojas) terão links para essa tabela usando um campo (que pode ser o ID de região se tivermos o ID em ambas as tabelas, ou Nome se este for suficientemente único para determinar uma região). Isso significa ter uma relação da tabela Lojas e Clientes com a tabela Região.

Relações usando um campo de consulta.

No Dataverse, há várias maneiras de criar uma relação. Uma maneira é criar uma tabela e, em seguida, criar um campo em uma tabela que seja uma relação (ou pesquisa) para outra tabela, conforme descrito na próxima seção.

O que são campos de pesquisa de dados ou campos de relação?

No Dataverse, você pode ter um campo definido como um campo de pesquisa, que aponta para outra tabela.

Campo de pesquisa.

Na imagem anterior, o campo Região é um campo de pesquisa para outra tabela chamada Pesquisa de Região. Para saber mais sobre diferentes tipos de relacionamentos, acesse Criar uma relação entre tabelas.

Quando o mapeamento de campo não mostra os campos de relação

Se você criou um campo de pesquisa em uma tabela que aponta para outra tabela, esse campo pode não aparecer no mapeamento do fluxo de dados. Isso ocorre porque a entidade de destino envolvida na relação requer que um campo Chave seja definido. Essa prática recomendada garantirá que o campo seja mapeado nos mapeamentos de tabela do fluxo de dados.

Definindo o campo Chave na tabela

Para definir o campo de chave na tabela, vá para a guia Chaves e adicione uma chave a um campo que tenha valores exclusivos.

Defina um campo de chave.

Depois de definir o campo de chave, você pode ver o campo no mapeamento do fluxo de dados.

O campo de chave exibido no mapeamento de campo.

Limitações conhecidas

  • Atualmente, não há suporte para o mapeamento para campos de pesquisa polimórficos .
  • Atualmente, não há suporte para o mapeamento para um campo de pesquisa de vários níveis, uma pesquisa que aponta para o campo de pesquisa de outras tabelas.
  • Os campos de pesquisa para Tabelas Padrão, a menos que contenham campos de chave alternativos, conforme descrito neste documento, não aparecerão na caixa de diálogo Tabelas de Mapa.
  • Os fluxos de dados não garantem a ordem de carregamento correta ao carregar dados em tabelas configuradas como estruturas de dados hierárquicas.
  • A ordem de execução da consulta ou a ordem de carregamento para tabelas do Dataverse não é garantida. Recomendamos que você separe tabelas filho e pai em dois fluxos de dados e atualize primeiro o fluxo de dados que contém artefatos filho.
  • O mapeamento para campos cuja propriedade IsValidForCreate está definida false não tem suporte (por exemplo, o campo Conta da entidade Contact).