Zjednodušení aktualizací řešení vytvořením oprav
Když přidáte entitu do řešení a exportujete toto řešení, entity a veškeré související majetky se exportují do daného řešení. Tato aktiva zahrnují atributy, formuláře, pohledy, vztahy, vizualizace a veškerá další aktiva, která jsou s touto entitou zabalena. Export všech objektů znamená, že můžete nechtěně upravovat objekty v cílovém rozmístění nebo přenášet neúmyslné závislosti.
Chcete-li to vyřešit, můžete vytvořit a publikovat opravy řešení, které obsahují podkomponenty entit, nikoli publikování celé entity a všech jejích aktiv. Původní řešení a jedna nebo více souvisejících oprav lze později srolovat (sloučit) do aktualizované verze řešení, které pak může nahradit původní řešení v cílové organizaci Microsoft Dataverse.
Opravy
Opravy můžete aplikovat na spravovaná nebo nespravovaná řešení a zahrnout pouze změny entit a aktiv souvisejících entit. Opravy neobsahují žádné nepřizpůsobené systémové komponenty nebo vztahy, na kterých závisí, protože tyto komponenty již existují v nasazené organizaci. V určitém okamžiku vývojového cyklu můžete všechny opravy sbalit do nové verze řešení a nahradit původní řešení, ze kterého byly vytvořeny.
Opravy jsou uloženy v databázi Dataverse jako záznamy entit Solution
. Nenulový atribut ParentSolutionId
označuje, že řešením je oprava. Opravy lze vytvářet a spravovat prostřednictvím SDK pro .NET nebo webových rozhraní API, které jsou užitečné pro vývoj automatizace, jako je skript instalace produktu. Nicméně, webová aplikace Dataverse poskytuje různé webové formuláře, které vám umožňují interaktivně vytvářet a spravovat záplaty.
Opravy lze vytvořit pouze z nadřazeného řešení pomocí CloneAsPatchRequest nebo akce CloneAsPatch.
Nadřazená oprava nemůže být opravou.
Opravy mohou mít pouze jedno nadřazené řešení.
Oprava vytváří závislost (na úrovni řešení) na svém nadřazeném řešení.
Opravu můžete nainstalovat pouze v případě, že je k dispozici nadřazené řešení.
Opravu nelze nainstalovat, pokud jedinečný název a číslo hlavní/vedlejší verze nadřazeného řešení, jak je identifikováno
ParentSolutionId
, neodpovídají těm nadřazeným řešením nainstalovaným v cílové organizaci.Verze opravy musí mít stejné hlavní a vedlejší číslo, ale vyšší číslo sestavení a vydání, než číslo verze nadřazeného řešení. Zobrazovaný název může být jiný.
Pokud řešení obsahuje opravy, musí mít následující opravy číselně vyšší číslo verze než jakákoli stávající záplata pro dané řešení.
Opravy podporují stejné operace jako řešení, jako je aditivní aktualizace, ale nikoli odstranění. Nelze odebrat součásti z řešení pomocí opravy. Chcete-li odebrat součásti z řešení, proveďte upgrade.
Opravy exportované jako spravované musí být importovány nad spravované nadřazené řešení. Pravidlem je, že ochrana oprav (spravovaných nebo nespravovaných) se musí shodovat s nadřazenou položkou.
Nepoužívejte nespravované opravy k produkčním účelům.
Opravy jsou podporovány pouze v organizacích Dataverse verze 8.0 nebo novější.
Nástroje SolutionPackager a PackageDeployer v této verzi podporují opravy řešení. Všechny možnosti příkazového řádku, které se vztahují k opravám, najdete v nápovědě online.
Vytvořit opravu
Vytvořte opravu z nespravovaného řešení v organizaci pomocí zprávy CloneAsPatchRequest nebo akce CloneAsPatch nebo pomocí webové aplikace. Jakmile vytvoříte opravu, původní řešení se uzamkne a nemůže být změněno nebo exportováno, pokud existují v organizaci závislé opravy, které identifikují řešení jako nadřazené řešení. Verzování oprav je podobné verzování řešení a je zadáno v následujícím formátu: major.minor.build.release. Když vytvoříte opravu, nemůžete změnit existující hlavní nebo menší verze řešení.
Import a export opravy
Můžete použít SDK pro .NET nebo webové API, webovou aplikaci nebo nástroj Package Deployer pro export a import opravy. Příslušné třídy požadavků SDK pro .NET jsou ImportSolutionRequest a ExportSolutionRequest. Příslušné akce pro webové rozhraní API jsou akce ImportSolution a akce ExportSolution.
Příklady oprav
V následující tabulce jsou uvedeny podrobnosti o příkladu oprav. Všimněte si, že v tomto příkladu jsou řešení a opravy importovány v číselném pořadí a jsou aditivní, což je v souladu s importem řešení obecně.
Název opravy | Popis |
---|---|
SolutionA, verze 1.0 (nespravovaná) | Obsahuje entityA se 6 poli. |
SolutionA, verze 1.0.1.0 (nespravovaná) | Obsahuje entityA s 6 poli (3 aktualizovány) a přidá entityB s 10 poli. |
SolutionA, verze 1.0.2.0 (nespravovaná) | Obsahuje entityC s 10 poli. |
Postup importu je následující.
Vývojář nebo přizpůsobitel nejprve importuje základní řešení (SolutionA 1.0) do organizace. Výsledkem je entityA se 6 poli v organizaci.
Dále je importována oprava SolutionA 1.0.1.0. Organizace nyní obsahuje entityA s 6 poli (3 byly aktualizovány) plus entityB s 10 poli.
Naposledy je importována oprava SolutionA 1.0.2.0. Organizace nyní obsahuje entityA s 6 poli (3 byly aktualizovány) entityB s 10 poli plus entityC s 10 poli.
Další příklad opravy
Podívejme se na další příklad opravy s podrobnostmi uvedenými v následující tabulce.
Název opravy | Popis |
---|---|
SolutionA, verze 1.0 (nespravovaná, základní řešení) | Obsahuje entitu Account , kde je délka pole čísla účtu upravena od 20 do 30 znaků. |
SolutionB, verze 2.0 (nespravovaná, jiný prodejce) | Obsahuje entitu Account , kde je délka pole čísla účtu upravena na 50 znaků. |
SolutionA, verze 1.0.1.0 (nespravovaná, oprava) | Obsahuje aktualizaci entity Account , kde je délka pole čísla účtu upravena na 35 znaků. |
Postup importu je následující:
Vývojář nebo přizpůsobitel nejprve importuje základní řešení (SolutionA 1.0) do organizace. Výsledkem je entita
Account
s polem číslo obchodního vztahu o 30 znacích.SolutionB je importován. Organizace nyní obsahuje entitu
Account
s polem číslo obchodního vztahu o 50 znacích.Je importována oprava SolutionA 1.0.1.0. Organizace stále obsahuje entitu
Account
s polem číslo obchodního vztahu o 50 znacích, jak bylo způsobeno řešením SolutionB.SolutionB je odinstalováno. Organizace nyní obsahuje entitu
Account
s polem číslo obchodního vztahu o 35 znacích, jak bylo zajištěné opravou SolutionA 1.0.1.0.
Odstranění opravy
Můžete odstranit opravu nebo základní (nadřazené) řešení pomocí DeleteRequest nebo pro webové API použijte metodu HTTP DELETE
. Proces odstranění se liší u spravovaného nebo nespravovaného řešení, které má v organizaci jednu nebo více oprav.
U nespravovaného řešení musíte před odinstalováním základního řešení nejprve odinstalovat všechny opravy ze základního řešení v obráceném pořadí, než v jakém byly vytvořeny.
Pro spravované řešení jednoduše odinstalujete základní řešení. Systém Dataverse automaticky odinstaluje opravy v obráceném pořadí verzí před odinstalací základního řešení. Můžete také jednoduše odinstalovat jednu opravu.
Aktualizace řešení
Aktualizace řešení zahrnuje sbalení (sloučení) všech oprav tohoto řešení do nové verze řešení. Poté se toto řešení odemkne a může být znovu upraveno (pouze nespravované řešení) nebo exportováno. Pro spravované řešení nejsou povoleny žádné další úpravy řešení kromě vytváření oprav z nově aktualizovaného řešení. Chcete-li sbalit záplaty do nespravovaného řešení, použijte CloneAsSolutionRequest nebo akci CloneAsSolution. Klonování řešení vytváří novou verzi nespravovaného řešení, která zahrnuje všechny své opravy, s vyšším číslem verze major.minor, stejným jedinečným názvem a zobrazovaným jménem.
Pro spravované řešení jsou věci řešeny trochu jinak. Nejprve klonujete nespravované řešení (A), začleníte všechny jeho záplaty a poté je exportujete jako spravované řešení (B). V cílové organizaci, která obsahuje spravovanou verzi řešení (A) a jeho opravy, importujete spravované řešení (B) a poté spustíte DeleteAndPromoteRequest nebo akci DeleteAndPromote, a tak nahradíte spravované řešení (A) a jeho záplaty upgradovaným spravovaným řešením (B), které má vyšší číslo verze.