Introdução às soluçõesIntroduction to solutions

É com as soluções que os personalizadores e programadores efetuam a criação, empacotamento e manutenção de unidades de software que expandem o Common Data Service para Aplicações.Solutions are how customizers and developers author, package, and maintain units of software that extend Common Data Service for Apps. Por exemplo, as aplicações Dynamics 365 for Sales, Dynamics 365 for Marketing ou Dynamics 365 for Customer Service são compostas por soluções.For example, the Dynamics 365 for Sales, Marketing, Customer Service apps are composed of solutions. Os personalizadores e programadores distribuem soluções para que as organizações possam utilizar o Common Data Service para Aplicações para instalar e desinstalar a funcionalidade de negócio definida pela solução.Customizers and developers distribute solutions so that organizations can use Common Data Service for Apps to install and uninstall the business functionality defined by the solution.

Todas as personalizações que fizer ao Common Data Service para Aplicações ou a uma solução instalada anteriormente fazem parte de uma solução.Every customization that you make to Common Data Service for Apps, or to a previously installed solution, is part of a solution. Cada alteração que aplica é controlada e as dependências podem ser calculadas.Every change you apply is tracked and any dependencies can be calculated. Quando exporta uma solução gerida, contém todas as alterações que foram aplicadas a essa solução para um ficheiro que pode importar para um ambiente diferente do Common Data Service para Aplicações.When you export a managed solution, it contains all the changes that have been applied for that solution into a file that you can then import into a different Common Data Service for Apps environment.

Se quiser transportar personalizações ou extensões entre ambientes diferentes do Common Data Service para Aplicações ou distribuir soluções com o AppSource, tem de compreender a estrutura da solução.If you intend to transport customizations or extensions between different Common Data Service for Apps environments or distribute solutions using AppSource, you must understand the solution framework.

Solução geridas e não geridasManaged and unmanaged solutions

Existem dois tipos de soluções: geridas e não geridas.There are two types of solutions: managed and unmanaged.

Uma solução gerida é uma solução completa que se destina a ser distribuída e instalada.A managed solution is a completed solution that is intended to be distributed and installed.

  • Não pode editar os componentes de uma solução gerida.You cannot edit the components of a managed solution.

  • Não pode exportar uma solução gerida.You cannot export a managed solution.

  • Pode adicionar personalizações não geridas a componentes de uma solução gerida.You can add unmanaged customizations to components of a managed solution. Ao fazê-lo, cria uma dependência entre as suas personalizações não geridas e a solução gerida.When you do this, you create a dependency between your unmanaged customizations and the managed solution. Quando existe uma dependência, a solução gerida não pode ser desinstalada até remover a dependência.When a dependency exists, the managed solution cannot be uninstalled until you remove the dependency.

  • Quando uma solução gerida é eliminada (desinstalada), todas as personalizações e extensões incluídas na mesma são removidas.When a managed solution is deleted (uninstalled), all the customizations and extensions included with it are removed.

    Importante

    Quando desinstala uma solução gerida, os seguintes dados são perdidos: dados armazenados em entidades personalizadas que fazem parte da solução gerida e dados armazenados em atributos personalizados que fazem parte da solução gerida noutras entidades que não fazem parte da solução gerida.When you uninstall a managed solution, the following data is lost: data stored in custom entities that are part of the managed solution and data stored in custom attributes that are part of the managed solution on other entities that are not part of the managed solution.

Uma solução não gerida é uma que ainda está em desenvolvimento ou não se destina a ser distribuída.An unmanaged solution is one that is still under development or isn’t intended to be distributed.

  • Enquanto uma solução não é gerida, pode continuar a adicionar e remover componentes à mesma.While a solution is unmanaged, you can continue to add and remove components to it.

  • Pode exportar uma solução não gerida para transportar personalizações não geridas de um ambiente para outro.You can export an unmanaged solution to transport unmanaged customizations from one environment to another.

  • Quando uma solução não gerida é eliminada, apenas o contentor de soluções das personalizações incluídas na mesma é eliminado.When an unmanaged solution is deleted, only the solution container of any customizations included in it is deleted. Todas as personalizações não geridas permanecem em vigor e pertencem à solução predefinida.All the unmanaged customizations remain in effect and belong to the default solution.

  • Quando uma solução não gerida for concluída e quiser distribuí-la, exporte-a como uma solução gerida.When the unmanaged solution is complete and you want to distribute it, export it as a managed solution.

    Nota

    Não pode importar uma solução gerida para o mesmo ambiente que contém a solução não gerida de origem.You cannot import a managed solution into the same environment that contains the originating unmanaged solution. Para testar uma solução gerida, precisa de um ambiente separado para importá-la para o mesmo.To test a managed solution, you need a separate environment to import it into.

Fabricantes de soluçõesSolution publishers

Cada solução está ligada a um fabricante de soluções.Each solution is linked to a solution publisher. O fabricante de soluções fornece informações sobre como contactar o fabricante, bem como um valor de prefixo de personalização.The solution publisher provides information about how to contact the publisher as well a customization prefix value. O valor predefinido é new.The default value is new.

Quando as alterações do esquema são incluídas como parte de uma solução, o prefixo de personalização do fabricante de soluções é anexado ao nome dos itens de esquema.When any schema changes are included as part of a solution, the solution publisher customization prefix is prepended to the name of the schema items. Este valor também é anexado a todas as ações personalizadas.Any custom actions also have this value appended to them. Isto é útil porque permite reconhecer facilmente que solução adicionou o item de esquema ou ação personalizada.This is valuable because it allows for easy recognition of which solution added the schema item or custom action. Não é necessário que todos os itens de esquema e ações personalizadas numa solução utilizem o mesmo prefixo de personalização, mas é altamente recomendado.It is not required for all schema items and custom actions in a solution to use the same customization prefix, but it is strongly recommended.

Importante

Antes de criar uma solução, deve criar um registo de fabricante de soluções e criar uma nova solução ligada ao mesmo.Before you start creating a solution, you should create a solution publisher record and create a new solution linked to it. Deve garantir que o prefixo de personalização representa um valor que faz sentido para si.You should make sure the customization prefix represents a value that makes sense for you.

A sua escolha de fabricante de soluções é importante caso queira publicar uma atualização para uma solução que forneceu.Your choice of solution publisher is important in case you want to publish an update to a solution you have shipped. Uma aplicação só pode ser aplicada a uma solução gerida com o mesmo fabricante que a solução gerida original.An update can only be applied to a managed solution with the same publisher as the original managed solution.

Mais informações: Guia do Programador do Dynamics 365 Customer Engagement: Manter soluções geridas > Criar atualizações de soluções geridasMore information: Dynamics 365 Customer Engagement Developer Guide: Maintain managed solutions > Create managed solution updates

Criar um fabricante de soluções e uma soluçãoCreate a solution publisher and solution

Para criar um fabricante de soluções e uma solução, precisa de navegar para a área Personalização do Dynamics 365.To create a solution publisher and a solution you need to navigate to the Dynamics 365 Customization area.

Em powerapps.comFrom powerapps.com

  1. Selecione o ícone de grelha no canto superior esquerdoSelect the Waffle icon at the top left corner
  2. Na lista de opções, selecione Todas as aplicações.In the fly out, select All apps.
  3. Procure Dynamics 365 – aplicação personalizada.Look for the Dynamics 365 - custom app. Recomendamos que clique nas reticências (...) e selecione Afixar esta aplicação para que seja mais fácil encontrá-la na próxima vez.You may want to click the ellipses (...) and choose Pin this app so it will be easier to navigate to next time.
  4. Clique na aplicação Dynamics 365 – aplicação personalizada e selecione-a.Click the Dynamics 365 - custom app app and select it.
  5. Navegue para Definições > Personalização > Personalizações.Navigate to Settings > Customization > Customizations.

Em home.dynamics.comFrom home.dynamics.com

  1. Procure o mosaico Dynamics 365 – personalizado e clique no mesmo.Look for the Dynamics 365 - custom tile and click it.
  2. Navegue para Definições > Personalização > Personalizações.Navigate to Settings > Customization > Customizations.

Criar um fabricante de soluçõesCreate a solution publisher

  1. Na área de personalizações, selecione Fabricantes.From the customizations area, select Publishers.
  2. Clique em Novo.Click New.
  3. No formulário do fabricante, introduza um Nome a Apresentar.In the publisher form enter a Display Name. Um valor Nome será gerado com base no nome a apresentar.A Name value will be generated based on the display name. Pode aceitar o valor gerado ou especificar um novo.You can accept the generated value or specify a new one.
  4. No campo prefixo, especifique o prefixo de personalização que deve ser anexado aos itens de esquema personalizados que adiciona ao desenvolver a sua aplicação.In the prefix field, specify the customization prefix that should be appended to any custom schema items you add when developing your solution. O valor predefinido é new.The default value is new. Selecione um valor que representa a sua organização. Isso irá ajudar as pessoas a identificar que componentes instalados no seu sistema provêm da sua solução.Choose a value that represents your organization and will help people identify which components installed in their system came from your solution.
  5. Um valor Prefixo de Valor de Opção será gerado com base na sua opção de prefixo de personalização.An Option Value Prefix value will be generated based on your choice for customization prefix. Este é um valor que será anexado a quaisquer valores de conjuntos de opções que adiciona a atributos na sua solução.This is a value that will be appended to any values for option set options you add to attributes in your solution. Este valor irá ajudar a identificar as opções que adicionar à sua solução.This value will help identify any options you add to your solution.
  6. Na secção Detalhes de Contacto do formulário, pode adicionar informações de contacto que pretende fornecer às pessoas que instalam a sua solução.In the Contact Details section of the form, you may add any contact information you want to provide for people who install your solution.
  7. Clique em Guardar e Fechar quando terminar.Click Save and Close when you are done.

Criar uma soluçãoCreate a solution

  1. Na área de personalizações, selecione Soluções.From the customizations area, select Solutions.
  2. Clique em Novo.Click New.
  3. No formulário de solução, introduza um Nome a Apresentar.In the solution form enter a Display Name. Um valor Nome será gerado com base no nome a apresentar.A Name value will be generated based on the display name. Pode aceitar o valor gerado ou especificar um novo.You can accept the generated value or specify a new one.
  4. No campo Fabricante procure o fabricante que criou em Criar um fabricante de soluçõesIn the Publisher field look up the publisher you created in Create a solution publisher
  5. No campo Versão selecione uma versão adequada para a sua solução, tal como 1.0.0.0.In the Version field select an appropriate version for your solution, such as 1.0.0.0.
  6. Clique em Guardar quando terminar.Click Save when you are done.

Importante

Quando criar um novo componente de solução que será incluído nesta solução, utilize esta solução ou outra solução associada ao mesmo fabricante de soluções para o adicionar.Whenever you create a new solution component that will be included in this solution, use this solution, or another solution associated with the same solution publisher to add it. Os componentes de solução criados no contexto de uma solução associada a um fabricante de soluções diferente podem ser adicionados a esta solução, mas podem ter valores de prefixo de personalização inconsistentes definidos.Solution components created in the context of a solution associated to a different solution publisher can be added to this solution, but they may have inconsistent customization prefix values set.

Sobreposição de soluçõesSolution layering

É possível instalar duas soluções geridas que se contradizem ou que algumas personalizações aplicadas ao ambiente substituam uma solução gerida.It is possible for two managed solutions to be installed which contradict each other or for some customizations applied to the environment to override a managed solution. Como funciona?How does this work?

Funciona porque o Common Data Service para Aplicações avalia soluções geridas pela ordem na qual são instaladas e as personalizações que não estão numa solução gerida são avaliadas em último lugar.It works because Common Data Service for Apps evaluates managed solutions by the order in which they are installed and any customizations that are not in a managed solution are evaluated last.

O seguinte diagrama indica como as soluções geridas e personalizações não geridas interagem para controlar o que está incluído no tempo de execução na aplicação.The following diagram introduces how managed solutions and unmanaged customizations interact to control what is included at runtime in the application.

Diagrama a mostrar a sobreposição de soluções

Neste exemplo, o comportamento predefinido na solução de sistema é substituído ou anexado por soluções geridas.In this example, default behavior defined in the system solution is overridden or appended by managed solutions. As personalizações não geridas podem substituir ou anexar personalizações que estão visíveis na aplicação.Any unmanaged customizations can then override or append customizations that are then visible in the application.

Mais informações: Guia do Programador do Dynamics 365 Customer Engagement: Introdução às soluções > Soluções geridas e não geridasMore information: Dynamics 365 Customer Engagement Developer Guide: Introduction to solutions > Unmanaged and managed solutions

Propriedades geridasManaged properties

Quando distribui uma solução gerida, qualquer pessoa que instala a sua solução pode incluir as suas próprias personalizações não geridas na mesma.When you distribute a managed solution, anyone who installs your solution can include their own unmanaged customizations to it. Essas personalizações não geridas podem ser adicionadas a uma solução que distribuíram como uma solução gerida que depende da sua solução.Those unmanaged customizations can then be added to a solution that they distributed as a managed solution that depends on your solution. E se não quiser que as pessoas façam isso?But what if you don’t want people to do this? Enquanto fabricante da solução gerida, pode utilizar propriedades geridas para desativar personalizações específicas para os componentes de uma solução gerida.As the publisher of the managed solution you can use managed properties to disable specific customizations for the components of your managed solution.

Mais informações: Guia do Programador do Dynamics 365 Customer Engagement: Utilizar propriedades geridasMore information: Dynamics 365 Customer Engagement Developer Guide: Use managed properties

Soluções modularesModular solutions

Pode utilizar a estrutura da solução para criar um conjunto discreto de componentes que fornecem um conjunto de funcionalidades.You can use the solution framework to create a discrete set of components that provide a set of functionalities. Cada solução gerida pode ser instalada e desinstalada para a implementação do cliente voltar ao estado original.Each managed solution can be installed and uninstalled to return the customer’s deployment to its original state. Cada solução gerida que cria é executada sobre a solução de sistema e pode aceder às funcionalidades dessa solução subjacente.Each managed solution you create runs on top of the system solution and can access the capabilities of that underlying solution.

Também pode criar soluções geridas que são executadas em simultâneo com outras soluções para criar um conjunto de funcionalidades que pode ser partilhado por soluções diferentes.You can also build managed solutions that run on top of other solutions to create a set of functionalities that can be shared by different solutions. Desta forma, pode criar e manter um módulo comum como uma solução para suportar múltiplas soluções.In this way, you can build and maintain a common module as a solution to support multiple solutions. Por este motivo, os clientes só têm de instalar as soluções que são certas para eles e não têm de incluir a mesma funcionalidade partilhada em todas as soluções.Because of this, customers only need to install the solutions that are right for them and you don’t need to include the same shared functionality in every solution. Se precisar de emitir uma atualização para uma solução que suporta múltiplas soluções, só precisa de atualizar o módulo comum.If you need to push out an update to solution that supports multiple solutions, you only need to update the common module.

Os Clientes, Implementadores de Sistemas e outros ISVs podem criar soluções por cima das suas soluções para atingir as personalizações específicas de que precisam.Customers, System Implementers, and other ISVs can then build solutions on top of your solutions to achieve the specific customizations they require.

Quando um conjunto de funcionalidades empresariais é composto por múltiplas soluções, estes chamam-se pacotes.When a set of business functionality is composed with multiple solutions, these are called packages. Pode utilizar o Package Deployer para combinar múltiplas soluções numa única unidade instalável.You can use the Package Deployer to combine multiple solutions into a single installable unit.

Implementar pacotes de soluçõesDeploy solution packages

Utilize o Package Deployer para criar um instalador personalizado para um pacote que pode incluirUse the Package Deployer to create a custom installer for a package that can include

  • Um ou mais ficheiros de solução.One or more solution files.
  • Ficheiros simples ou ficheiros de dados de configuração exportados.Flat files or exported configuration data files.
  • O código personalizado que pode ser executado antes, durante ou após o pacote ser implementado.Custom code that can run before, while, or after the package is deployed.
  • O conteúdo HTML específico do pacote que pode ser apresentado no início e no fim do processo de implementação.HTML content specific to the package that can display at the beginning and end of the deployment process. Isto pode ser útil para fornecer uma descrição das soluções e ficheiros que são implementados no pacote.This can be useful to provide a description of the solutions and files that are deployed in the package.

Mais informações: Guia do Programador do Dynamics 365 Customer Engagement: Criar pacotes para o Package Deployer do Dynamics 365.More information: Dynamics 365 Customer Engagement Developer Guide: Create packages for the Dynamics 365 Package Deployer.

Desenvolvimento em equipa de soluçõesTeam development of solutions

Um ficheiro de solução é um ficheiro binário que não pode ser utilizado para o controlo de código fonte ou desenvolvimento em equipa.A solution file is a single binary file that does not lend itself to source code control or team development. Múltiplos programadores não podem trabalhar em componentes personalizados na solução.There is no way for multiple developers to work on the custom components in the solution.

A ferramenta SolutionPackager resolve o problema do controlo de código fonte e desenvolvimento em equipa de ficheiros de solução.The SolutionPackager tool resolves the problem of source code control and team development of solution files. A ferramenta identifica componentes individuais no ficheiro de solução comprimido e extrai-os para ficheiros individuais.The tool identifies individual components in the compressed solution file and extracts them out to individual files. A ferramenta também pode recriar um ficheiro de solução ao empacotar os ficheiros que foram extraídos anteriormente.The tool can also re-create a solution file by packing the files that had been previously extracted. Isto permite que múltiplas pessoas trabalhem independentemente numa única solução e extraiam as alterações para uma localização comum.This enables multiple people to work independently on a single solution and extract their changes into a common location. Uma vez que cada componente no ficheiro de solução é dividido em múltiplos ficheiros, torna-se possível intercalar personalizações sem substituir as alterações anteriores.Because each component in the solution file is broken into multiple files, it becomes possible to merge customizations without overwriting prior changes. Uma utilização secundária da ferramenta SolutionPackager é que pode ser invocada a partir de um processo de criação automatizado para gerar um ficheiro de solução comprimido a partir de ficheiros de componentes extraídos anteriormente, sem precisar de uma instância ativa do Dynamics 365.A secondary use of the SolutionPackager tool is that it can be invoked from an automated build process to generate a compressed solution file from previously extracted component files without needing an active Dynamics 365 instance.

Mais informações: Guia do Programador do Dynamics 365 Customer Engagement: Ferramentas de soluções para desenvolvimento em equipaMore information: Dynamics 365 Customer Engagement Developer Guide: Solution tools for team development

Veja tambémSee also

Descrição Geral para Programadores do Common Data Service para AplicaçõesCommon Data Service for Apps Developer Overview