Čítať v angličtine

Zdieľať cez


Vytvorenie záplat s cieľom zjednodušiť aktualizácie riešení

Keď pridáte entitu do riešenia a exportujete toto riešenie, entita a všetky jej súvisiace aktíva sa exportujú do tohto riešenia. Tieto aktíva zahŕňajú atribúty, formuláre, pohľady, vzťahy a vizualizácie a akékoľvek ďalšie aktíva, ktoré sú zabalené do entity. Export všetkých objektov znamená, že môžete neúmyselne upravovať objekty v cieľovom nasadení alebo prenášať neúmyselné závislosti.

Ak to chcete vyriešiť, môžete vytvoriť a zverejniť záplaty riešení, ktoré obsahujú podkomponenty entít, a nie zverejňovať celú entitu a všetky jej aktíva. Pôvodné riešenie a jedna alebo viac súvisiacich záplat môžu byť neskôr nasadené (zlúčené) do aktualizovanej verzie riešenia, ktoré potom môže nahradiť pôvodné riešenie v cieľovej organizácii Microsoft Dataverse.

Záplaty

Záplaty môžete použiť na spravované alebo nespravované riešenia a zahrnúť iba zmeny entít a súvisiacich entít. Záplaty neobsahujú žiadne neprispôsobené systémové komponenty ani vzťahy, od ktorých závisia, pretože tieto súčasti už existujú v nasadenej organizácii. V určitom okamihu vášho vývojového cyklu môžete zahrnúť všetky záplaty do novej verzie riešenia a nahradiť pôvodné riešenie, z ktorého boli záplaty vytvorené.

Záplaty sú uložené v databáze Dataverse ako záznamy entity Solution. Neulový atribút ParentSolutionId označuje, že riešenie je záplata. Opravy je možné vytvárať a spravovať prostredníctvom SDK for .NET alebo webových rozhraní API, ktoré sú užitočné pri vývoji automatizácie, ako je napríklad skript inštalácie produktu. Webová aplikácia Dataverse však poskytuje rôzne webové formuláre, ktoré vám umožňujú interaktívne vytvárať a spravovať záplaty.

  • Záplaty je možné vytvoriť iba z nadradeného riešenia pomocou CloneAsPatchRequest alebo akcie CloneAsPatch.

  • Rodič náplasti nemôže byť náplasťou.

  • Záplaty môžu mať iba jedno nadradené riešenie.

  • Záplata vytvára závislosť (na úrovni riešenia) od svojho nadradeného riešenia.

  • Záplatu môžete inštalovať iba vtedy, ak je k dispozícii nadradené riešenie.

  • Opravu nemôžete nainštalovať, ak sa jedinečný názov a hlavné/vedľajšie číslo verzie nadradeného riešenia, ako je identifikované ParentSolutionId, nezhodujú s nadradeným riešením nainštalovaným v cieľovej organizácii.

  • Verzia záplaty musí mať rovnaké hlavné a vedľajšie číslo, ale vyššie číslo zostavenia a vydania, ako číslo verzie nadradeného riešenia. Zobrazovaný názov sa môže líšiť.

  • Ak má riešenie záplaty, následné záplaty musia mať číselne vyššie číslo verzie ako akékoľvek existujúce záplaty pre dané riešenie.

  • Záplaty podporujú rovnaké operácie ako riešenia, ako je napríklad aditívna aktualizácia, ale nie odstránenie. Pomocou záplaty nemôžete odstrániť súčasti z riešenia. Ak chcete odstrániť súčasti z riešenia, vykonajte inováciu.

  • Záplaty exportované ako spravované sa musia importovať nad spravované nadradené riešenie. Pravidlom je, že ochrana záplaty (spravovaná alebo nespravovaná) sa musí zhodovať s rodičom.

  • Na výrobné účely nepoužívajte nespravované záplaty.

  • Opravy sú podporované iba v organizáciách Dataverse verzie 8.0 alebo novšej.

    Nástroje SolutionPackager a PackageDeployer v tomto vydaní podporujú záplaty riešení. Všetky možnosti príkazového riadku, ktoré sa týkajú záplat nájdete v online pomocníkovi tohto nástroja.

Vytvorenie záplaty

Vytvorte záplatu z nespravovaného riešenia v organizácii pomocou správy CloneAsPatchRequest alebo akcie CloneAsPatch alebo pomocou webovej aplikácie. Po vytvorení opravy sa pôvodné riešenie uzamkne a nemôžete ho zmeniť ani exportovať, pokiaľ v organizácii existujú závislé opravy, ktoré identifikujú riešenie ako nadradené riešenie. Tvorba verzií záplat je podobná tvorbe verzií riešenia a je špecifikovaná v nasledujúcom formáte: hlavná.vedľajšia.zostavenie.vydanie. Pri vytváraní opravy nemôžete vykonávať zmeny v existujúcich hlavných alebo vedľajších verziách riešenia.

Emport a import záplaty

Na export a import opravy môžete použiť SDK pre .NET alebo webové rozhrania API, webovú aplikáciu alebo nástroj Package Deployer . Príslušné triedy požiadaviek SDK pre .NET sú ImportSolutionRequest a ExportSolutionRequest. Relevantné akcie pre webové rozhranie API sú akcia ImportSolution a akcia ExportSolution.

Príklad plátania

V nasledujúcej tabuľke sú uvedené podrobnosti príkladov plátania. Všimnite si, že v tomto príklade sa riešenie a záplaty importujú v číselnom poradí a sú aditívne, čo je v súlade so všeobecným importom riešenia.

Názov záplaty Popis
Riešenie A, verzia 1.0 (nespravované) Obsahuje entitu A so 6 poľami.
Riešenie A, verzia 1.0.1.0 (nespravované) Obsahuje entitu A so 6 poľami (3 aktualizované) a pridá entitu B s 10 poliami.
Riešenie A, verzia 1.0.2.0 (nespravované) Obsahuje entitu C so 10 poľami.

Proces importu je nasledujúci.

  1. Vývojár alebo prispôsobovač najprv importuje základné riešenie (Riešenie A 1.0) do organizácie. Výsledkom je entita A so 6 poľami v organizácii.

  2. Ďalej je importovaná záplata Riešenie A 1.0.1.0. Organizácia teraz obsahuje entitu A so 6 poľami (3 boli aktualizované) plus entitu B s 10 poľami.

  3. Nakoniec je importovaná záplata Riešenie A 1.0.2.0. Organizácia teraz obsahuje entitu A so 6 poľami (3 boli aktualizované), entitu B s 10 poľami a entitu C s 10 poľami.

Ďalší príklad plátania

Pozrime sa na ďalší príklad plátania, s podrobnosťami uvedenými v nasledujúcej tabuľke.

Názov záplaty Popis
Riešenie A, verzia 1.0 (nespravované, základné riešenie) Obsahuje entitu Account, kde je dĺžka poľa s číslom obchodného vzťahu upravená od 20 do 30 znakov.
Riešenie B, verzia 2.0 (nespravované, iný predajca) Obsahuje entitu Account, kde je dĺžka poľa s číslom obchodného vzťahu upravená do 50 znakov.
Riešenie A, verzia 1.0.1.0 (nespravované, záplata) Obsahuje aktualizáciu entity Account, kde je dĺžka poľa s číslom obchodného vzťahu upravená do 35 znakov.

Proces importu je nasledujúci:

  1. Vývojár alebo prispôsobovač najprv importuje základné riešenie (Riešenie A 1.0) do organizácie. Výsledkom je entita Account s dĺžkou poľa s číslom obchodného vzťahu 30 znakov.

  2. Riešenie B je importované. Organizácia teraz obsahuje entitu Account s dĺžkou poľa s číslom obchodného vzťahu 50 znakov.

  3. Je importovaná záplata Riešenie A 1.0.1.0. Organizácia stále obsahuje entitu Account s dĺžkou poľa s číslom obchodného vzťahu 50 znakov, ako bolo použité pre Riešenie B.

  4. Riešenie B je odinštalované. Organizácia teraz obsahuje entitu Account s dĺžkou poľa s číslom obchodného vzťahu 35 znakov, ako bolo použité pre záplatu Riešenia A 1.0.1.0.

Odstránenie záplaty

Záplatu alebo základné (nadradené) riešenie môžete odstrániť pomocou DeleteRequest alebo pre webové API použite metódu HTTP DELETE. Proces odstránenia sa líši pre spravované alebo nespravované riešenie, ktoré má v organizácii jednu alebo viac záplat.

V prípade nespravovaného riešenia musíte pred odinštalovaním základného riešenia najskôr odinštalovať všetky záplaty základného riešenia v opačnom poradí, v akom boli vytvorené.

V prípade spravovaného riešenie jednoducho odinštalujete základné riešenie. Systém Dataverse automaticky odinštaluje záplaty v opačnom poradí pred odinštalovaním základného riešenia. Môžete tiež len odinštalovať jednu záplatu.

Aktualizácia riešenia

Aktualizácia riešenia zahŕňa zahrnutie (zlúčenie) všetkých záplat pre toto riešenie do novej verzie riešenia. Potom sa toto riešenie odomkne a môže sa opäť zmeniť (iba nespravované riešenie) alebo exportovať. Pre spravované riešenie nie sú povolené žiadne ďalšie úpravy riešenia, s výnimkou vytvárania záplat z novo aktualizovaného riešenia. Ak chcete zahrnúť záplaty do nespravovaného riešenia, použite CloneAsSolutionRequest alebo akciu CloneAsSolution. Klonovanie riešenia vytvára novú verziu nespravovaného riešenia, ktorá obsahuje všetky svoje opravy, s vyšším číslom verzie hlavé.vedľajšie, rovnakým jedinečným názvom a zobrazovaným názvom.

V prípade spravovaného riešenie to funguje trochu inak. Najprv naklonujete nespravované riešenie (A), ktoré zahŕňa všetky jeho záplaty a potom ho exportujete ako spravované riešenie (B). V cieľovej organizácii, ktorá obsahuje spravovanú verziu riešenia (A) a jeho záplaty, importujete spravované riešenie (B) a potom spustite DeleteAndPromoteRequest alebo akciu DeleteAndPromote na náhradu spravovaného riešenia (A) a jeho záplat inovovaným spravovaním riešením (B), ktoré má vyššie číslo verzie.

Pozrite si tiež

Použite segmentované riešenia