Compartilhar via


Acompanhamento de dependência para componentes da solução

Este tópico se aplica ao Dynamics 365 Customer Engagement (local). Para a versão Power Apps deste tópico, consulte: Acompanhamento de dependência para componentes da solução.

As soluções são feitas de componentes da solução. Você usará a área Soluções no Dynamics 365 Customer Engagement (local) para criar ou adicionar componentes de solução. Você pode executar essas ações programaticamente usando a AddSolutionComponentRequest mensagem ou qualquer mensagem que crie ou atualize componentes da solução que incluam um SolutionUniqueName parâmetro.

Os componentes da solução geralmente dependem de outros componentes da solução. Não é possível excluir nenhum componente da solução que tenha dependências em outro componente da solução. Por exemplo, uma faixa de opções personalizada normalmente requer recursos da Web de imagem ou script para exibir ícones e executar ações usando scripts. Desde que a faixa de opções personalizada esteja na solução, os recursos da Web específicos que ele usa são necessários. Antes de excluir os recursos da Web, você deve remover referências a eles na faixa de opções personalizada. Essas dependências de componente de solução podem ser exibidas no aplicativo clicando em Mostrar Dependências.

Este tópico descreve os tipos de componentes de solução que você pode incluir em suas soluções e como eles dependem uns dos outros.

Todos os componentes da solução

A lista completa de tipos de componentes de soluções disponíveis está localizada no conjunto de opções global do sistema componenttype . Você pode usar o https://[ORGANIZATION_NAME].api.crm.dynamics.com/api/data/v9.0/GlobalOptionSetDefinitions(Name='componenttype')ponto de extremidade REST para consultar esses dados e ver toda a componenet usando código. O intervalo de valores com suporte para essa propriedade está disponível incluindo o arquivo SampleCode\CS\HelperCode\OptionSets.cs ou SampleCode\VB\HelperCode\OptionSets.vb em seu projeto. No entanto, muitos dos tipos de componente de solução listados existem apenas para uso interno e a lista não fornece informações sobre as relações entre os componentes da solução.

Dependências de componente da solução

As dependências de componente da solução ajudam a garantir que você tenha uma experiência confiável trabalhando com soluções. Elas impedem que as ações que você normalmente executa de interromper involuntariamente as personalizações definidas em uma solução. Essas dependências são o que permitem que uma solução gerenciada seja instalada e desinstalada simplesmente importando ou excluindo uma solução.

A estrutura de soluções controla automaticamente as dependências dos componentes da solução. Cada operação em um componente de solução calcula automaticamente quaisquer dependências para outros componentes no sistema. As informações de dependência são usadas para manter a integridade do sistema e impedir operações que possam levar a um estado inconsistente.

Como resultado do acompanhamento de dependência, os seguintes comportamentos são impostos:

  • A exclusão de um componente será evitada se outro componente no sistema depender dele.

  • A exportação de uma solução avisará o usuário se houver componentes ausentes que possam causar falha ao importar essa solução em outro sistema.

    Avisos durante a exportação podem ser ignorados se o desenvolvedor da solução pretende que a solução seja instalada apenas em uma organização em que os componentes dependentes devem existir. Por exemplo, quando você cria uma solução que foi projetada para ser instalada em uma solução "base" pré-instalada.

  • A importação de uma solução falhará se todos os componentes necessários não estiverem incluídos na solução e também não existirem no sistema de destino.

    • Além disso, quando você importa uma solução gerenciada, todos os componentes necessários devem corresponder ao tipo de pacote da solução. Um componente em uma solução gerenciada só pode depender de outro componente gerenciado.

    Há três tipos de dependências de componente de solução:

    Solução Interna
    As dependências internas são gerenciadas pelo Dynamics 365 Customer Engagement (local). Eles existem quando um componente de solução específico não pode existir sem outro componente de solução.

    Publicado
    As dependências publicadas são criadas quando dois componentes da solução estão relacionados entre si e depois publicados. Para remover esse tipo de dependência, a associação deve ser removida e as entidades publicadas novamente.

    Inédito
    Dependências não publicadas se aplicam à versão não publicada de um componente de solução publicável que está sendo atualizado. Depois que o componente da solução é publicado, ele se torna uma dependência publicada.

    Dependências internas da solução são dependências em que ações com um componente de solução exigem uma ação para outro componente da solução. Por exemplo, se você excluir uma entidade, deverá esperar que todos os atributos de entidade sejam excluídos com ela. Todas as relações de entidade com outras entidades também serão excluídas.

    No entanto, uma dependência interna pode levar a uma dependência publicada e ainda exigir intervenção manual. Por exemplo, se você incluir um campo de pesquisa em um formulário de entidade e excluir a entidade primária na relação, não poderá concluir essa exclusão até remover o campo de pesquisa do formulário de entidade relacionado e publicar o formulário.

    Ao executar ações programaticamente com soluções, você pode usar mensagens relacionadas à Dependency entidade. Consulte a Entidade de Dependência para obter mensagens que você pode usar para identificar dependências que podem existir antes de excluir um componente ou desinstalar uma solução.

Verificar se há dependências de componente da solução

Ao editar soluções, você pode descobrir que não pode excluir um componente da solução porque ele tem uma dependência publicada com outro componente de solução. Ou talvez você não consiga desinstalar uma solução gerenciada porque um dos componentes na solução gerenciada foi usado em uma personalização em outra solução não gerenciada.

A tabela a seguir lista as mensagens que você pode usar para recuperar dados sobre dependências de componentes da solução.

Message Description
RetrieveDependentComponentsRequest Retorna uma lista de dependências para componentes de solução que dependem diretamente de um componente da solução.

Por exemplo, quando você usa essa mensagem para um componente de solução de conjunto de opções global, os registros de dependência para componentes de solução que representam quaisquer atributos de conjunto de opções que referenciam o componente de solução do conjunto de opções global são retornados.

Quando você usa essa mensagem para o registro de componente da solução para a entidade de conta, os registros de dependência de todos os componentes da solução que representam atributos, exibições e formulários usados para essa entidade são retornados.
RetrieveRequiredComponentsRequest Retorna uma lista das dependências dos componentes da solução dos quais outro componente da solução depende diretamente. Essa mensagem fornece o inverso da RetrieveDependentComponentsRequest mensagem.
RetrieveDependenciesForDeleteRequest Retorna uma lista de todas as dependências para componentes de solução que podem impedir a exclusão de um componente de solução.
RetrieveDependenciesForUninstallRequest Retorna uma lista de todas as dependências para componentes de solução que podem impedir a desinstalação de uma solução gerenciada.

Componentes comuns da solução

Esses são os componentes da solução exibidos no aplicativo e os componentes com os quais você trabalhará diretamente ao adicionar ou remover componentes da solução usando a página da solução. Cada um dos outros tipos de componentes da solução dependerá de um ou mais desses componentes de solução para existir.

Faixas de opções de aplicativo (RibbonCustomization)

Personalizações de faixa de opções para os modelos de faixa de opções de entidade e faixa de opções do aplicativo. As faixas de opções de aplicativo não incluem definições de faixas de opções no nível de entidade ou formulário.

Faixas de opções de aplicativo personalizadas frequentemente publicam dependências em recursos da Web. Os recursos da Web são usados para definir ícones de botão de faixa de opções e funções JavaScript para controlar quando os elementos da faixa de opções são exibidos ou quais ações são executadas quando um controle de faixa de opções específico é usado. As dependências só são criadas quando as definições da faixa de opções usam a $webresource: diretiva para associar o recurso Web à faixa de opções. Mais informações: diretiva $webresource

Modelo de artigo (KBArticleTemplate)

Modelo que contém os atributos padrão de um artigo. Há sempre uma dependência interna entre o modelo de artigo e a entidade KbArticle.

Função de conexão (ConnectionRole)

Função que descreve uma relação entre dois registros. Cada função de conexão define quais tipos de registros de entidade podem ser vinculados usando a função de conexão. Isso cria uma dependência publicada entre a função de conexão e a entidade.

Modelo de contrato (ContractTemplate)

Modelo que contém os atributos padrão de um contrato. Há sempre uma dependência interna entre o modelo de contrato e a entidade de contrato.

Formulário de painel ou entidade (SystemForm)

Os registros de entidade de formulário do sistema são usados para definir dashboards e formulários de entidade. Quando um SystemForm é usado como um formulário de entidade, há uma dependência interna na entidade. Quando um SystemForm é usado como um dashboard, não há dependências internas. Formulários de entidade e dashboards geralmente publicam dependências relacionadas ao conteúdo. Um formulário de entidade pode ter campos de pesquisa que dependem de uma relação de entidade. Os dashboards e os formulários de entidade podem conter gráficos ou subgrids que criarão uma dependência publicada em um modo de exibição, que, em seguida, tem uma dependência interna em uma entidade. Uma dependência publicada em recursos da Web pode ser criada devido ao conteúdo exibido no painel ou formulário ou quando um formulário contém bibliotecas JavaScript. Os formulários de entidade publicaram dependências em todos os atributos exibidos como campos no formulário.

Modelo de email (EmailTemplate)

Modelo que contém os atributos padrão de uma mensagem de email. Um modelo de email normalmente inclui campos que inserem dados de atributos de entidade especificados. Um modelo de email pode ser vinculado a uma entidade específica quando ele é criado para que possa haver uma dependência interna na entidade. Um modelo de email global não está associado a uma entidade específica, mas pode ter publicado dependências em atributos de entidade usados para fornecer dados. Um processo (fluxo de trabalho) frequentemente é configurado para enviar um email usando um modelo de email criando uma dependência publicada com o fluxo de trabalho.

Entidade (Entidade)

A estrutura primária usada para modelar e gerenciar dados no Dynamics 365 Customer Engagement (local). Gráficos, formulários, relações de entidade, exibições e atributos associados a uma entidade são excluídos automaticamente quando a entidade é excluída devido às dependências internas entre eles. As entidades frequentemente publicam dependências com processos, dashboards e modelos de email.

Perfil de segurança de campo (FieldSecurityProfile)

Perfil que define o nível de acesso para atributos protegidos.

Modelo de mala direta (MailMergeTemplate)

Modelo que contém os atributos padrão de um documento de mala direta. Um modelo de mala direta tem uma dependência publicada na entidade à qual está associado.

Conjunto de opções (OptionSet)

Um conjunto de opções define um conjunto de opções. Um atributo de lista de seleção usa um conjunto de opções para definir as opções fornecidas. Vários atributos de lista de seleção podem usar um conjunto de opções global para que as opções fornecidas sejam sempre as mesmas e possam ser mantidas em um só lugar. Uma dependência publicada ocorre quando um atributo de lista de seleção faz referência a um conjunto de opções global. Você não pode excluir um conjunto de opções global que está sendo usado por um atributo de lista de seleção.

Assembly de plug-in (PluginAssembly)

Assembly que contém um ou mais tipos de plug-in. Os plug-ins são registrados em eventos normalmente associados a uma entidade. Isso cria uma dependência publicada.

Processo (fluxo de trabalho)

Conjunto de regras lógicas que definem as etapas necessárias para automatizar um processo de negócios específico, tarefa ou conjunto de ações a serem executadas. Os processos fornecem uma ampla gama de ações que criam dependências publicadas em qualquer outro componente de solução referenciado pelo processo. Cada processo também tem uma dependência publicada na entidade à qual está associada.

Relatório (Relatório)

Resumo de dados em um layout fácil de ler. Um relatório publicou dependências em qualquer entidade ou dados de atributo incluídos no relatório. Cada relatório também deve ser associado a uma categoria de relatório criando uma dependência interna em um componente de solução chamado Report Related Category (ReportCategory). Os relatórios podem ser configurados para serem sub-relatórios criando uma dependência publicada com o relatório pai.

Etapa de processamento de mensagens do SDK (SDKMessageProcessingStep)

Estágio no pipeline de execução que um plug-in deve executar.

Função de segurança (Função)

Agrupamento de privilégios de segurança. Os usuários recebem funções que autorizam seu acesso ao sistema do Dynamics 365 Customer Engagement (local). Formulários de entidade podem ser associados a funções de segurança específicas para controlar quem pode exibir o formulário. Isso cria uma dependência publicada entre a função de segurança e o formulário.

Observação

Somente as funções de segurança da unidade de negócios da organização podem ser adicionadas a uma solução. Somente um usuário com acesso de leitura a essas funções de segurança pode adicioná-lo a uma solução.

Ponto de extremidade de serviço (ServiceEndpoint)

Ponto de extremidade de serviço que pode ser contatado.

Mapa do site (SiteMap)

Dados XML usados para controlar o painel de navegação do aplicativo. O mapa do site pode estar vinculado para exibir um recurso da Web HTML ou um ícone no mapa do site pode usar um recurso da Web de imagem. Quando a $webresource: diretiva é usada para estabelecer essas associações, uma dependência publicada é criada. Mais informações: diretiva $webresource

Recurso da Web (WebResource)

Dados equivalentes aos arquivos usados no desenvolvimento da Web. Os recursos da Web fornecem componentes do lado do cliente que são usados para fornecer elementos de interface do usuário personalizados. Os recursos da Web podem ter publicado dependências com formulários de entidade, faixas de opções e o SiteMap. Quando a $webresource: diretiva é usada para estabelecer associações em uma faixa de opções ou no SiteMap, uma dependência publicada é criada. Para obter mais informações, consulte $webresource diretiva.

Observação

Os recursos da Web podem depender de outros recursos da Web com base em links relativos. Por exemplo, um recurso da Web HTML pode usar um recurso web de script ou CSS. Um recurso da Web do Silverlight exibido fora de um formulário ou gráfico de entidade deve ter um recurso da Web HTML para hospedá-lo. Essas dependências não são controladas como dependências de solução.

Consulte também

Empacotar e distribuir extensões com a solução do Dynamics 365 Customer Engagement (on-premises)
Introdução às soluções
Planeje o desenvolvimento da solução
Criar, exportar ou importar uma solução não gerenciada
Criar, instalar e atualizar uma solução gerenciada
Criar, instalar e atualizar uma solução gerenciada
Desinstalar ou excluir uma solução
Entidades de solução