Afhængighedssporing for løsningskomponenter

Løsninger består af løsningskomponenter. Brug området Løsninger i Microsoft Dataverse til at oprette en løsning eller tilføje løsningskomponenter til den. Du kan udføre disse handlinger via programmering ved hjælp af AddSolutionComponentRequest-meddelelsen eller meddelelser, der opretter eller opdaterer løsningskomponenter, der omfatter en SolutionUniqueName-parameter.

Løsningskomponenter afhænger ofte af andre løsningskomponenter. Du kan ikke slette nogen løsningskomponent, der har afhængigheder til en anden løsningskomponent. For eksempel kræver et tilpasset bånd typisk billeder eller scriptwebressourcer til at vise ikoner og udføre handlinger ved hjælp af scripts. Så længe det brugerdefinerede bånd er i løsningen, kræves de specifikke webressourcer, det bruger. Før du kan slette web-ressourcerne, skal du fjerne henvisninger til dem i det brugerdefinerede bånd. Du kan få vist disse løsningskomponentafhængigheder i programmet ved at vælge Vis afhængigheder.

I denne artikel beskrives de typer af løsningskomponenter, du kan medtage i dine løsninger, og hvordan de afhænger af hinanden.

Alle løsningskomponenter

Systemets componenttype globale valgkolonne indeholder en komplet liste over tilgængelige løsningskomponenttyper. Du kan se det understøttede værdiområde for denne egenskab ved at inkludere filen OptionSets.cs eller OptionSets.vb i projektet. Men mange af de løsningskomponenttyper, der er angivet der, er kun til intern brug, og listen indeholder ikke oplysninger om relationerne mellem løsningskomponenter.

Afhængigheder for løsningskomponenter

Afhængigheder af løsningskomponenter sikrer, at du har en pålidelig oplevelse med at arbejde med løsninger. De forhindrer, at handlinger, som du normalt udfører, ødelægger de tilpasninger, der er defineret i en løsning. Disse afhængigheder gør det muligt at installere og fjerne en administreret løsning ved blot at importere eller slette den.

Løsningsrammen sporer automatisk afhængigheder for løsningskomponenter. Hver handling på en løsningskomponent beregner automatisk alle afhængigheder til andre komponenter i systemet. Systemet bruger afhængighedsoplysningerne til at bevare integriteten og forhindre handlinger, der kan føre til en inkonsekvent tilstand.

Som et resultat af sporing af afhængighed gennemtvinges følgende funktionsmåder:

  • Sletning af en komponent er forhindret, hvis en anden komponent i systemet er afhængig af den.

  • Eksport af en løsning advarer dig, hvis der mangler komponenter, der kan forårsage fejl, når du importerer løsningen i et andet miljø.

    Du kan ignorere advarsler under eksporten, hvis du kun vil installere løsningen i et miljø, hvor afhængige komponenter forventes at eksistere. Når du f.eks. opretter en løsning, der er udviklet til at blive installeret oven på en forudinstalleret "basis"-løsning.

  • Importen af en løsning mislykkes, hvis løsningen ikke indeholder alle påkrævede komponenter, og destinationsmiljøet ikke allerede har dem.

  • Når du importerer en administreret løsning, skal alle påkrævede komponenter matche løsningens pakketype. En komponent i en administreret løsning kan kun afhænge af en anden administreret komponent.

Der findes tre typer løsningskomponentafhængigheder:

  • Intern løsning. Dataverse administrerer interne afhængigheder. Disse afhængigheder findes, når en bestemt løsningskomponent ikke kan eksistere uden en anden løsningskomponent.
  • Udgivet. Dataverse opretter publiceringsafhængigheder, når to løsningskomponenter er relateret til hinanden og derefter publiceres. Hvis du vil fjerne denne type afhængighed, skal du fjerne tilknytningen og publicere tabellerne igen.
  • Ikke udgivet. Ikke-publicerede afhængigheder gælder for en ikke-udgivet version af en løsningskomponent, der kan udgives, som opdateres. Når du har publiceret løsningskomponenten, bliver den en publiceret afhængighed.

Løsningsinterne afhængigheder er afhængigheder, hvor handlinger med en løsningskomponent kræver en handling for en anden løsningskomponent. Hvis du f.eks. sletter en tabel, forventer du, at alle tabelattributter slettes sammen med den. Systemet sletter også alle tabelrelationer med andre tabeller.

Men en intern afhængighed kan medføre en udgivet afhængighed og stadig kræve en manuel handling. Hvis du f.eks. inkluderer et opslagsfelt i en tabelformular og derefter sletter den primære tabel i relationen, kan du ikke fuldføre denne sletning, før du fjerner opslagskolonnen fra den relaterede tabelformular og derefter publicerer formularen.

Når du udfører handlinger programmeringsmæssigt med løsninger, skal du bruge meddelelser, der er relateret til Dependency-tabellen. Gå til Afhængighedsentitet for meddelelser, du kan bruge til at identificere afhængigheder, som eventuelt findes, inden du sletter en komponent eller afinstallerer en løsning.

Almindelige løsningskomponenter

Disse løsningskomponenter vises i programmet. Du arbejder med dem direkte, når du tilføjer eller fjerner løsningskomponenter via løsningssiden. Hver af de andre typer løsningskomponenter afhænger af en eller flere af disse løsningskomponenter.

Programfaner (RibbonCustomization)

Båndtilpasninger til programmets bånd og skabeloner til tabelbånd. Programbåndene indeholder ikke definitioner af bånd på tabel- eller formularniveau.

Brugerdefinerede programbånd har ofte publicerede afhængigheder af webressourcer. Brug webressourcer til at definere ikoner til knapper på båndet og JavaScript-funktioner, der styrer, hvornår elementer på båndet vises, eller hvilke handlinger der udføres, når et bestemt styringselement på båndet bruges. Afhængigheder oprettes kun, når bånddefinitionerne bruger direktivet $webresource: til at knytte webressourcen til båndet. Du kan finde flere oplysninger i $webresource directive.

Artikelskabelon (KBArticleTemplate)

En skabelon, som indeholder standardattributterne til en artikel. Der er altid en intern afhængighed mellem artikelskabelonen og KbArticle-tabellen.

Forbindelsesrolle (ConnectionRole)

Rolle, som beskriver en relation mellem to registre. Hver forbindelsesrolle definerer, hvilke typer entitetsposter der kan sammenkædes ved hjælp af forbindelsesrollen. Denne rolle opretter en offentliggjort afhængighed mellem forbindelsesrollen og tabellen.

Kontraktskabelon (ContractTemplate)

En skabelon, som indeholder standardattributterne til en kontrakt. Der er altid en intern afhængighed mellem kontraktskabelonen og kontrakttabellen.

Dashboard eller entitetsformular (SystemForm)

Brug poster i tabellen Systemformular til at definere dashboards og tabelformularer. Når du bruger en SystemForm som en tabelform, er der en intern afhængighed af tabellen. Når du bruger en SystemForm som et dashboard, er der ingen interne afhængigheder. Både tabelformularer og dashboards har ofte udgivne afhængigheder, der er relateret til deres indhold. En tabelformular kan have opslagskolonner, der afhænger af en tabelrelation. Både dashboards og tabelformularer kan indeholde diagrammer eller undergitre, der opretter en udgivet afhængighed af en visning, som derefter har en intern afhængighed af en tabel. En publiceret afhængighed af webressourcer kan oprettes på grund af indhold, der vises i formularen eller dashboardet, eller når en formular indeholder JavaScript-biblioteker. Tabelformularer har offentliggjorte afhængigheder til de attributter, der vises som kolonner i formularen.

Mailskabelon (EmailTemplate)

En skabelon, der indeholder standardattributterne til en mailmeddelelse. En e-mail-skabelon indeholder typisk kolonner, der indsætter data fra angivne tabelattributter. Du kan knytte en mailskabelon til en bestemt tabel, når du opretter den, så der kan være en intern afhængighed af tabellen. En global mailskabelon er ikke knyttet til en bestemt tabel, men den kan have publicerede afhængigheder af tabelattributter, der bruges til at levere data. En proces (workflow) konfigureres ofte til at sende en mail ved hjælp af en mailskabelon, hvorved der oprettes en publiceret afhængighed til workflowet.

Enhed (Entity)

Tabeller, tidligere kendt som entiteter, er den primære struktur, der bruges til at modellere og administrere data i Dataverse. På grund af de interne afhængigheder mellem dem sletter du også diagrammer, formularer, tabelrelationer, visninger og attributter, der er knyttet til tabellen, når du sletter en tabel. Tabellerne har ofte publicerede afhængigheder til processer, dashboards og e-mailskabeloner.

Kolonnesikkerhedsprofil (FieldSecurityProfile)

Profil, der definerer adgangsniveauet for sikrede attributter.

Skabelon til brevfletning (MailMergeTemplate)

Skabelon, der indeholder standardattributter til et brevfletningsdokument. En skabelon til brevfletning har en publiceret afhængighed af den tabel, den er knyttet til.

Indstillingssæt (OptionSet)

En valgkolonne, tidligere kendt som et valgsæt, definerer et sæt valgmuligheder. Et valglisteattribut bruger en valgmulighed til at definere de leverede valgmuligheder. Flere valglisteattributter kan bruge en global valgmulighed, så de valgmuligheder, de indeholder, altid er de samme og kan vedligeholdes på ét sted. En publiceret afhængighed opstår, når en valglisteattribut henviser til en global valgmulighed. Du kan ikke slette et globalt valg, der bruges af en pluklisteattribut.

Plug-in assembly (PluginAssembly)

Assembly, som indeholder én eller flere plug-in-typer. Plug-ins registreres for hændelser, der normalt er knyttet til en tabel. Denne registrering opretter en udgivet afhængighed.

Proces (Workflow)

Sæt af logiske regler, der definerer de trin, der er nødvendige for at automatisere en bestemt forretningsproces, opgave eller sæt handlinger, som skal udføres. Processer giver en bred vifte af handlinger, der opretter offentliggjorte afhængigheder til enhver anden løsningskomponent, som processen refererer til. Hver proces har også en udgivet afhængighed på den tabel, den er knyttet til.

Rapport (Rapport)

Dataoversigt i et letlæseligt layout. En rapport har publicerede afhængigheder af enhver tabel- eller attributdata, der er medtaget i rapporten. Hver rapport skal også være knyttet til en rapportkategori, hvilket skaber en intern afhængighed af en løsningskomponent med navnet Rapportrelateret kategori (ReportCategory). Du kan konfigurere rapporter til at være underrapporter og oprette en publiceret afhængighed med den overordnede rapport.

SDK-meddelelsens behandlingstrin (SDKMessageProcessingStep)

Trin i den kørselsrækkefølge, som et plug-in skal køres i.

Sikkerhedsrolle (rolle)

Gruppering af sikkerhedsrettigheder. Tildel sikkerhedsroller til brugere for at autorisere deres adgang til Dataverse-systemet. Knyt tabelformularer til bestemte sikkerhedsroller for at styre, hvem der kan få vist formularen. Denne tilknytning opretter en publiceret afhængighed mellem sikkerhedsrollen og formularen.

Bemærk

Du kan kun føje sikkerhedsroller fra miljøets forretningsenhed til en løsning. Det er kun brugere med læseadgang til disse sikkerhedsroller, der kan føje dem til en løsning.

tjenesteslutpunkt (ServiceEndpoint)

Tjenesteendepunkt, som du kan kontakte.

Sitemap (SiteMap)

De XML-data, der bruges til at kontrollere navigationsruden i programmet. Du kan oprette et link til webstedsoversigten for at få vist en HTML-webressource, eller et ikon i webstedsoversigten kan bruge en billedwebressource. Når du bruger direktivet $webresource: til at oprette disse tilknytninger, opretter du en offentliggjort afhængighed. Du kan finde flere oplysninger i $webresource-direktivet.

Webresource (WebResource)

Data svarende til filer, der bruges til at udvide en modelbaseret app eller i webudvikling. Webressourcer indeholder klientsidekomponenter, der bruges til at tilvejebringe brugerdefinerede elementer i brugergrænsefladen. Webressourcer kan have afhængigheder af publicerede tabelformularer, bånd og webstedsoversigt. Når du bruger direktivet $webresource: til at oprette tilknytninger på et Ribbon eller på oversigten over webstedet, opretter du en udgivet afhængighed. Du kan finde flere oplysninger i $webresource directive.

Bemærk

Webressourcer kan afhænge af andre webressourcer baseret på relative links. For eksempel kan en HTML-webressource anvende en CSS- eller scriptwebressource. En Silverlight-webressource, der vises uden for en tabelformular eller et diagram, skal have en HTML-webressource til at være vært for den. Disse afhængigheder spores ikke som løsningsafhængigheder.

Se også