Översikt över lösningarSolutions overview

I PowerApps utnyttjas lösningar för att transportera appar och komponenter från en miljö till en annan eller tillämpa en uppsättning anpassningar för befintliga appar.In PowerApps, solutions are leveraged to transport apps and components from one environment to another or to apply a set of customizations to existing apps. En lösning kan innehålla en eller flera appar samt andra komponenter, till exempel entiteter, alternativuppsättningar osv. Du kan hämta en lösning från AppSource eller från en oberoende programvaruleverantör (ISV).A solution can contain one or more apps as well as other components such as entities, option sets, etc. You can get a solution from AppSource or from an independent software vendor (ISV).

Mer information: White paper: Livscykelhantering för lösningenMore information: Whitepaper: Solution Lifecycle Management

Anteckning

Om du är en ISV och skapar en app som du ska distribuera, kommer du att behöva använda lösningar.If you’re an ISV creating an app that you will distribute, you’ll need to use solutions. Mer information om hur du använder lösningar finns i Utvecklarguide: Introduktion till lösningar.For more information about using solutions, see Developer Guide: Introduction to solutions.

Om du vill skapa PowerApps-appar för användning i organisationer eller anpassa Dynamics 365 för kundengagemangsappar, behöver du veta det här om lösningar:If you are interested in creating PowerApps apps for organizational use or customizing Dynamics 365 for Customer Engagement apps, here is what you need to know about solutions:

  • Det är valfritt att skapa lösningar.Creating solutions is optional. Du kan skapa eller anpassa appar i din PowerApps-miljö direkt utan att någonsin skapa en lösning.You can build or customize apps in your PowerApps environment directly without ever creating a solution.

  • När du anpassar PowerApps-miljön direkt utan att skapa någon lösning, arbetar du med en särskild lösning som kallas för Common Data Services-standardlösningen.When you customize the PowerApps environment directly without creating any solution, you work with a special solution called the Common Data Services Default Solution. Den här lösningen innehåller alla anpassningar som du gör i PowerApps-miljön.This solution contains all the customizations you make in your PowerApps environment.

  • Det finns en annan särskild lösning som kallas Standardlösningen.There is another special solution called the Default Solution. Den här lösningen innehåller alla komponenter i systemet, oavsett om du eller någon annan skapat dem.This solution contains all the components in your system, whether created by you or anyone else. Du kan exportera Standardlösningen för att skapa en säkerhetskopia av de anpassningar som du har definierat i din organisation.You can export the Default Solution to create a backup of the customizations you have defined in your organization. Det är en bra idé att säkerhetskopiera dina ändringar i ett värsta scenario.This is a good practice to back up your changes in a worst case scenario.

KomponenterComponents

En komponent representerar något som du eventuellt kan anpassa.A component represents something that you can potentially customize. Allt som kan ingå i en lösning är en komponent.Anything that can be included in a solution is a component. Här följer en lista över komponenter som du kan visa i en lösning:The following is a list of components that you can view in a solution:

  • Programmets menyfliksområdeApplication Ribbon

  • ArtikelmallArticle Template

  • AffärsregelBusiness Rule

  • App för arbetsytaCanvas App

  • DiagramChart

  • AnslutningsrollConnection Role

  • KontraktmallContract Template

  • Anpassad kontrollCustom Control

  • InstrumentpanelDashboard

  • E-postmallEmail Template

  • EnhetEntity

  • EntitetsrelationEntity Relationship

  • FältField

  • FältsäkerhetsprofilField Security Profile

  • FlödeFlow

  • FormulärForm

  • Mall för koppla dokumentMail Merge Template

  • MeddelandeMessage

  • Modelldriven appModel-driven app

  • AlternativuppsättningOption Set

  • Plugin-sammansättningPlug-in Assembly

  • ProcessProcess

  • Bearbetningssteg för SDK-meddelandeSdk Message Processing Step

  • SäkerhetsrollSecurity Role

  • TjänstslutpunktService Endpoint

  • WebbplatsöversiktSite Map

  • Virtuell entitetsdataleverantörVirtual Entity Data Provider

  • Virtuell entitetsdatakällaVirtual Entity Data Source

  • WebbresursWeb Resource

Vissa komponenter är kapslade i andra komponenter.Some components are nested within other components. En entitet innehåller till exempel formulär, vyer, diagram, fält, relationer mellan entiteter, meddelanden och affärsregler.For example, an entity contains forms, views, charts, fields, entity relationships, messages, and business rules. Var och en av dessa komponenter kräver att det finns en entitet.Each of those components requires an entity to exist. Ett fält kan inte finnas utanför en entitet.A field can’t exist outside of an entity. Vi kan säga att fältet är beroende av entiteten.We say that the field is dependent on the entity. Det finns faktiskt dubbelt så många typer av komponenter som listan ovan visar, men de flesta av dem är inte kapslade i andra komponenter och inte synliga i programmet.There are actually twice as many types of components as shown in the preceding list, but most of them are not nested within other components and not visible in the application.

Syftet med att använda komponenter är att hålla reda på eventuella begränsningar för vad som kan anpassas med hjälp av hanterade egenskaper, och på alla beroenden så att lösningen kan exporteras, importeras och (i hanterade lösningar) tas bort utan något lämnas kvar.The purpose of having components is to keep track of any limitations on what can be customized using managed properties and all the dependencies so that it can be exported, imported, and (in managed solutions) deleted without leaving anything behind.

Hanterade och ohanterade lösningarManaged and unmanaged solutions

Det finns hanterade och ohanterade lösningar.There are managed and unmanaged solutions. En hanterad lösning kan inte ändras och kan avinstalleras när den har importerats.A managed solution cannot be modified and can be uninstalled after it is imported. Alla komponenter i lösningen tas bort genom att lösningen avinstalleras.All the components of that solution are removed by uninstalling the solution.

När du importerar en ohanterad lösning kan du lägga till alla komponenter i lösningen i din miljö.When you import an unmanaged solution, you add all the components of that solution into your environment. Du kan inte ta bort komponenterna genom att avinstallera lösningen.You can’t remove the components by uninstalling the solution.

När du importerar en ohanterad lösning som innehåller komponenter som du redan har anpassat, skrivs dina anpassningar över av anpassningarna i den ohanterade lösningen.When you import an unmanaged solution that contains components that you have already customized, your customizations will be overwritten by the customizations in the imported unmanaged solution. Du kan inte ångra åtgärden.You can’t undo this.

Viktigt

Du bör bara installera en ohanterad lösning om du vill lägga till alla komponenter i miljön och skriva över eventuella befintliga anpassningar.Install an unmanaged solution only if you want to add all the components to your environment and overwrite any existing customizations.

Även om du inte planerar att distribuera dina appar eller anpassningar, kanske du vill skapa och använda en ohanterad lösning för att få en separat vy, som bara innehåller de delar av programmet som du har anpassat.Even if you don’t plan on distributing your apps or customizations, you may want to create and use an unmanaged solution to have a separate view that only includes those parts of the application that you have customized. Varje gång du anpassar något kan du lägga till anpassningen i den ohanterade lösningen som du skapade.Whenever you customize something, just add it to the unmanaged solution that you created.

Du kan bara exportera din standardlösning som en ohanterad lösning.You can only export your Default Solution as an unmanaged solution.

För att skapa en hanterad lösning väljer du alternativet Som hanterad när du exporterar lösningen.To create a managed solution, you choose the As managed option when you export the solution. Om du skapar en hanterad lösning kan du inte importera den tillbaka till samma miljö som du använde för att skapa den.If you create a managed solution, you can’t import it back into the same environment you used to create it. Du kan bara importera den till en annan miljö.You can only import it into a different environment.

Så används lösningarHow solutions are applied

Alla lösningar utvärderas som lager för att fastställa vad din app kommer att göra i praktiken.All solutions are evaluated as layers to determine what your app will actually do. Följande diagram visar hur hanterade och ohanterade lösningar utvärderas, och hur ändringar i dem visas i din miljö.The following diagram shows how managed and unmanaged solutions are evaluated and how changes in them will appear in your environment.

LösningslagringSolution layering

Nedifrån och upp:Starting from the bottom and working up to top:

SystemlösningSystem Solution
Systemlösningen kan liknas vid en hanterad lösning som alla miljöer har.The system solution is like a managed solution that every environment has. Systemlösningen är definitionen av alla färdiga, medföljande komponenter i systemet.The system solution is the definition of all the out-of-the box components in the system.

Hanterade lösningarManaged Solutions
Hanterade lösningar kan ändra lösningskomponenterna och lägga till nya komponenter.Managed solutions can modify the system solution components and add new components. Om flera hanterade lösningar har installerats finns den första installerade lösningen under den hanterade lösningen som installerats senare.If multiple managed solutions are installed, the first one installed is below the managed solution installed later. Det innebär att den andra installerade lösningen kan anpassa den lösning som installerats före.This means that the second solution installed can customize the one installed before it. När två hanterade lösningar har motstridiga definitioner är den allmänna regeln att ”den sista gäller”.When two managed solutions have conflicting definitions, the general rule is “Last one wins”. Om du avinstallerar en hanterad lösning träder den hanterade lösningen under den i kraft.If you uninstall a managed solution, the managed solution below it takes effect. Om du avinstallerar alla hanterade lösningar, används standardbeteendet som definierats i systemlösningen.If you uninstall all managed solution, the default behavior defined within the system solution is applied.

Ohanterade anpassningarUnmanaged Customizations
Ohanterade anpassningar är ändringar som du har gjort i din miljö via en ohanterad lösning.Unmanaged customizations are any change you have made to your environment through an unmanaged solution. Systemlösningen definierar vad du kan eller inte kan anpassa med hjälp av hanterade egenskaper.The system solution defines what you can or can't customize by using managed properties. Utgivare av hanterade lösningar har samma möjlighet att begränsa din möjlighet att anpassa lösningskomponenter som de lägger till i sin lösning.Publishers of managed solutions have the same ability to limit your ability to customize solution components that they add in their solution. Du kan anpassa alla lösningskomponenter som inte har hanterade egenskaper som hindrar dig från att anpassa dem.You can customize any of the solution components that do not have managed properties that prevent you from customization them.

Programmets beteendeApplication Behavior
Det här är vad som faktiskt visas i din miljö.This is what you actually see in your environment. Standardlösningen för system, samt eventuella hanterade lösningar, plus eventuella ohanterade anpassningar som du har tillämpat.The default system solution plus any managed solutions, plus any unmanaged customizations you have applied.

Hanterade egenskaperManaged properties

Vissa komponenter kan inte anpassas.Some components can’t be customized. De här komponenterna i systemlösningen innehåller metadata som hindrar dig från att anpassa dem.These components in the system solution have metadata that prevents you from customizing them. De kallas för hanterade egenskaper.These are called managed properties. Utgivaren av en hanterad lösning kan också ställa in de hanterade egenskaperna för att förhindra att du anpassar deras lösning på oönskade sätt.The publisher of a managed solution can also set the managed properties to prevent you from customizing their solution in ways they don’t want you to.

LösningsberoendenSolution dependencies

På grund av de sätt som hanterade lösningar skiktas kan vissa hanterade lösningar vara beroende av systemkomponenter i andra hanterade lösningar.Because of the way that managed solutions are layered some managed solutions can be dependent on solution components in other managed solutions. Vissa utgivare av lösningar kan dra nytta av detta för att skapa lösningar som är modulära.Some solution publishers will take advantage of this to build solutions that are modular. Du kan behöva installera en ”grundläggande” hanterad lösning först, och därefter kan du installera en andra hanterad lösning som anpassar komponenterna i den grundläggande hanterade lösningen ytterligare.You may need to install a “base” managed solution first and then you can install a second managed that will further customize the components in the base managed solution. Den andra hanterade lösningen är beroende av de lösningskomponenter som ingår i den första lösningen.The second managed solution depends on solution components that are part of the first solution.

Systemet spårar dessa beroenden mellan lösningar.The system tracks these dependencies between solutions. Om du försöker installera en lösning som kräver en grundläggande lösning som inte är installerad kan du inte installera lösningen.If you try to install a solution that requires a base solution that isn’t installed, you won’t be able to install the solution. Du får ett meddelande om att lösningen kräver att en annan lösning installeras först.You will get a message saying that the solution requires another solution to be installed first. På grund av beroenden kan du inte heller avinstallera den grundläggande lösningen medan en lösning som är beroende av den fortfarande är installerad.Similarly, because of the dependencies, you can’t uninstall the base solution while a solution that depends on it is still installed. Du måste avinstallera den beroende lösningen innan du kan avinstallera den grundläggande lösningen.You have to uninstall the dependent solution before you can uninstall the base solution.

Nästa stegNext steps

Importera, uppdatera och exportera lösningarImport, update, and export solutions
Navigera till en specifik lösningNavigate to a specific solution