Entender como as soluções gerenciadas são mescladas
Ao preparar a solução gerenciada para instalação, lembre-se de que um ambiente pode já ter várias soluções instaladas ou que outras soluções podem ser instaladas no futuro. Crie uma solução que siga as práticas recomendadas, para que a solução não interfira com outras soluções.
Os processos que o Microsoft Dataverse usa para mesclar as personalizações enfatizam a manutenção da funcionalidade da solução. Embora todos os esforços sejam feitos para preservar a apresentação, algumas incompatibilidades entre as personalizações podem exigir que a resolução computada altere alguns detalhes da apresentação para manter a funcionalidade de personalização.
Mesclar personalizações de formulário
As únicas personalizações de formulário que precisam ser mescladas são aquelas que são executadas nos formulários de entidades que já estejam no ambiente. Geralmente, isso significa que as personalizações de formulário somente precisam ser mescladas quando a solução personalizar os formulários incluídos para as entidades criadas durante a instalação do Dataverse. Uma maneira de evitar a necessidade de mesclar formulários é oferecer novos formulários para todas as entidades do Dataverse. Não há a necessidade de mesclar os formulários das entidades personalizadas, a menos que você crie uma solução que atualize ou modifique uma solução gerenciada existente que criou as entidades personalizadas e seus formulários.
Quando uma solução é empacotada como uma solução gerenciada, as definições de formulário armazenadas em FormXML são comparadas com o FormXML original e somente as diferenças são incluídas na solução gerenciada. Quando a solução gerenciada é instalada em um novo ambiente, as diferenças de personalização de formulários são mescladas com o FormXML do formulário existente para criar uma nova definição de formulário. Esta nova definição de formulário é o que o usuário visualiza e o que o personalizador de sistema pode alterar. Quando a solução gerenciada é desinstalada, somente os elementos de formulário encontrados na solução gerenciada são removidos.
A mesclagem de formulários ocorre seção a seção. Quando você adiciona novos elementos a uma guia ou seção existente, suas alterações podem afetar ou ocultar os elementos das camadas gerenciadas, inclusive quando o elemento gerenciado é atualizado. Esse comportamento ocorre porque as camadas gerenciadas estão abaixo da camada não gerenciada que você está apresentando com a personalização. Se você não deseja afetar ou ocultar elementos gerenciados no formulário, recomendamos que inclua seus novos elementos em novos elementos de contêiner, como uma seção ou guia. Isso isola seus elementos e reduz a possibilidade de afetar ou ocultar os elementos das camadas gerenciadas. Mais informações: Camadas da solução
As soluções gerenciadas que contêm formulários que usam novos direitos de acesso dependem desses direitos. É necessário incluir esses direitos de acesso com a solução gerenciada.
Quando você importa uma solução que inclui formulários de tabela, a opção Substituir Personalizações, mesmo selecionada, não se aplica. O formulário que está sendo importado é mesclado com todas as camadas de solução existentes para o formulário.
Nota
Quando uma entidade da solução gerenciada contiver vários formulários e o formulário da entidade do ambiente também contiver vários formulários, os novos formulários não serão acrescentados à parte inferior da lista de formulários disponíveis, eles serão intercalados com os formulários de entidade originais.
Identificar e resolver conflitos de mesclagem de formulários
Depois de importar uma solução que inclui um formulário, você pode notar que o formulário importado exibe uma guia chamada Guia Conflitos. Essa é uma guia gerada automaticamente quando certos componentes do formulário não podem ser mesclados. Para evitar qualquer perda de dados, os componentes do formulário que não podem ser mesclados são colocados na Guia Conflitos. Os conflitos de mesclagem geralmente acontecem quando as personalizações de origem e destino estão fora de sincronia, o que leva a personalizações de formulário conflitantes.
Evite essas situações que podem causar conflitos de mesclagem de formulário:
Você importa duas soluções diferentes que adicionam um componente, como uma guia de formulário, com o mesmo valor ordinal.
Você personaliza um componente do formulário, como uma seção, no ambiente de origem, mas também faz uma personalização igual ou semelhante ao componente no ambiente de destino. Em seguida, você exporta a personalização do ambiente de origem e a importa para o ambiente de destino.
Quando a Guia Conflitos aparece em um formulário importado, você pode mover o componente exibido nele. Depois que todos os componentes forem movidos da Guia Conflitos, você pode excluí-la ou ocultá-la.
Mesclar personalizações de navegação (SiteMap)
Quando uma solução é empacotada como gerenciada, o XML do SiteMap é comparado com o XML do SiteMap original e com todas as outras personalizações feitas ao SiteMap. Somente as diferenças são incluídas na solução gerenciada. Estas diferenças incluem itens que são modificados, movidos, adicionados ou removidos. Quando a solução gerenciada é instalada em um novo ambiente, as alterações ao SiteMap são mescladas com o XML do SiteMap encontrado para o ambiente no local onde a solução gerenciada estiver sendo instalada. Uma nova definição de SiteMap é o que os usuários visualizarão.
Neste momento, um personalizador pode exportar o SiteMap para uma solução não gerenciada e essa definição do SiteMap incluirá todos os elementos do SiteMap ativo. Um personalizador pode então modificar o SiteMap e importá-lo novamente como uma personalização não gerenciada. Posteriormente, se a solução gerenciada for desinstalada, o XML do SiteMap que foi importado com a solução gerenciada será referenciado para remover as alterações introduzidas com essa solução gerenciada. Um novo SiteMap ativo é então calculado.
Sempre que um novo elemento visível é adicionado ao SiteMap, ele será exibido na parte inferior do contêiner a que pertence. Por exemplo, uma nova área aparece na parte inferior da área de navegação. Para posicionar os elementos adicionados, é necessário exportar o SiteMap, editá-lo para definir a posição exata dos elementos e, depois, importá-lo novamente como uma solução não gerenciada.
Nota
Somente uma única personalização do SiteMap pode ser aplicada entre a publicação. Todas as personalizações do SiteMap não publicadas serão perdidas quando uma nova definição do SiteMap for importada.
Mesclar as opções do conjunto de opções
Cada nova opção do conjunto de opções é inicializada com um valor inteiro atribuído, que inclui um prefixo do valor da opção. O prefixo do valor da opção é um conjunto de cinco dígitos, acrescentado ao valor da opção. Um prefixo do valor de opção é gerado com base no prefixo de personalização do fornecedor de soluções, mas pode ser definido para qualquer valor. O prefixo do valor da opção ajuda a diferenciar as novas opções do conjunto de opções criadas no contexto de um fornecedor de soluções específico e reduz a oportunidade de colisões dos valores da opção. Usar o prefixo do valor da opção é recomendável, mas não é necessário.
Uma solução gerenciada geralmente atualiza ou adiciona opções dos conjuntos de opções que já estão no ambiente, por exemplo, os conjuntos de opções Categoria ou Setor de uma conta. Quando uma solução gerenciada altera as opções disponíveis em um conjunto de opções, todas as opções definidas na solução gerenciada estarão disponíveis no ambiente. Quando a solução gerenciada é desinstalada, as opções no conjunto de opções são retornadas para o estado original.
Mesclar privilégios de direito de acesso de segurança
Quando um direito de acesso é importado de um solução gerenciada para um ambiente, todos os privilégios adicionados manualmente desse direito de acesso são removidos. No entanto, os privilégios modificados do direito de acesso onde o nível de privilégio foi alterado, por exemplo, do escopo básico para o escopo global ou vice-versa, permanecem.
Dica
Use a mesma solução personalizada para gerenciar a atualização dos direitos de acesso. Se você usar uma nova solução personalizada para atualizar um direito de acesso que foi atualizado anteriormente em outra solução, algumas das atualizações de privilégios não serão aplicadas.
Não use uma solução personalizada para modificar direitos de acesso predefinidos. Essas atualizações serão removidas quando as funções predefinidas forem atualizadas pelo sistema. Crie uma cópia da função predefinida e gerencie a função copiada em sua solução personalizada.