Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
As definições de tabela em Microsoft Dataverse descrevem a estrutura e o comportamento de cada tabela que armazena dados estruturados. Este artigo explica como trabalhar com definições de tabela programaticamente, incluindo nomes de tabela, chaves, titularidade e estados. Para desenvolvedores, as tabelas correspondem às classes que você usa ao trabalhar com dados no Microsoft Dataverse.
O SDK para .NET classe EntityMetadata e o tipo de entidade EntityMetadata da API Web contêm as propriedades que definem tabelas.
Note
Quando você recupera definições de tabela usando a API Web, os dados na resposta usam o tipo complexo ComplexEntityMetadata. A diferença é que Attributes, Keys, ManyToManyRelationships, ManyToOneRelationships e OneToManyRelationships são coleções (matrizes), em vez de propriedades de navegação com valor de coleção. Use o tipo de entidade EntityMetadata ao criar ou atualizar tabelas usando a API Web.
Nomes de tabelas
Cada tabela tem um nome exclusivo que você define ao criá-la. Você verá esse nome de várias maneiras:
| Propriedade Name | Description | Example |
|---|---|---|
SchemaName |
Normalmente, uma versão case de Pascal do nome lógico. | Account |
CollectionSchemaName |
Uma forma plural do nome do esquema. | Accounts |
LogicalName |
Versão do nome do esquema todo em minúsculas. | account |
LogicalCollectionName |
Versão do nome do esquema da coleção todo em minúsculas. | accounts |
EntitySetName |
Usado para identificar coleções com a API Web. Por padrão, é o mesmo que o nome da coleção lógica. Você pode alterar o nome do conjunto de entidades atualizando programaticamente a definição da tabela. Faça essa alteração somente antes de escrever qualquer código de API Web para a tabela. Para obter mais informações, consulte o nome do conjunto de entidades. |
accounts |
Note
Ao criar uma tabela personalizada com código, você deve anexar o prefixo de personalização do publicador da solução ao SchemaName. O Dataverse não verifica se é o prefixo de personalização correto, apenas se ele tem um prefixo de personalização. Certifique-se de usar o prefixo correto porque não é possível alterá-lo mais tarde.
CollectionSchemaName, LogicalName, LogicalCollectionName e EntitySetName os valores são gerados usando o valor SchemaName.
Cada tabela também tem três propriedades que podem exibir valores localizados:
| Name | Description | Example |
|---|---|---|
DisplayName |
Normalmente, o mesmo que o nome do esquema, mas pode incluir espaços. | Conta |
DisplayCollectionName |
Uma forma plural do nome de exibição. | Contas |
Description |
Uma frase curta que descreve a tabela. | Negócio que representa um cliente ou cliente em potencial. A empresa que é cobrada em transações comerciais. |
Use esses valores localizáveis para se referir às tabelas em um aplicativo. É possível alterar esses valores a qualquer momento. Para adicionar ou editar valores localizados, consulte Traduzir texto de tabela, formulário e coluna personalizados em outros idiomas.
Chave primária
O PrimaryIdAttribute valor da propriedade é o nome lógico da coluna que serve como a chave primária para a tabela.
Por padrão, todas as tabelas incluem uma única coluna de identificador exclusivo do GUID chamada <table logical name>Id.
Nome primário
O PrimaryNameAttribute valor da propriedade é o nome lógico da coluna que armazena o valor da cadeia de caracteres que identifica o registro da tabela. Esse valor aparece em links que abrem o registro em uma interface do usuário.
Exemplo: a tabela Contato usa a coluna FullName como a coluna de nome primário.
Note
Nem todas as tabelas têm um valor para a propriedade PrimaryNameAttribute. Algumas tabelas não devem ser exibidas em uma interface do usuário.
Imagens de tabela
O valor da propriedade PrimaryImageAttribute é o nome lógico da coluna de imagem que você escolhe para representar o registro da entidade. Um aplicativo pode exibir essa imagem.
Exemplo: a coluna EntityImage da tabela de contatos pode armazenar uma imagem do contato.
Note
Essa imagem é diferente do ícone que os aplicativos controlados por modelo exibem para uma tabela. A IconVectorName propriedade contém o nome do recurso da Web SVG que define o ícone.
Para obter mais informações, consulte:
- Trabalhar com definições de coluna de imagem usando código
- Usar dados de coluna da imagem
- Exemplo: Operações de imagem usando o SDK do Dataverse para .NET
- Exemplo: Operações de imagem usando a API Web do Dataverse
Tipos de tabelas
Os recursos e o comportamento das tabelas dependem de várias propriedades da tabela. A maioria dessas propriedades são relativamente simples e têm nomes descritivos. Quatro propriedades que exigem mais explicação são: propriedade da tabela, tabelas de atividade, tabela Activityparty e tabelas filho.
Propriedade da tabela
Você pode categorizar tabelas pela forma como os dados dentro delas são de propriedade. Esse conceito é importante para entender como aplicar segurança a tabelas. A propriedade OwnershipType contém essas informações. A tabela a seguir descreve os diferentes tipos de propriedade:
| Tipo de Propriedade | Description |
|---|---|
BusinessOwned |
Os dados pertencem à unidade de negócios. Você pode controlar o acesso aos dados no nível da unidade de negócios. |
None |
Os dados não pertencem a outra tabela. |
OrganizationOwned |
Os dados pertencem à organização. Você pode controlar o acesso aos dados no nível da organização. |
UserOwned |
Os dados pertencem a um usuário ou a uma equipe. Você pode controlar ações que podem ser executadas nesses registros no nível do usuário. |
Filtered (versão prévia) |
Os registros não têm proprietário. Você pode controlar o acesso por meio de privilégios de função de segurança com base em filtros que avaliam valores de coluna. |
Quando você cria novas tabelas, as únicas opções de propriedade são: OrganizationOwned, UserOwnedou Filtered (versão prévia). Você não pode alterar essa opção depois de fazer uma escolha.
Escolha UserOwned quando os registros precisarem de propriedade do usuário ou da equipe, atribuição e compartilhamento. Escolha OrganizationOwned quando o acesso no nível da organização é suficiente. Escolha Filtered (versão prévia) quando precisar de acesso em nível de linha com base em valores de coluna, com permissões concedidas por meio de filtros de perfil de segurança. Os registros nas tabelas Filtered não têm proprietário e não podem ser atribuídos ou compartilhados.
Você também pode aplicar filtros de registro às tabelas UserOwned e OrganizationOwned para controlar o acesso em nível de linha com base em valores de coluna sem alterar os OwnershipType delas. Essas tabelas mantêm seu modelo de propriedade existente.
Saiba mais sobre a propriedade de registro filtrada:
- Propriedade de registro filtrado (versão prévia)
- Propriedade de registro filtrada usando código (versão prévia)
Tabelas de atividades
Uma atividade é uma tarefa que um usuário executa ou planeja executar. Uma atividade é qualquer ação para a qual você pode fazer uma entrada em um calendário.
As atividades são modeladas de forma diferente de outros tipos de tabelas que armazenam dados comerciais. Os dados sobre atividades são frequentemente exibidos juntos em uma lista, mas cada tipo de atividade requer propriedades exclusivas. Em vez de usar uma única tabela de atividades com todas as propriedades possíveis, use tipos separados de tabelas de atividades.
Cada uma dessas tabelas herda propriedades de uma tabela base do ActivityPointer ( tipo de entidade activitypointer da API Web). Essas tabelas têm a IsActivity propriedade definida como true.
| Tabela/ Tipo de entidade |
Nome de exibição | Description |
|---|---|---|
|
adx_inviteredemption / adx_inviteredemption |
Resgate de convite | Contém informações sobre o resgate de um convite. |
|
adx_portalcomment / adx_portalcomment |
Portal Comentário | Uma atividade que é usada para compartilhar informações entre o usuário e o cliente no portal. |
|
Mecanismo de / compromisso |
Compromisso | Compromisso representando um intervalo de tempo com horas de início e término e duração. |
|
chat / chat |
Chat do Teams | Somente para uso interno. Entidade que armazena dados de associação de registros Dynamics 365 com Microsoft Teams chat. |
|
Email / |
Atividade que é entregue usando protocolos de email. | |
|
Fax / fax |
Fax | Atividade que registra o resultado da chamada e o número de páginas para um fax e, opcionalmente, armazena uma cópia eletrônica do documento. |
|
Carta / letra |
Carta | Atividade que rastreia a entrega de uma carta. A atividade pode conter a cópia eletrônica da carta. |
|
PhoneCall / chamada telefônica |
Telefonema | Atividade para rastrear um telefonema. |
|
RecurringAppointmentMaster / recurringappointmentmaster |
Compromisso Recorrente | O Compromisso mestre de uma série de compromissos recorrentes. |
|
SocialActivity / socialactividade |
Atividade Social | Somente para uso interno. |
|
Guias / tarefa |
Tarefa | Atividade genérica representando o trabalho que precisa ser feito. |
Quando um usuário cria um registro de tabela de atividades desse tipo, o sistema cria um registro correspondente na tabela ActivityPointer com o mesmo valor na coluna de identificador exclusivo ActivityId. Você não pode criar, atualizar ou excluir instâncias da ActivityPointer tabela, mas pode recuperá-las. Esse design permite que você apresente todos os tipos de atividades em uma lista.
Você pode criar tabelas de atividades personalizadas que se comportam da mesma maneira.
Tabela ActivityParty
Use a tabela ActivityParty ( tipo de entidade activityparty da API Web) para adicionar estrutura às colunas da tabela PartyListType de atividades que incluem referências a outras tabelas. Use esta tabela ao definir valores para colunas da tabela de atividades como Email.to ou PhoneCall.from. Defina a participationtypemask coluna para definir a função que a referência desempenha. As funções incluem Sender, ToRecipiente Organizermuito mais.
Você pode consultar a tabela ActivityParty, mas não pode criar, recuperar, atualizar nem excluir uma parte da atividade fora da atividade à qual ela está relacionada.
Tabelas filho
Tabelas em que a IsChildEntity propriedade é verdadeira nunca têm privilégios definidos e nunca são de propriedade do Usuário ou da Equipe. As operações que você pode executar em uma tabela filha estão vinculadas à tabela à qual ela está associada por meio de um relacionamento muitos para um. Se puderem executar a mesma operação na tabela relacionada, os usuários só poderão executar operações em tabelas filhas. As tabelas filho são excluídas automaticamente quando o registro da tabela do qual dependem é excluído.
Por exemplo, Comentário (PostComment) e Like (PostLike) são filhos da tabela Post .
Chaves alternativas
Cada definição de chave alternativa descreve uma ou mais colunas em combinação que identificam exclusivamente um registro. Normalmente, você aplica chaves alternativas apenas para integração com sistemas externos. Esse recurso será valioso se você estiver integrando dados a um sistema que não dá suporte a chaves de identificador exclusivas do GUID. Você pode definir um único valor de coluna ou combinação de valores de coluna para identificar exclusivamente uma tabela. Adicionar uma chave alternativa impõe uma restrição de exclusividade nessas colunas. Você não pode criar ou atualizar outro registro na mesma tabela para ter os mesmos valores.
Para obter mais informações, consulte:
Estados de tabela
A maioria das tabelas tem duas propriedades para acompanhar o estado de um registro. Essas propriedades são StateCode, que aparecem como Status em aplicativos controlados por modelos e StatusCodeque aparecem como Motivo do Status em aplicativos controlados por modelos.
Ambas as propriedades contêm um conjunto de opções que exibem os valores válidos. Os StateCode valores e os StatusCode valores são vinculados para que apenas determinadas StatusCode opções sejam válidas para determinado StateCode.
Esse link pode variar de acordo com a tabela, mas o padrão comum para muitas tabelas e o padrão para tabelas personalizadas é este padrão:
| Opções do StateCode | Opções de Código de Status |
|---|---|
| 0: Ativo | 1: Ativo |
| 1: Inativo | 2: Inativo |
Algumas tabelas têm diferentes conjuntos de opções.
Exemplo: PhoneCall tabela StateCode e StatusCode opções
| Código do estado | CódigoDeStatus |
|---|---|
| 0: Abrir | 1: Abrir |
| 1: Concluído | 2: Feito 4: Recebido |
| 2: Cancelado | 3: Cancelado |
Não é possível personalizar o conjunto de códigos de estado válidos para uma tabela, mas você pode personalizar os códigos de status. Você pode adicionar mais StatusCode opções para um StateCode correspondente.
Para tabelas personalizadas, você pode definir mais critérios para transições válidas entre status.
Para obter mais informações, consulte: