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.
Se você adicionar uma tabela a uma solução e exportar essa solução, a tabela e todos os ativos relacionados são exportados nessa solução. Esses ativos incluem colunas (atributos), formulários, exibições, relacionamentos e visualizações e os outros ativos que são empacotados na tabela. Exportar todos os objetos significa que você pode modificar involuntariamente os objetos na implantação de destino, ou transferir dependências não intencionais.
Para resolver as dependências, você pode criar e publicar os patches de solução que contêm os subcomponents das tabelas, em vez de publicar toda a tabela e seus ativos. A solução original e um ou mais patches relacionados podem ser acumulados (mesclados) mais tarde em uma versão atualizada da solução, que poderá substituir a solução original na organização Microsoft Dataverse de destino.
Patches
Você pode aplicar patches em soluções gerenciadas e não gerenciadas e incluir somente as alterações das tabelas e os ativos relacionados da tabela. Os patches não contém nenhum componente ou relacionamento de sistema não personalizado do qual ele depende porque esses componentes já existem na organização implementada. Em algum momento do ciclo de desenvolvimento, você pode acumular os patches em uma nova versão da solução para substituir a solução original a partir da qual os patches foram criados.
Os patches são armazenados no banco de dados do Dataverse como registros de tabela do Solution. Um atributo não nulo ParentSolutionId indica que a solução é um patch. Os patches podem ser criados e gerenciados pelo SDK para .NET ou APIs da Web, que são úteis para desenvolver a automação como um script de instalação do produto. No entanto, o aplicativo Web Dataverse fornece diversos formulários Web que permitem criar e gerenciar patches de forma interativa.
- Os patches podem ser criados a partir de uma solução primária usando CloneAsPatchRequest ou Ação CloneAsPatch.
- O patch primário não pode ser um patch.
- Os patches podem ter apenas uma solução base.
- Um patch cria uma dependência, em nível de solução, em sua solução primária.
- Você só pode instalar um patch se a solução base estiver presente.
- Não é possível instalar um patch a menos que o nome exclusivo ou número da versão primária ou secundária da solução primária, conforme identificado pelo
ParentSolutionId, não corresponda àqueles da solução primária instalada na organização de destino. - A versão do patch deve ter o mesmo número principal e secundário, mas um número superior de versão e compilação, que o número da versão principal da solução. O nome de exibição pode ser diferente.
- Se uma solução tiver patches, os patches subsequentes precisam ter um número de versão numericamente superior a qualquer patch existente dessa solução.
- Os patches oferecem suporte às mesmas operações que as soluções como, por exemplo, atualização aditiva, mas não remoção. Não é possível remover componentes de uma solução usando um patch. Para remover componentes de uma solução, execute uma atualização.
- Os patches exportados como gerenciados devem ser importados em uma solução gerenciada primária. A regra é que a proteção do patch (gerenciado ou não gerenciado) deve corresponder a seu pai.
- Não utilize patches não gerenciados para fins de produção.
As ferramentas SolutionPackager e PackageDeployer oferecem suporte a patches de solução. Consulte a ajuda online da ferramenta para todas as opções de linha de comando que estão relacionados aos patches.
Criar um patch
Crie um patch a partir de uma solução não gerenciada em um ambiente usando a CloneAsPatchRequest mensagem ou CloneAsPatch Action, ou usando o aplicativo Web. Depois de criar o patch, a solução original é bloqueada e não é possível alterá-la ou exportá-la enquanto houver patches dependentes que estão no ambiente que identifica a solução como uma solução primária. O controle de versão de patch é semelhante ao controle de versão de solução, e é especificado no seguinte formato: major.minor.build.release. Não é possível fazer alterações nas versões principais e secundárias da solução ao criar um patch.
Exportar e importar um patch
Use o SDK para .NET ou APIs da Web, o aplicativo Web, ou a ferramenta do Package Deployer para exportar e importar um patch. As classes de solicitação relevantes do SDK para .NET são ImportSolutionRequest e ExportSolutionRequest. As ações relevantes para a API Web são Ação ImportSolution e Ação ExportSolution.
Exemplos de patch do aplicativo
A tabela a seguir lista os detalhes de um exemplo de patch do aplicativo. Neste exemplo, a solução e os patches são importados em ordem numérica e de forma aditiva, o que é consistente com a importação da solução em geral.
| Nome do patch | Description |
|---|---|
SolutionA, versão 1.0 (não gerenciada) |
Contém entityA com seis campos. |
SolutionA, versão 1.0.1.0 (não gerenciada) |
Contém entityA com seis campos (três atualizados) e adiciona entityB com 10 campos. |
SolutionA, versão 1.0.2.0 (não gerenciada) |
Contém entityC com 10 campos. |
O processo de importação é o seguinte.
- O desenvolvedor ou personalizador importa primeiro a solução base (
SolutionA1.0) para o ambiente. O resultado éentityAcom seis campos no ambiente. - Em seguida, o patch 1.0.1.0 da
SolutionAé importado. O ambiente agora contémentityAcom seis campos (três foram atualizados), maisentityBcom 10 campos. - Por fim, o patch 1.0.2.0 da
SolutionAé importado. O ambiente agora contémentityAcom seis campos (três atualizados)entityBcom 10 campos, maisentityCcom 10 campos.
Outro exemplo de patch do aplicativo
Vamos dar uma olhada em outro exemplo de patch de aplicativo com os detalhes listados na tabela a seguir.
| Nome do patch | Description |
|---|---|
Versão 1.0 da SolutionA (não gerenciada, solução base) |
Contém a tabela Account onde o comprimento da coluna de número de conta é ajustado de 20 a 30 caracteres. |
A versão 2.0 da SolutionB (não gerenciada, fornecedor diferente) |
Contém a tabela Account onde o comprimento da coluna de número de conta é ajustado para 50 caracteres. |
Versão 1.0.1.0 da SolutionA (não gerenciada, patch) |
Contém uma atualização para a tabela Account onde o comprimento da coluna de número de conta é ajustado para 35 caracteres. |
O processo de importação é o seguinte:
- O desenvolvedor ou personalizador importa primeiro a solução base (
SolutionA1.0) para o ambiente. O resultado é uma tabelaAccountcom uma coluna de número de conta de 30 caracteres. - A
SolutionBé importada. O ambiente agora contém uma tabelaAccountcom uma coluna de número de conta de 50 caracteres. - O patch 1.0.1.0 da
SolutionAé importado. O ambiente ainda contém uma tabelaAccountcom uma coluna de número de conta de 50 caracteres, conforme aplicado pelaSolutionB. - A
SolutionBfoi desinstalada. O ambiente agora contém uma tabelaAccountcom uma coluna de número de conta de 35 caracteres, conforme aplicado pelo patch 1.0.1.0 daSolutionA.
Excluir um patch
Você pode excluir um patch ou solução básica (primária) usando DeleteRequest ou, para a API de Web, use o método HTTP DELETE. O processo de exclusão é diferente para uma solução gerenciada ou não gerenciada que tem um ou mais patches existentes no ambiente.
Para uma solução não gerenciada, você deve primeiro desinstalar todos os patches da solução básica, na ordem de versão inversa da que foram criados, antes de desinstalar a solução básica.
Para uma solução gerenciada, basta desinstalar a solução base. O sistema Dataverse desinstala automaticamente os patches na ordem de versão inversa antes de desinstalar a solução base. Também é possível desinstalar um único patch.
Atualizar uma solução
Atualizar uma solução envolve o acúmulo (mesclagem) de todos os patches dessa solução em uma nova versão da solução. Em seguida, a solução é desbloqueada e pode ser novamente modificada (apenas solução não gerenciada) ou exportada. Para uma solução não gerenciada, nenhuma modificação adicional da solução é permitida com exceção da criação de patches a partir da solução recentemente atualizada. Para acumular patches em uma solução não gerenciada, use CloneAsSolutionRequest ou Ação CloneAsSolution. Clonar uma solução criará uma nova versão da solução não gerenciada, incorporando todos os patches, com um número de versão major.minor superior, o mesmo nome exclusivo, e um nome de exibição.
Para uma solução gerenciada, as coisas são tratadas de forma um pouco diferente. Você primeiro clona a solução não gerenciada (A), incorporando todos os patches e, em seguida, exportando-a como uma solução gerenciada (B). Na organização de destino que contém a versão gerenciada da solução (A) e seus patches, você importa a solução gerenciada (B) e, em seguida, executa DeleteAndPromoteRequest ou a Ação DeleteAndPromote para substituir a solução gerenciada (A) e seus patches pela versão gerenciada atualizada (B) que possui um número de versão superior.