Configuração de tabelas
A seção de configuração de tabelas do modelo identifica os detalhes das decisões de design que influenciam a qualidade geral do modelo de dados e ajuda a evitar erros comuns de configuração de tabelas do Common Data Model. Você deve responder às perguntas a seguir nos slides de configuração da tabela de modelos.
| Pergunta | Por que isso é importante |
|---|---|
| Você removeu todas as opções desnecessárias ao criar uma nova tabela? | Todas as opções desnecessárias (como anotações e conexões) devem ser desmarcadas ao se criar uma nova tabela. Caso contrário, essas opções podem criar atributos e relações desnecessários que talvez afetem a experiência do usuário. Essas opções podem ser adicionadas posteriormente. |
| Você está usando recursos prontos, em vez de criar novas colunas (por exemplo, "Enviando email" ou "Tabela de atividades" para oferecer suporte à lista de participantes)? | Quando você precisar de colunas como Participantes, Até, De e Início agendado, deverá usar uma tabela de atividades personalizada. As tabelas de atividades personalizadas contêm várias colunas de atividades padrão (como Até, De e assim por diante) que podem ser úteis em cenários específicos. Se você precisar enviar emails para o registro de uma tabela personalizada, habilite-o para emails de forma que a coluna de endereço de email seja automaticamente adicionada. |
| Você usa relações N:N? | Os relacionamentos N:N (muitos para muitos) são leves, mas têm extensibilidade limitada, e pode ser difícil importar a associação de dados entre dois registros. |
| Em vez de relações N:N, você já pensou em usar tabelas associativas personalizadas? | Uma alternativa às relações N:N padrão, é usar uma tabela associativa, também conhecida como tabela de interseção ou uma relação manual de muitos para muitos. Em vez da relação N:N padrão, você pode criar uma tabela associativa entre as duas tabelas relacionadas com uma coluna de pesquisa que faz referência a cada lado da relação. Essa abordagem permite criar mais colunas na relação para descrevê-la. Lembre-se de que isso torna a experiência do usuário mais complicada do que em uma relação N:N normal. |
| Você aproveita os mapeamentos de colunas nas relações das tabelas? | Ao criar uma relação, você pode especificar mapeamentos de coluna para preencher colunas automaticamente na tabela relacionada. Essa abordagem é útil quando você precisa definir valores comuns entre registros pai e filho (como preencher automaticamente o endereço de um contato quando ele é criado por meio de uma conta primária). No entanto, ela não deve ser usada para criar dados duplicados para colunas críticas. Em vez disso, considere alternativas como usar formulários de visualização rápida para exibir atributos somente leitura de um pai no formulário de um registro filho. |
| Você usa um único fornecedor e um prefixo personalizado para a personalização? | Evite ter vários fornecedores com o mesmo nome técnico, mas com GUIDs diferentes. Crie o fornecedor do projeto em um único ambiente e depois implante-o em outros ambientes de desenvolvimento com uma solução não gerenciada. Se houver personalizações vindo de diferentes ambientes com o mesmo fornecedor de soluções (nome e nome do sistema), os componentes, como tabelas e colunas, também deverão ser verdadeiramente exclusivos (mesmo GUID) para evitar problemas de implantação. Se o mesmo nome de esquema for usado em uma mesma coluna criada separadamente em dois ambientes, a importação da solução falhará quando você importar a coluna para o ambiente. |
Colunas de opções, tabelas personalizadas e localização
As colunas de opções são colunas de lista suspensa que ajudam a padronizar a captura de dados no Dynamics 365 e tornam a pesquisa de registros muito mais conveniente. Se todos os itens usarem colunas de texto, você terá eventualmente diferenças significativas de grafia e abreviações dos mesmos valores em vários registros, dificultando a emissão de relatórios e a usabilidade. No entanto, é necessário bastante cuidado para ter certeza que as colunas de opções sejam usadas da maneira ideal. Você deve responder às perguntas a seguir na seção de colunas de opções, tabelas personalizadas e localização do documento de modelo.
| Pergunta | Por que isso é importante |
|---|---|
| Você está usando tabelas personalizadas para substituir colunas de opções? | Ao definir uma lista das opções a serem selecionadas por um usuário, você tem duas opções: usar uma coluna de opções ou definir uma tabela personalizada com uma lista de registros e substituir as colunas de opções por uma coluna de pesquisa. Ao decidir entre colunas de opções e colunas de pesquisa, considere os seguintes fatores: os valores das colunas de opções podem ser traduzidos para vários idiomas, permitindo que o usuário veja os valores no próprio idioma. As opções (colunas de múltipla escolha) podem exibir vários valores em uma única coluna ou em uma linha. As colunas de pesquisa podem ser desativadas, deixando o valor em registros mais antigos para fins históricos. Os valores das colunas de opções só podem ser excluídos. Os registros de tabelas personalizadas usados para as opções da coluna de pesquisa podem ser modificados, adicionados e excluídos por usuários que não são administradores. Os valores das colunas de opções precisam ser adicionados ou alterados por administradores e incluídos nas práticas de ALM (gerenciamento do ciclo de vida do aplicativo) em uso. Os valores das colunas de opções são transportados com as soluções. É necessário criar e manter os registros de tabelas personalizadas usados em colunas de pesquisa em cada ambiente individualmente ou estabelecer processos de migração de dados para manter os dados das tabelas personalizadas sincronizados entre ambientes. As tabelas personalizadas são mais adequadas para grandes quantidades de opções, pois fornecem uma pesquisa mais robusta do que colunas de opções. |
| Você usa atributos de número inteiro do idioma de formato para filtrar registros com base no idioma do usuário? | A criação de uma coluna de número inteiro com a opção de formato de idioma exibe uma lista dos idiomas provisionados para sua organização. Usar uma coluna de número inteiro para idioma permite filtrar registros com base no idioma do usuário atual. Os valores são exibidos em uma lista suspensa de nomes de idiomas, mas os dados são armazenados como um número que usa códigos de LCID. Os códigos de idioma são IDs de localidade de quatro ou cinco dígitos. Os valores válidos de ID de localidade podem ser encontrados na página de valores de IDs de localidade da Microsoft. |
Segurança, relações e desempenho
A segurança é abordada com mais detalhes no módulo Revisão do modelo de segurança para as soluções do Dynamics 365. Para os fins deste módulo, você avaliará o impacto do design do modelo de dados no modelo de segurança. Você deve responder às perguntas a seguir na seção de segurança, relações e desempenho do modelo do workshop do modelo de dados.
| Pergunta | Por que isso é importante |
|---|---|
| Você considerou usar tabelas pertencentes a usuários/equipes em vez de tabelas pertencentes à organização? | Geralmente, os dados de referência não exigirão propriedade se não for necessário limitar a visibilidade do registro a usuários ou grupos específicos. Em caso de dúvida, a melhor opção é criar a tabela com uma propriedade de usuário ou equipe, pois você sempre poderá conceder acesso de nível organizacional a esses registros para os usuários. Não é possível alterar a escolha de propriedade da organização e talvez você precise restringir o acesso a alguns registros quando sua empresa crescer. Por esse motivo, a opção de Usuário ou Equipe deve ser selecionada porque oferece a flexibilidade máxima para alterações comerciais futuras. |
| Você analisou as relações no seu modelo de dados e o impacto na segurança? | Os comportamentos dos relacionamentos que afetam a segurança são: Atribuir (em cascata – de pai para filho), Compartilhar (em cascata – de pai para filho), Descompartilhar (em cascata – de pai para filho) e Reassociar (sem cascata – ocorre quando o registro filho está associado ao pai, o que é importante para o compartilhamento implícito). |
| Você usa a segurança no nível de campo? | A segurança no nível de campo é uma boa opção para proteger dados em campos específicos. No entanto, o uso excessivo de campos protegidos pode afetar o desempenho e tornar a administração mais complexa. |
| Você considerou transferir dados confidenciais para uma tabela separada? | A segurança de campo opera em nível global e não é sensível ao contexto de usuário/unidade de negócios (a menos que essas colunas sejam compartilhadas registro a registro), enquanto o uso de uma tabela relacionada personalizada para dados confidenciais oferece a flexibilidade adicional de diferentes níveis de permissão para dados confidenciais entre unidades de negócios. |
| Você monitora ou tem convenções de nomenclatura para as colunas de informações pessoais confidenciais? | As colunas que contêm informações pessoais devem receber atenção extra para manter a conformidade com as regulamentações de proteção de dados. Uma abordagem para gerenciar as colunas de informações pessoais é estabelecer convenções de nomenclatura, por exemplo, adicionando "pessoa" ou "informações confidenciais" antes do nome do esquema dessas colunas. |
Colunas - Chaves alternativas e colunas calculadas e acumuladas
Nesta seção, você pode definir detalhes sobre diversos tipos de coluna respondendo às perguntas a seguir.
| Pergunta | Por que isso é importante |
|---|---|
| Você está usando chaves alternativas? | As chaves alternativas permitem ao administrador definir chaves compostas incluindo várias colunas da tabela. As chaves alternativas impõem exclusividade ao registro. Os valores de chave são indexados, o que aumenta a velocidade da pesquisa e torna a importação de dados mais eficiente ao permitir a correspondência entre registro e atualização com base no valor da chave alternativa. Tenha cuidado ao usar esse recurso em um sistema existente que possa interromper uma lógica de criação de registros que não forneça valores exclusivos. As chaves alternativas podem ser valiosas para aproveitar os recursos de upsert em cenários de integração: a chave fornecida permite ao sistema saber se deve criar um registro ou atualizar um existente. |
| Você está usando colunas calculadas? | O excesso do uso de JavaScript, regras de negócios e plug-ins pode degradar o desempenho do sistema. As colunas calculadas podem fazer cálculos em tempo real quando os dados são exibidos e podem ser mais eficientes. Como o valor só é atualizado na recuperação, verifique se você não precisará de atualizações em tempo real quando os valores de origem calculados mudarem. |
| Você está usando colunas cumulativas? | Ao acumular valores de registros filho para o pai, muitos clientes usam plug-ins síncronos. Essa abordagem gera uma sobrecarga adicional sobre o desempenho quando superutilizada. Usando as colunas cumulativas padrão, você pode evitar plug-ins desnecessários, simplificar atualizações futuras e melhorar o desempenho do sistema. Lembre-se de que as colunas cumulativas só efetuam cálculos a cada 12 horas por padrão. Portanto, se você tem dados que mudam rapidamente, as colunas cumulativas padrão talvez não forneçam informações atualizadas e é melhor usar plug-ins. No entanto, ao usar colunas de valor acumulado para dados que mudam mais lentamente, você melhorará o desempenho. |
| Você verificou se o comprimento mínimo ou máximo ou os valores de cada coluna estão consistentes com os requisitos comerciais e com integrações ou mapeamentos de dados? | Se o cliente migrar dados do Dynamics 365 para outros sistemas ou integrar dados a eles, você precisará verificar se os comprimentos de coluna configurados são consistentes com os comprimentos das colunas de dados em outros sistemas. |
| Você considerou usar uma coluna somente de data ou com data independente de fuso horário? | O comportamento da coluna de data padrão é Local do Usuário. Essa opção exibe os valores de data e hora no fuso horário do usuário que está exibindo o registro. Isso é benéfico com datas em que a hora específica é importante, mas pode causar problemas para outros tipos de datas. Imagine que o aniversário está no formato de usuário local. Se o aniversário for no dia 5 de janeiro às 12h, usuários em um fuso horário no oeste do criador do registro verão a data como sendo no dia anterior às 23h. O formato somente data armazena somente o valor de data e o formato independente de fuso horário armazena a hora, mas todos os usuários veem o valor correto da data. |
Auditoria
Auditorias são importantes para monitorar a segurança, bem como para solucionar problemas com dados. Na seção de auditoria do modelo do workshop do modelo de dados, registre os seguintes detalhes sobre as configurações de auditoria no ambiente do cliente:
| Pergunta | Por que isso é importante |
|---|---|
| Você configurou a auditoria? | Muitos clientes que pressupõem que a auditoria foi configurada não têm realmente uma estratégia de auditoria abrangente. A auditoria não está habilitada para tabelas por padrão. Recomendamos que você só habilite a auditoria para as colunas específicas que deseja monitorar. É fácil esquecer de ativar a auditoria ao adicionar uma tabela. Quando isso acontece, se algum dado for excluído posteriormente, o administrador descobrirá que não existem logs de auditoria e não poderá verificar quem excluiu os dados. |
| Você exclui logs de auditoria periodicamente? | Os dados de logs de auditoria são acumulados e atingem grandes volumes ao longo do tempo, devendo ser excluídos periodicamente para economizar armazenamento. |
| Você tem um processo em vigor para limpar dados de log periodicamente? | Os dados de logs de auditoria são acumulados e atingem grandes volumes ao longo do tempo, devendo ser excluídos periodicamente para economizar armazenamento. |
| Você tem um processo em vigor para arquivar dados transacionais periodicamente? | Os dados transacionais importados ao longo de vários meses podem chegar a grandes quantidades, impactando o desempenho do sistema e aumentando os custos da capacidade de armazenamento. Defina políticas de retenção para todos os dados transacionais não acionáveis para que os dados fora do período de retenção sejam arquivados ou excluídos do sistema. Os trabalhos do sistema de exclusão em massa podem ser usados para excluir automaticamente registros de forma programada. |
Exibição ou integração de dados externos
Muitas implantações do Dynamics 365 incluem integrações com outros sistemas, ampliando o modelo de dados para além do Dataverse. Muitas migrações de dados podem ser substituídas por opções mais flexíveis, o que reduzirá o tamanho do banco de dados e melhorará o desempenho do sistema. Responda às perguntas a seguir nesta seção do modelo do workshop do modelo de dados.
| Pergunta | Por que isso é importante |
|---|---|
| Você copia dados externos em tabelas do Dynamics 365? | A integração de dados disponibiliza dados para o Dataverse e fornece aos usuários do Dynamics 365 acesso a dados do sistema externo. No entanto, as integrações de dados físicos podem apresentar problemas: grandes migrações e integrações de dados aumentam significativamente o tamanho e o custo da capacidade de armazenamento do sistema. Grandes migrações de dados são demoradas e podem atrasar a implantação do aplicativo. Grandes migrações e integrações de dados criam cópias duplicadas de dados confidenciais do sistema, algo que diretores de segurança e de conformidade podem reprovar. Integrações de dados grandes e de execução frequente podem degradar o desempenho do sistema. |
| Você considerou usar aplicativos de tela do Microsoft Power Apps para exibir dados externos? | Você pode inserir aplicativos de tela do Power Apps nos formulários dos aplicativos baseados em modelos do Dynamics 365 usando um dos mais de 300 conectores padrão disponíveis e oferecendo assistentes convenientes para simplificar as tarefas comuns dos usuários. Como os aplicativos de tela também podem criar registros em outros sistemas usando conectores, eles são a ponte ideal entre aplicativos sem a necessidade de copiar dados fisicamente. |
| Você considerou usar o Power Apps component framework para exibir dados externos? | Os controles do Power Apps component framework permitem aos administradores substituir controles do sistema por controles personalizados e exibir dados externos. |
| Você considerou inserir blocos do Microsoft Power BI para exibir dados externos? | Inserindo blocos do Power BI nos formulários dos aplicativos baseados em modelos do Dynamics 365, você pode habilitar a exibição de dados armazenados em outros sistemas e filtrá-los de acordo com o contexto de um registro e eliminar a necessidade de copiar dados para o Dynamics 365. |
| Você usa tabelas virtuais? | As tabelas virtuais não contêm dados; elas se conectam a uma fonte externa e exibe dados como se eles residissem no Dataverse. Esses dados estão disponíveis para exibições, subgrades e consultas de localização avançada. No momento, as tabelas virtuais dão suporte apenas à leitura de dados e todos os dados das tabelas virtuais são visíveis para todos os usuários do sistema. Se a segurança granular for necessária, você deverá considerar outras opções. |
| Você considerou usar a exportação para o Azure data Lake ou serviços de exportação de dados se precisar de dados do Dynamics para fins de BI externa? | O serviço Exportar para o Data Lake é um pipeline para a exportação contínua de dados do Dataverse para o Microsoft Azure Data Lake Storage Gen2. O serviço Exportar para o Data Lake foi projetado para grandes análises de Big Data da empresa e oferece alta disponibilidade escalonável com recursos de recuperação de desastres. Os dados são armazenados no formato do Common Data Model, que fornece consistência semântica entre diferentes aplicativos e implantações. O serviço de exportação do Dynamics sincroniza os dados do Dynamics 365 com um banco de dado SQL do Azure. Isso é ideal para a emissão de relatórios de grandes conjuntos de dados do Dynamics, pois limita o número de registros que podem ser retornados usando uma consulta direta do Power BI em conexões diretas com o Dynamics 365. A emissão de relatórios de um banco de dados externo também é preferível do ponto de vista do desempenho. |
Experiência do usuário
Embora o ponto principal do modelo de dados seja compreender como as tabelas se relacionam e como os dados fluem pelo sistema, o modelo de dados precisa ser influenciado pela experiência do usuário para conseguir a adoção máxima do sistema. A forma como os dados são modelados no Dynamics 365 pode impactar profundamente a experiência do usuário e a simplicidade do uso do aplicativo. Reserve tempo suficiente para "limpar" os dados das colunas e tabelas para evitar confusão sobre quais dados usar. Responda às perguntas a seguir na seção de experiência do usuário do workshop do modelo de dados.
| Pergunta | Por que isso é importante |
|---|---|
| Você excluiu colunas e relacionamentos não usados da pesquisa? | Definir uma coluna como não pesquisável excluirá a coluna e os relacionamentos do designer do filtro Localização Avançada e ajudará a facilitar a localização de informações pelos usuários. Limitar as colunas na pesquisa rápida "Localizar" somente às mais importantes ajudará a tornar a pesquisa mais rápida. |
| Você adicionou um prefixo às colunas não usadas (por exemplo, "ZZ") para que elas apareçam no final da lista? | Tornar as colunas não pesquisáveis não as exclui do design do layout da exibição. Uma abordagem para simplificar a criação de exibições é adicionar o prefixo "ZZ" ou outra notação padronizada aos nomes de exibição da coluna de modo que eles apareçam no final da lista alfabética e não sobrecarreguem os usuários. |
| Você adotou uma convenção de nomenclatura de metadados consistente a fim de simplificar a experiência do usuário? | Ao elaborar um modelo de dados, você deve criar convenções de nomenclatura consistentes para ter rótulos uniformes e compreensíveis. Essa noção também se aplica aos nomes do esquema de colunas exibidos para desenvolvedores ou usuários acessando os dados por meio de APIs (por exemplo, usando o Power BI). |
| Você adotou um procedimento consistente de gerenciamento de metadados (por exemplo, adicionando novas colunas) para evitar conflitos e duplicações? | Quando várias equipes ou fluxos de projeto trabalham em uma única implementação, é particularmente importante ter uma governança de gerenciamento de metadados em vigor para produzir um modelo de dados consistente e evitar possíveis duplicações de coluna. |
Ao final do workshop, o arquiteto de soluções deve explicar as próximas etapas e as ações que o cliente e o parceiro precisam executar. Explique que as conclusões e as recomendações serão enviadas a todos e que uma reunião de acompanhamento será marcada com o cliente para monitorar o status das ações, se necessário.