Networg: Dataverse solutions, importy a Package Deployer

Krátké executive summary: série tří článků Networg ukazuje, že práce se solution v Dataverse není jen „export ZIPu a import do produkce“. Prakticky rozhoduje typ komponent, vrstvy, publisher, SmartDiff, volba importního režimu a u složitějších release i orchestrace přes Package Deployer. Pro běžné managed deploymenty je nejlepší default single-step upgrade přes pac solution import --stage-and-upgrade; Package Deployer má smysl až ve chvíli, kdy deployment potřebuje data, migrace, více solutions nebo vlastní logiku.

Přehled článků

Článek Hlavní téma Praktická hodnota
Dataverse solution component types Platform components vs. SCF komponenty, vrstvy solution, publisher, managed properties Pomáhá pochopit, proč se komponenty jinak diffují, importují a troubleshootují.
Making Dataverse solution imports fast SmartDiff, single-step upgrade, Update, Stage for upgrade, benchmarky importů Dává konkrétní doporučení, jak zrychlit CI/CD importy a čemu se vyhnout.
Package Deployer for solutions, data and migrations Package Deployer, CMT data, runtime settings, migration hooks, Catalog Ukazuje, kdy už PAC CLI nestačí a kdy je potřeba řízená deployment jednotka.

1. Dataverse solution component types

Originál: Dataverse solution component types

Článek vysvětluje, že Dataverse solution ZIP obsahuje více než jen seznam úprav. Důležité jsou hlavně:

Klíčové rozlišení:

Praktické dopady:

Pro diagnostiku SCF typů článek uvádí endpoint:

GET ORG/api/data/v9.2/solutioncomponentdefinitions?$select=name,objecttypecode

2. Making Dataverse solution imports fast

Originál: Making Dataverse solution imports fast

Tento díl řeší, proč jsou importy managed solutions pomalé a jak je zrychlit. Hlavní doporučení: pro rutinní managed deployment používat single-step upgrade:

pac solution import --stage-and-upgrade

Technicky jde o StageAndUpgradeRequest. Výhody:

SmartDiff porovnává nově importovaný ZIP s předchozí verzí a zpracuje jen změněné komponenty. Neplatí ale vždy:

Benchmark z článku: solution měla 79 komponent a každá nová verze měnila jednu položku.

Scénář Zpracováno Server time SmartDiff
Power Platform Pipelines install 79/79 404 s ne
Power Platform Pipelines upgrade 28/79 120 s ano
Maker UI Upgrade / StageAndUpgradeAsync 28/79 82 s ano
Direct API Upgrade / StageAndUpgradeAsync 28/79 95 s ano
Maker UI Update / ImportSolutionAsync 1/79 + 7 entities 15 s ano
Maker UI Stage for upgrade + Apply 79/79 dvakrát 626 s ne
Direct API Upgrade s OverwriteUnmanagedCustomizations=true 79/79 414 s ne
Package Deployer Upgrade 28/79 93 s ano

Praktické závěry:

Troubleshooting pomalých importů:

3. Package Deployer for solutions, data and migrations

Originál: Package Deployer for solutions, data and migrations

Package Deployer není „rychlejší PAC CLI“. Je to pokročilá orchestrace deploymentu, která dává smysl hlavně tehdy, když jeden import solution nestačí.

Typické důvody pro použití:

Důležité rozdíly proti PAC CLI:

Package Deployer 4.0+ podle článku automaticky volí one-step nebo two-step upgrade:

To je zásadní pro situace typu „přesun dat ze starého sloupce do nového“: nejdřív musí současně existovat staré i nové schéma, pak se přesunou data, a až potom se stará komponenta odstraní.

Pozor na version-skip logiku:

Článek zdůrazňuje, že SkipSameVersion a SkipLowerVersion jsou tiché. Deployment může skončit úspěšně, i když konkrétní solution nebyla reálně importována. Proto je nutné číst Package Deployer logy, hlavně SOLUTION_STATS.

Omezení:

Společná syntéza: co z toho plyne pro solution v Dataverse

Pro práci se solution v Dataverse je nejdůležitější oddělit tři vrstvy rozhodování:

  1. Co je v solution: platformní komponenty, SCF komponenty, tabulky, sloupce, formuláře, flows, pluginy, data.
  2. Jak se solution importuje: Update, single-step Upgrade, holding Stage for upgrade + Apply, Package Deployer, Catalog.
  3. Co se děje v cílovém prostředí: managed vrstvy, Active layer, unmanaged drift, dependencies, publisher ownership, managed properties.

Praktický default pro většinu projektů:

Největší výkonnostní páky:

Praktický checklist pro Power Platform / Dataverse projekty

Před návrhem solution:

Před deploymentem:

Při složitějším release:

Při troubleshooting:

Rizika, limity a poznámky

Zdroje