Partilhar via


Rastreio de dependências para componentes de soluções

As soluções são compostas por componentes de solução. Utilize a área Soluções no Microsoft Dataverse para criar ou adicionar componentes de solução. Pode executar estas ações programaticamente através da mensagem AddSolutionComponentRequest ou de quaisquer mensagens que criam ou atualizam componentes de solução que incluam um parâmetro SolutionUniqueName.

Os componentes da solução dependem frequentemente de outros componentes da solução. Pode eliminar qualquer componente de solução que tenha dependências noutro componente de solução. Por exemplo, normalmente um friso personalizado requer recursos Web de imagem ou scripts para apresentar ícones e executar ações que utilizam scripts. Desde que o friso personalizado esteja na solução, são necessários os recursos Web específicos que utiliza. Antes de poder eliminar os recursos Web, tem de remover as referências a eles no friso personalizado. Estas dependências de componentes da solução podem ser vistas na aplicação ao clicar em Mostrar Dependências.

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

Todos os componentes de solução

A lista completa de tipos de componentes de soluções disponíveis está localizada no conjunto de opções globais componenttype do sistema. O intervalo de valores suportado para esta propriedade está disponível ao incluir o ficheiro OptionSets.cs ou OptionSets.vb no seu projeto. No entanto, muitos dos tipos de componentes de solução aí listados são apenas para uso interno e a lista não fornece informações sobre a relação entre componentes de solução.

Dependências de componentes da solução

As dependências de componentes da solução ajudam a assegurar que tem uma experiência fiável quando trabalha com soluções. Evitam que as ações que normalmente executa quebrem intencionalmente as personalizações definidas numa solução. Estas dependências são o que permite a instalação e desinstalação de uma solução gerida simplesmente ao importar ou eliminar uma solução.

O quadro de soluções rastreia automaticamente as dependências para os componentes de solução. Cada operação num componente de solução calcula automaticamente quaisquer dependências com outros componentes no sistema. A informação de dependência é utilizada para manter a integridade do sistema e impedir operações que podem conduzir a um estado inconsistente.

Como resultado do rastreio de dependências, são impostos os seguintes comportamentos:

  • A eliminação de um componente é evitada se outro componente no sistema depender dele.

  • A exportação de uma solução avisa o utilizador se faltar algum componente que possa causar falhas ao importar essa solução noutro sistema.

    Os avisos durante a exportação podem ser ignorados se o programador da solução pretender que a solução seja instalada apenas numa organização onde se espera que existam componentes dependentes. Por exemplo, quando cria uma solução concebida para ser instalada sobre uma solução "base" pré-instalada.

  • A importação de uma solução falha 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 importa uma solução gerida, todos os componentes necessários têm de corresponder ao tipo de pacote da solução. Um componente numa solução gerida só pode depender de outro componente gerido.

    Existem três tipos de dependências de componentes da solução:

    Interno da Solução
    As dependências internas são geridas pelo Dataverse. Existem quando um determinado componente da solução não pode existir sem outro componente da solução.

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

    Não Publicado
    As dependências não publicadas aplicam-se à versão não publicada de um componente de solução publicável que está a ser atualizado. Após a publicação do componente de solução, torna-se uma dependência publicada.

    As dependências internas da solução são dependências em que as ações com um componente de solução exigem uma ação para outro componente de solução. Por exemplo, se eliminar uma entidade, deve esperar que todos os atributos da entidade serão nela eliminados. Quaisquer relações entre entidades com outras entidades também serão eliminadas.

    No entanto, uma dependência interna pode levar a uma dependência publicada e ainda requerer a intervenção manual. Por exemplo, se incluir um campo de pesquisa num formulário de entidade e, em seguida, eliminar a entidade primária na relação, não poderá concluir essa eliminação enquanto não remover o campo de pesquisa do formulário de entidade relacionado e, em seguida, publicar o formulário.

    Quando executa ações programaticamente com soluções, pode utilizar mensagens relacionadas com a entidade Dependency. Consulte Dependência da Entidade para ver as mensagens que pode utilizar para identificar as dependências que podem existir antes de eliminar um componente ou desinstalar uma solução.

Componentes da Solução Comum

Estes são os componentes da solução apresentados na aplicação e os componentes com os quais trabalhará diretamente ao adicionar ou remover componentes de solução ao utilizar a página da solução. Cada um dos outros tipos de componentes de solução dependerá da existência de um ou mais destes componentes de solução.

Frisos da Aplicação (RibbonCustomization) Entidade (Entity) Relatório (Report)
Modelo de Artigo (KBArticleTemplate) Perfil de Segurança de Campo (FieldSecurityProfile) Passo de Processamento de Mensagens SDK (SDKMessageProcessingStep)
Função de Ligação (ConnectionRole) Modelo de Impressão em Série (MailMergeTemplate) Direito de Acesso (Role)
Modelo de Contrato (ContractTemplate) Conjunto de Opções (OptionSet) Ponto Final de Serviço (ServiceEndpoint)
Formulário de Entidade ou Dashboard (SystemForm) Assemblagem de Plug-in (PluginAssembly) Mapa do Site (SiteMap)
Modelo de E-mail (EmailTemplate) Processo (Workflow) Recurso Web (WebResource)

Frisos da aplicação (RibbonCustomization)

Personalizações do friso para os modelos de friso de entidade e friso de aplicação. Os frisos da aplicação não incluem definições dos frisos a nível da entidade ou do formulário.

Os frisos de aplicações personalizados têm muitas vezes dependências publicadas em recursos Web. Os recursos Web são utilizados para definir os ícones dos botões do friso e as funções JavaScript para controlar quando os elementos do friso são apresentados ou que ações são executadas quando um determinado controlo do friso é utilizado. As dependências só são criadas quando as definições do friso utilizam a diretiva $webresource: para associar o recurso Web ao friso. Mais informações: Diretiva $webresource

Modelo de artigo (KBArticleTemplate)

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

Função de ligação (ConnectionRole)

Função que descreve uma relação entre dois registos. Cada função de ligação define os tipos de registos de entidades que podem ser ligados através da função de ligação. Isto cria uma dependência publicada entre a função de ligação e a entidade.

Modelo de contrato (ContractTemplate)

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

Formulário de entidade ou dashboard (SystemForm)

Os registos de entidade de formulário do sistema são utilizados para definir formulários de entidade e dashboard. Quando um SystemForm é utilizado como um formulário de entidade, existe uma dependência interna na entidade. Quando um SystemForm é utilizado como um dashboard, não existem dependências internas. É normal os dashboards e formulários de entidade terem dependências publicadas relacionadas com o respetivo conteúdo. Um formulário de entidade pode ter campos de pesquisa que dependem de uma relação entre entidades. Os formulários de entidade e os dashboards podem conter gráficos ou subgrelhas que irão criar uma dependência publicada numa vista, que depois tem uma dependência interna numa entidade. Uma dependência publicada em recursos Web pode ser criada devido ao conteúdo apresentado no dashboard ou formulário, ou quando um formulário contém bibliotecas JavaScript. Os formulários de entidade têm dependências publicadas em quaisquer atributos que sejam apresentados como campos no formulário.

Modelo de e-mail (EmailTemplate)

Modelo que contém os atributos padrão de uma mensagem de e-mail. Normalmente, um modelo de e-mail inclui campos que inserem dados de atributos de entidades especificadas. Um modelo de e-mail pode ser ligado a uma entidade específica quando é criado para que possa haver uma dependência interna na entidade. Um modelo de e-mail global não está associado a uma entidade específica, mas pode ter publicado dependências em atributos de entidades utilizados para fornecer dados. É frequente um processo (fluxo de trabalho) ser configurado para enviar um e-mail através de um modelo de e-mail ao criar uma dependência publicada com o fluxo de trabalho.

Entidade (Entity)

A estrutura principal utilizada para modelar e gerir os dados no Dataverse. Os gráficos, formulários, relações entre entidades, vistas e atributos associados a uma entidade são eliminados automaticamente quando a entidade é eliminada devido às dependências internas entre eles. É frequentem as entidades terem dependências publicadas com processos, dashboards e modelos de e-mail.

Perfil de segurança de campo (FieldSecurityProfile)

Perfil que define o nível de acesso dos atributos seguros.

Modelo de impressão em série (MailMergeTemplate)

Modelo que contém os atributos padrão de um documento de impressão em série. Um modelo de impressão em série 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 opções utiliza um conjunto de opções para definir as opções fornecidas. Vários atributos de lista de opções podem utilizar um conjunto de opções global para as opções que fornecem serem sempre as mesmas e poderem ser mantidas num só local. Uma dependência publicada ocorre quando um atributo de lista de opções referencia um conjunto de opções global. Não é possível eliminar um conjunto de opções global que esteja a ser utilizado por um atributo da lista de opções.

Assemblagem de Plug-in (PluginAssembly)

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

Processo (Workflow)

Conjunto de regras lógicas que definem os passos necessários à automatização de um processo de negócio específico, tarefa ou conjunto de ações a executar. Os processos fornecem uma vasta 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á associado.

Relatório (Report)

Resumo de dados num esquema de leitura fácil. Um relatório tem dependências publicadas em qualquer entidade ou dados de atributos incluídos no relatório. Cada relatório também tem de ser associado a uma categoria Relatório que cria uma dependência interna num componente de solução denominado Categoria Relacionada com o Relatório (ReportCategory). Os relatórios podem ser configurados para serem sub-relatórios ao criar uma dependência publicada com o relatório principal.

Passo de processamento de mensagens SDK (SDKMessageProcessingStep)

Fase no pipeline de execução na qual um plug-in deve ser executado.

Direito de acesso (Role)

Agrupamento de privilégios de segurança. São atribuídas funções aos utilizadores que autorizam o respetivo acesso ao sistema do Dataverse. Os formulários de entidade podem ser associados a direitos de acesso específicos para controlar quem pode ver o formulário. Isto cria uma dependência publicada entre o direito de acesso e o formulário.

Nota

Só os direitos de acesso da unidade de negócio da organização podem ser adicionados a uma solução. Só um utilizador com acesso de leitura a esses direitos de acesso pode adicioná-los a uma solução.

Ponto final de serviço (ServiceEndpoint)

Ponto final de serviço que pode ser contactado.

Mapa do site (SiteMap)

Dados XML utilizados para controlar o painel de navegação da aplicação. O mapa do site pode estar ligado para apresentar um recurso Web HTML ou um ícone no mapa do site pode utilizar um recurso Web da imagem. Quando a diretiva $webresource: é utilizada para estabelecer estas associações, é criada uma dependência publicada. Mais informações: Diretiva $webresource

Recurso Web (WebResource)

Dados equivalentes a ficheiros utilizados no desenvolvimento Web. Os recursos Web fornecem componentes do lado do cliente que são utilizados para fornecer elementos de interface de utilizador personalizados. Os recursos Web podem ter dependências publicadas com formulários de entidade, frisos e o Mapa do Site. Quando a diretiva $webresource: é utilizada para estabelecer associações num friso ou no Mapa do SIte, é criada uma dependência publicada. Para mais informações, consulte Diretiva $webresource.

Nota

Os recursos Web podem depender de outros recursos Web baseados em ligações relativas. Por exemplo, um recurso Web HTML pode utilizar um recurso Web do script ou CSS. Um recurso Web Silverlight apresentado fora de um gráfico ou formulário de entidade tem de ter um recurso Web HTML para alojá-lo. Estas dependências não são rastreadas como dependências de solução.

Consulte também

Conceitos da solução
Remover dependências
Estratégia do ambiente
Trabalhar com soluções utilizando as APIs de SDK]
Referência de Entidade de Solução
Referência de Entidade SolutionComponent