Opret programrettelser for at forenkle løsningsopdateringer
Hvis du tilføjer et objekt til en løsning og eksporterer løsningen, eksporteres objektet og alle dets relaterede aktiver i den pågældende løsning. Disse aktiver omfatter attributter, formularer, visninger, relationer, visualiseringer og andre aktiver, som er pakket med objektet. Hvis du eksporterer alle objekter, kan du utilsigtet ændre objekter på destinationsudrulningen eller overføre utilsigtede afhængigheder.
For at løse dette kan du oprette og udgive programrettelser til løsninger, der indeholder delkomponenter af enheder, i stedet for at udgive hele objektet, og alle dets aktiver. Den oprindelige løsning og en eller flere relaterede programrettelser kan blive samlet (flettet) på et senere tidspunkt i en opdateret version af den oprindelige løsning, som derefter kan erstatte den oprindelige løsning i Microsoft Dataverse-målorganisationen.
Programrettelser
Du kan anvende programrettelser til administrerede eller ikke-administrerede løsninger og kun medtage ændringer af objekter og relaterede objektaktiver. Programrettelser indeholder ikke ikke-tilpassede systemkomponenter eller relationer, som de er afhængige af, da disse komponenter allerede findes i den organisation, der er udrullet til. På et tidspunkt i din udviklingscyklus kan du akkumulere alle programrettelser til en ny løsningsversion, som erstatter den oprindelige løsning, som programrettelserne blev oprettet fra.
Programrettelser, der er gemt i Dataverse-database som Solution
-objektposter. En ikke-null ParentSolutionId
-attribut angiver, at løsningen er en programrettelse. Programrettelser kan oprettes og administreres via SDK for .NET eller Web-API'erne, hvilket er nyttigt for udvikling af automatisering, f.eks et produktinstallations-script. Dataverse-webprogrammet indeholder imidlertid forskellige webformularer, som gør det muligt at oprette og administrere programrettelser interaktivt.
Programrettelser kan kun oprettes fra en overordnet løsning ved hjælp af CloneAsPatchRequest eller CloneAsPatch-handling.
Den overordnede programrettelse kan ikke være en programrettelse.
Programrettelser kan kun have én overordnet løsning.
En programrettelse opretter en afhængighed (på løsningsniveau) på den overordnede løsning.
Du kan kun installere en programrettelse, hvis den overordnede løsning er til stede.
Du kan ikke installere en programrettelse, medmindre den overordnede løsnings entydige navn og det overordnede/underordnede-versionsnummer som identificeret af
ParentSolutionId
ikke stemmer overens med den overordnede løsning, der er installeret i målorganisationen.En programrettelsesversion skal have det samme overordnede og underordnede nummer, men et højere build- og versionsnummer end den overordnede løsnings versionsnummer. Det viste navn kan være forskelligt.
Hvis en løsning indeholder programrettelser, skal efterfølgende programrettelser have et numerisk højere versionsnummer end nogen eksisterende programrettelse til denne løsning.
Programrettelser understøtter de samme operationer som løsninger, f.eks. en yderligere opdatering, men ikke fjernelse. Du kan ikke fjerne komponenter fra en løsning ved hjælp af en programrettelse. Hvis du vil fjerne komponenter fra en løsning, skal du udføre en opgradering.
Programrettelser, der eksporteres som administrerede, skal importeres oven på en administreret overordnet løsning. Reglen er, at programrettelsesbeskyttelsen (administreret eller ikke-administreret) skal svare til den overordnede løsning.
Brug ikke ikke-administrerede programrettelser til produktionsformål.
Programrettelser understøttes kun i Dataverse-organisationer version 8.0 eller nyere.
Værktøjerne SolutionPackager og PackageDeployer i denne udgave understøtter programrettelser. Se værktøjets onlinehjælp for at få de kommandolinjeparametre, der er relateret til programrettelser.
Opret en programrettelse
Opret en programrettelse fra et ikke-administreret løsning i en organisation ved hjælp af meddelelsen CloneAsPatchRequest eller handlingen CloneAsPatch, eller ved hjælp af webprogrammet. Når du opretter programrettelsen, låses den oprindelige løsning, og du kan ikke ændre eller eksportere den, så længe der findes afhængige programrettelser i organisationen, der identificerer løsningen som den overordnede løsning. Programrettelses-versionsstyring svarer til løsnings-versionsstyring og angives i det følgende format: major.minor.build.release. Du kan ikke foretage ændringer af de eksisterende overordnede eller underordnede løsningsversioner, når du opretter en programrettelse.
Import og eksport af en programrettelse
Du kan bruge SDK for .NET eller Web API'er, webprogrammet eller Package Deployer-værktøjet til at eksportere og importere en programrettelse. De relevante SDK for .NET-anmodningsklasser er ImportSolutionRequest og ExportSolutionRequest. De relevante handlinger for web-API'en er ImportSolution-handlingen og ExportSolution-handlingen.
Eksempler på programrettelse
Følgende tabel indeholder detaljer om et eksempel på programrettelse. Bemærk, at i dette eksempel importeres løsningen og programrettelserne i numerisk rækkefølge og er additive, hvilket er i overensstemmelse med løsningsimportering generelt.
Programrettelsens navn | Beskrivelse |
---|---|
SolutionA, version 1.0 (ikke-administreret) | Indeholder entityA med 6 felter. |
SolutionA, version 1.0.1.0 (ikke-administreret) | Indeholder entityA med 6 felter (3 opdateret), og tilføjer entityB med 10 felter. |
SolutionA, version 1.0.2.0 (ikke-administreret) | Indeholder entityC med 10 felter. |
Importprocessen er som følger.
Udvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) i organisationen. Resultatet er entityA med 6 felter i organisationen.
Derefter importeres SolutionA-programrettelse 1.0.1.0. Organisationen indeholder nu entityA med 6 felter (3 er blevet opdateret) og entityB med 10 felter.
Til sidst importeres SolutionA-programrettelse 1.0.2.0. Organisationen indeholder nu entityA med 6 felter (3 er blevet opdateret), entityB med 10 felter og entityC med 10 felter.
Endnu et eksempel på programrettelse
Lad os se på endnu et eksempel på programrettelse, hvor detaljerne er angivet i den følgende tabel.
Programrettelsens navn | Beskrivelse |
---|---|
SolutionA, version 1.0 (ikke-administreret, basisløsning) | Indeholder Account -objektet, hvor længden af kontonummerfeltet justeres fra 20 til 30 tegn. |
SolutionB, version 2.0 (ikke-administreret, anden leverandør) | Indeholder Account -objektet, hvor længden af kontonummerfeltet justeres til 50 tegn. |
SolutionA, version 1.0.1.0 (ikke-administreret programrettelse) | Indeholder en opdatering til Account -objektet, hvor længden af kontonummerfeltet justeres fra til 35 tegn. |
Importprocessen er som følger:
Udvikleren eller tilpasseren importerer først basisløsningen (SolutionA 1.0) i organisationen. Resultatet er et
Account
-objekt med et kontonummerfelt på 30 tegn.SolutionB importeres. Organisationen indeholder nu et
Account
-objekt med et kontonummerfelt på 50 tegn.SolutionA-programrettelse 1.0.1.0 importeres. Organisationen indeholder stadig et
Account
-objekt med et kontonummerfelt på 50 tegn som implementeret af SolutionB.SolutionB er ikke installeret. Organisationen indeholder nu et
Account
-objekt med et kontonummerfelt på 35 tegn som implementeret af programrettelsen SolutionA 1.0.1.0.
Slette en programrettelse
Du kan slette en programrettelse eller (overordnet) basisløsning ved hjælp af DeleteRequest eller, for Web-API'en, bruge metoden HTTP DELETE
. Sletningsprocessen er forskellig for en administreret eller ikke-administreret løsning, der har en eller flere programrettelser i organisationen.
For en ikke-administreret løsning skal du først fjerne alle programrettelser for basisløsningen i omvendt versionsrækkefølge i forhold til den, de blev oprettet i, før du afinstallerer basisløsningen.
For en administreret løsning kan du ganske enkelt fjerne basisløsningen. Dataverse-systemet afinstallerer automatisk programrettelserne i omvendt versionsrækkefølge, før basisløsningen afinstalleres. Du kan også blot afinstallere en enkelt programrettelse.
Opdater en løsning
Opdatering af en løsning omfatter akkumulering af (fletning) alle programrettelser til denne løsning i en ny version af løsningen. Bagefter oplåses løsningen og kan igen ændres (kun ikke-administrerede løsninger) eller eksporteres. For administrerede løsninger er ingen yderligere ændringer af løsningen tilladt undtagen for oprettelse programrettelser fra den nyligt opdaterede løsning. For at akkumulere programrettelser i en ikke-administreret løsning kan du bruge CloneAsSolutionRequest eller handlingen CloneAsSolution. Kloning af en løsning opretter en ny version af den ikke-administrerede løsning, som indeholder alle løsningens programrettelser, med et højere overordnet.underordnet-versionsnummer, samme entydige navn og et visningsnavn.
For en administreret løsning foregår tingene lidt anderledes. Du kloner først den ikke-administrerede løsning (A), som indeholder alle programrettelserne, og eksportere den derefter som en administreret løsning (B). I målorganisationen, der indeholder den administrerede version af løsning (A) og dens programrettelser, importerer du den administrerede løsning (B) og udfører derefter DeleteAndPromoteRequest eller handlingen DeleteAndPromote for at erstatte den administrerede løsning (A) og dens programrettelser med den opgraderede administrerede løsning (B), der har et højere versionsnummer.