Introduktion till lösningarIntroduction to solutions

Lösningar är hur anpassare och utvecklare skriver, paketerar och underhåller programenheter som utökar Common Data Service för appar.Solutions are how customizers and developers author, package, and maintain units of software that extend Common Data Service for Apps. Till exempel apparna Dynamics 365 för sälj, marknadsföring och kundtjänst består av lösningar.For example, the Dynamics 365 for Sales, Marketing, Customer Service apps are composed of solutions. Anpassare och utvecklare distribuerar lösningar för att organisationer ska kunna använda Common Data Service för appar till att installera och avinstallera de affärsfunktioner som definieras av lösningen.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.

Varje anpassning som du gör i Common Data Service för appar eller en tidigare installerad lösning är en del av en lösning.Every customization that you make to Common Data Service for Apps, or to a previously installed solution, is part of a solution. Varje ändring som du tillämpar spåras och eventuella beroenden kan beräknas.Every change you apply is tracked and any dependencies can be calculated. När du exporterar en hanterad lösning innehåller den alla ändringar som har tillämpats för lösningen i en fil, som du sedan kan importera till en annan Common Data Service för appar-miljö.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.

Om du planerar att skicka anpassningar eller tillägg mellan olika Common Data Service för appar-miljöer eller distribuera lösningar med hjälp av AppSource, måste du förstå hur lösningens ramverk fungerar.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.

Hanterade och ohanterade lösningarManaged and unmanaged solutions

Det finns två typer av lösningar: hanterade och ohanterade.There are two types of solutions: managed and unmanaged.

En hanterad lösning är en slutförd lösning som är avsedd att distribueras och installeras.A managed solution is a completed solution that is intended to be distributed and installed.

  • Du kan inte redigera komponenterna i en hanterad lösning.You cannot edit the components of a managed solution.

  • Du kan inte exportera en hanterad lösning.You cannot export a managed solution.

  • Du kan lägga till ohanterade anpassningar till komponenter i en hanterad lösning.You can add unmanaged customizations to components of a managed solution. När du gör detta skapas ett beroende mellan dina ohanterade anpassningar och den hanterade lösningen.When you do this, you create a dependency between your unmanaged customizations and the managed solution. När det finns ett beroende kan inte den hanterade lösningen avinstalleras förrän du tar bort beroendet.When a dependency exists, the managed solution cannot be uninstalled until you remove the dependency.

  • När en hanterad lösning tas bort (avinstalleras), tas alla anpassningar och tillägg som finns i den också bort.When a managed solution is deleted (uninstalled), all the customizations and extensions included with it are removed.

    Viktigt

    När du avinstallerar en hanterad lösning försvinner följande data: Data som lagras i anpassade entiteter och som ingår i den hanterade lösningen, samt data som lagras i anpassade attribut som ingår i den hanterade lösningen på andra entiteter som inte är en del av den hanterade lösningen.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.

En ohanterad lösning är en lösning som fortfarande är under utveckling, eller som inte är avsedd att distribueras.An unmanaged solution is one that is still under development or isn’t intended to be distributed.

  • När en lösning är ohanterad kan du fortsätta att lägga till och ta bort komponenter i den.While a solution is unmanaged, you can continue to add and remove components to it.

  • Du kan exportera en ohanterad lösning om du vill flytta ohanterade anpassningar från en miljö till en annan.You can export an unmanaged solution to transport unmanaged customizations from one environment to another.

  • När en ohanterad lösning tas bort, raderas bara lösningscontainern för de anpassningar som ingår i den.When an unmanaged solution is deleted, only the solution container of any customizations included in it is deleted. Alla ohanterade anpassningar förblir aktiva och tillhör standardlösningen.All the unmanaged customizations remain in effect and belong to the default solution.

  • När den ohanterade lösningen är klar och du vill distribuera den, kan du exportera den som en hanterad lösning.When the unmanaged solution is complete and you want to distribute it, export it as a managed solution.

    Anteckning

    Du kan inte importera en hanterad lösning till samma miljö som innehåller den ursprungliga ohanterade lösningen.You cannot import a managed solution into the same environment that contains the originating unmanaged solution. Om du vill testa en hanterad lösning måste du ha en separat miljö att importera den till.To test a managed solution, you need a separate environment to import it into.

UtgivareSolution publishers

Varje lösning är kopplad till en utgivare.Each solution is linked to a solution publisher. Utgivaren innehåller information om hur du kontaktar utgivaren samt ett värde för anpassningsprefixet.The solution publisher provides information about how to contact the publisher as well a customization prefix value. Standardvärdet är new.The default value is new.

När alla schemaändringar har inkluderats i lösningen, läggs utgivarens anpassningsprefix till i namnet på schemaobjekten.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. Alla anpassade åtgärder har också det här värdet tillagt.Any custom actions also have this value appended to them. Detta är viktigt eftersom man får en enkel igenkänning av vilken lösning som har lagts till i schemaobjektet eller i en anpassad åtgärd.This is valuable because it allows for easy recognition of which solution added the schema item or custom action. Alla schemaobjekt och anpassade åtgärder i en lösning måste inte använda samma anpassningsprefix, men det rekommenderas starkt.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.

Viktigt

Innan du börjar skapa en lösning, bör du skapa en post för utgivaren och en ny lösning som är länkad till den.Before you start creating a solution, you should create a solution publisher record and create a new solution linked to it. Kontrollera att anpassningsprefixet visar ett värde som du förstår.You should make sure the customization prefix represents a value that makes sense for you.

Ditt val av utgivare är viktigt om du vill publicera en uppdatering av en lösning som du har levererat.Your choice of solution publisher is important in case you want to publish an update to a solution you have shipped. En uppdatering kan endast tillämpas på en hanterad lösning med samma utgivare som den ursprungliga hanterade lösningen.An update can only be applied to a managed solution with the same publisher as the original managed solution.

Mer information: Utvecklarguide till Dynamics 365 för kundengagemang: Underhåll av hanterade lösningar > Skapa hanterade lösningsuppdateringarMore information: Dynamics 365 Customer Engagement Developer Guide: Maintain managed solutions > Create managed solution updates

Skapa en utgivare och en lösningCreate a solution publisher and solution

Om du vill skapa en utgivare och en lösning måste du gå till området för Dynamics 365-anpassning.To create a solution publisher and a solution you need to navigate to the Dynamics 365 Customization area.

Från powerapps.comFrom powerapps.com

  1. Välj våffelikonen i det övre vänstra hörnetSelect the Waffle icon at the top left corner
  2. I menyn väljer du Alla appar.In the fly out, select All apps.
  3. Leta efter Dynamics 365 – anpassad app.Look for the Dynamics 365 - custom app. Du kan klicka på ellipserna (...) och välja Fäst den här appen så att det blir lättare att navigera till den nästa gång.You may want to click the ellipses (...) and choose Pin this app so it will be easier to navigate to next time.
  4. Klicka på appen Dynamics 365 – anpassad app och markera den.Click the Dynamics 365 - custom app app and select it.
  5. Gå till Inställningar > Anpassning > Anpassningar.Navigate to Settings > Customization > Customizations.

Från home.dynamics.comFrom home.dynamics.com

  1. Leta efter ikonen Dynamics 365 – anpassad och klicka på den.Look for the Dynamics 365 - custom tile and click it.
  2. Gå till Inställningar > Anpassning > Anpassningar.Navigate to Settings > Customization > Customizations.

Skapa en utgivareCreate a solution publisher

  1. I anpassningsområdet väljer du Utgivare.From the customizations area, select Publishers.
  2. Klicka på Nytt.Click New.
  3. I utgivarformuläret anger du ett Visningsnamn.In the publisher form enter a Display Name. Värdet Namn genereras baserat på visningsnamnet.A Name value will be generated based on the display name. Du kan acceptera det genererade värdet eller ange ett nytt.You can accept the generated value or specify a new one.
  4. I fältet Prefix anger du det anpassningsprefix som ska läggas till alla anpassade schemaobjekt som skapas när du utvecklar din lösning.In the prefix field, specify the customization prefix that should be appended to any custom schema items you add when developing your solution. Standardvärdet är new.The default value is new. Välj ett värde som representerar din organisation och som hjälper dig att identifiera vilka komponenter som är installerade i systemet från din lösning.Choose a value that represents your organization and will help people identify which components installed in their system came from your solution.
  5. Ett Alternativ för värdeprefix genereras baserat på dina val för anpassningsprefix.An Option Value Prefix value will be generated based on your choice for customization prefix. Detta är ett värde som läggs till i alla värden för de alternativuppsättningar som du lägger till i attribut i din lösning.This is a value that will be appended to any values for option set options you add to attributes in your solution. Värdet hjälper dig att identifiera alla alternativ som du lägger till i din lösning.This value will help identify any options you add to your solution.
  6. I formulärets avsnitt Kontaktinformation kan du lägga till kontaktinformation för användare som installerar din lösning.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. Klicka på Spara och stäng när du är klar.Click Save and Close when you are done.

Skapa en lösningCreate a solution

  1. I anpassningsområdet väljer du Lösningar.From the customizations area, select Solutions.
  2. Klicka på Nytt.Click New.
  3. I lösningsformuläret anger du ett Visningsnamn.In the solution form enter a Display Name. Värdet Namn genereras baserat på visningsnamnet.A Name value will be generated based on the display name. Du kan acceptera det genererade värdet eller ange ett nytt.You can accept the generated value or specify a new one.
  4. I fältet Utgivare letar du upp utgivaren som du skapade i Skapa en utgivareIn the Publisher field look up the publisher you created in Create a solution publisher
  5. I fältet Version väljer du en lämplig version för din lösning, till exempel 1.0.0.0.In the Version field select an appropriate version for your solution, such as 1.0.0.0.
  6. Klicka på Spara när du är klar.Click Save when you are done.

Viktigt

När du skapar en ny komponent som ska tas med i lösningen, använder du denna lösning eller en annan lösning som är associerad med samma utgivare för att lägga till den.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. Lösningskomponenter som skapas i samband med en lösning och som är kopplade till en annan utgivare kan läggas till i lösningen, men de kan ha inkonsekventa värden för anpassningsprefixet.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.

LösningslagringSolution layering

Det går att installera två hanterade lösningar som strider mot varandra, eller att vissa anpassningar som tillämpas på miljön åsidosätter en hanterad lösning.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. Hur fungerar detta?How does this work?

Det fungerar eftersom Common Data Service för appar utvärderar hanterade lösningar i den ordning som de är installerade och eventuella anpassningar som inte ingår i en hanterad lösning utvärderas sist.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.

Följande diagram visar hur hanterade lösningar och ohanterade anpassningar samverkar för att styra vad som ska ingå vid körningen i programmet.The following diagram introduces how managed solutions and unmanaged customizations interact to control what is included at runtime in the application.

Diagram som visar lösningslagring

I det här exemplet är standardbeteendet som definierats i systemlösningen åsidosatt eller tillagt av hanterade lösningar.In this example, default behavior defined in the system solution is overridden or appended by managed solutions. Eventuella ohanterade anpassningar kan därefter åsidosätta eller lägga till anpassningar som sedan syns i programmet.Any unmanaged customizations can then override or append customizations that are then visible in the application.

Mer information: Utvecklarguide till Dynamics 365 för kundengagemang: Introduktion till lösningar > Ohanterade och hanterade lösningarMore information: Dynamics 365 Customer Engagement Developer Guide: Introduction to solutions > Unmanaged and managed solutions

Hanterade egenskaperManaged properties

När du distribuerar en hanterad lösning, kan vem som helst som installerar lösningen lägga till egna ohanterade anpassningar i den.When you distribute a managed solution, anyone who installs your solution can include their own unmanaged customizations to it. Dessa ohanterade anpassningar kan sedan läggas till i en lösning som de distribuerar som en hanterad lösning, vilken är beroende av din lösning.Those unmanaged customizations can then be added to a solution that they distributed as a managed solution that depends on your solution. Men vad gör du om du inte vill att man ska kunna göra detta?But what if you don’t want people to do this? Som utgivare av den hanterade lösningen kan du använda hanterade egenskaper för att inaktivera specifika anpassningar av komponenterna i hanterade lösningen.As the publisher of the managed solution you can use managed properties to disable specific customizations for the components of your managed solution.

Mer information: Utvecklarguide till Dynamics 365 för kundengagemang: Använda hanterade egenskaperMore information: Dynamics 365 Customer Engagement Developer Guide: Use managed properties

Modulära lösningarModular solutions

Du kan använda lösningsramverket till att skapa en diskret uppsättning komponenter som tillhandahåller en uppsättning funktioner.You can use the solution framework to create a discrete set of components that provide a set of functionalities. Varje hanterad lösning kan installeras och avinstalleras om du vill att kundens distribution ska återgå till det ursprungliga tillståndet.Each managed solution can be installed and uninstalled to return the customer’s deployment to its original state. Varje hanterad lösning som du skapar körs ovanpå systemlösningen och har åtkomst till funktionerna i den underliggande lösningen.Each managed solution you create runs on top of the system solution and can access the capabilities of that underlying solution.

Du kan också skapa hanterade lösningar som körs ovanpå andra lösningar för att skapa en uppsättning funktioner som kan delas av olika lösningar.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. Det innebär att du kan skapa och underhålla en gemensam modul som en lösning för att stödja flera lösningar.In this way, you can build and maintain a common module as a solution to support multiple solutions. Det innebär att kunderna bara behöver installera de lösningar som passar dem och du behöver inte använda samma delade funktionalitet i varje lösning.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. Om du behöver att skicka ut en uppdatering av en lösning som stöder flera lösningar, behöver du bara uppdatera den gemensamma modulen.If you need to push out an update to solution that supports multiple solutions, you only need to update the common module.

Kunder, systemimplementerare och andra ISV:er kan sedan skapa lösningar ovanpå dina lösningar för att få de anpassningar som de behöver.Customers, System Implementers, and other ISVs can then build solutions on top of your solutions to achieve the specific customizations they require.

När en uppsättning affärsfunktioner består av flera lösningar, kallas dessa för paket.When a set of business functionality is composed with multiple solutions, these are called packages. Du kan använda Package Deployer för att kombinera flera lösningar till en enda installerbar enhet.You can use the Package Deployer to combine multiple solutions into a single installable unit.

Distribuera lösningspaketDeploy solution packages

Använd Package Deployer till att skapa ett anpassat installationsprogram för ett paket som kan innehållaUse the Package Deployer to create a custom installer for a package that can include

  • En eller flera lösningsfiler.One or more solution files.
  • Flata filer eller datafiler med exporterad konfiguration.Flat files or exported configuration data files.
  • Anpassad kod som kan köras före, under eller efter att paketet distribuerats.Custom code that can run before, while, or after the package is deployed.
  • HTML-innehåll som är specifikt för paketet och som kan visas i början och slutet av distributionsprocessen.HTML content specific to the package that can display at the beginning and end of the deployment process. Det kan vara praktiskt att ange en beskrivning av lösningarna och filerna som distribueras i paketet.This can be useful to provide a description of the solutions and files that are deployed in the package.

Mer information: Utvecklarguide till Dynamics 365 för kundengagemang: Skapa paket för Dynamics 365 Package Deployer.More information: Dynamics 365 Customer Engagement Developer Guide: Create packages for the Dynamics 365 Package Deployer.

Grupputveckling av lösningarTeam development of solutions

En lösningsfil är en enskild binär fil som inte lånar ut sig själv till källkodskontrollen eller grupputvecklingen.A solution file is a single binary file that does not lend itself to source code control or team development. Flera utvecklare kan inte arbeta samtidigt med anpassade komponenter i lösningen.There is no way for multiple developers to work on the custom components in the solution.

SolutionPackager-verktyget löser problem med källkodskontroll och grupputveckling av lösningsfiler.The SolutionPackager tool resolves the problem of source code control and team development of solution files. Verktyget identifierar enskilda komponenter i den komprimerade lösningsfilen och extraherar dem till enskilda filer.The tool identifies individual components in the compressed solution file and extracts them out to individual files. Verktyget kan också återskapa en lösningsfil genom att paketera filerna som tidigare extraherades.The tool can also re-create a solution file by packing the files that had been previously extracted. Detta innebär att flera personer kan arbeta samtidigt med en enda lösning och extrahera ändringarna till en gemensam plats.This enables multiple people to work independently on a single solution and extract their changes into a common location. Eftersom varje komponent i lösningsfilen är uppdelad i flera filer, blir det möjligt att slå samman anpassningar utan att skriva över tidigare ändringar.Because each component in the solution file is broken into multiple files, it becomes possible to merge customizations without overwriting prior changes. En sekundär användning av SolutionPackager-verktyget är att det kan anropas från en automatisk build-process för att generera en komprimerad lösningsfil från tidigare extraherade komponentfiler utan att någon aktiv Dynamics 365-instans krävs.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.

Mer information: Utvecklarguide till Dynamics 365 för kundengagemang: Lösningsverktyg för grupputvecklingMore information: Dynamics 365 Customer Engagement Developer Guide: Solution tools for team development

Se ocksåSee also

Utvecklaröversikt för Common Data Service för apparCommon Data Service for Apps Developer Overview