Referenčné informácie o formáte zdrojového ovládacieho prvku YAML riešenia

Tento článok je odkaz na formát ovládacieho prvku zdroja založeného na YAML, ktorý sa používa v týchto prípadoch:

  • Potvrdiť riešenia pomocou natívnej integrácie Dataverse Git v Power Apps.
  • Extrahovanie riešení pomocou pac solution clone alebo pac solution sync.
  • Manuálne spustite solutionPackager v priečinku, ktorý obsahuje súbory manifestu YAML.

Formát YAML sa líši od klasického rozloženia XML. Pochopenie štruktúry je dôležité, ak chcete manuálne zbaliť priečinok YAML späť do .zip súboru, ktorý dokáže importovať dataverse.

Dôležité

Podpora formátu zdrojového ovládacieho prvku YAML v rozhraní pac CLI vyžaduje Microsoft. PowerApps.CLI verzia 2.4.1 alebo novšia. Najnovšiu verziu si stiahnite z lokality NuGet alebo aktualizujte prostredníctvom pac install latest. SolutionPackager.exe, ktorá sa dodáva s balíkom NuGet, podporuje formát YAML z rovnakej verzie.

Prehľad štruktúry priečinkov

Koreň odkladacieho priestoru vo formáte YAML obsahuje nasledujúce adresáre najvyššej úrovne:

<repositoryRoot>/
├── solutions/
│   └── <SolutionUniqueName>/       (one subfolder per solution)
│       ├── solution.yml
│       ├── solutioncomponents.yml
│       ├── rootcomponents.yml
│       └── missingdependencies.yml
├── publishers/
│   └── <PublisherUniqueName>/      (one subfolder per publisher)
│       └── publisher.yml
├── entities/                        (entity components, if any)
│   └── <entity_schema_name>/
│       ├── attributes/
│       ├── formxml/
│       ├── savedqueries/
│       └── ...
├── workflows/                       (classic workflow definitions, if any)
├── modernflows/                     (Power Automate cloud flows, if any)
├── canvasapps/                      (canvas app .msapp files, if any)
│   └── <canvas_app_schema_name>/
│       └── <name>.msapp
├── environmentvariabledefinitions/  (environment variable definitions, if any)
├── connectors/                      (custom connectors, if any)
└── [other component folders]/

Zoznamy solutions/ a publishers/ sú povinné. Všetky priečinky súčastí v koreňovom adresári sú voliteľné a závisia od toho, čo riešenie obsahuje.

Dôležité

Všetky súbory manifestov YAML (solution.yml, publisher.ymlatď.) musia byť umiestnené pod príslušnými podadresármi (solutions/<name>/, publishers/<name>/). Ich umiestnenie do koreňa odkladacieho priestoru bráni detekcii formátu a spôsobí, že nástroj SolutionPackager sa vráti do formátu XML – čo spôsobuje zavádzajúcu chybu o chýbajúcej Customizations.xmlmnožine riešení . Ďalšie informácie: Riešenie problémov s nástrojmi SolutionPackager

Formátovanie automatického zisťovania

SolutionPackager (a pac solution pack) automaticky rozpozná formát takto:

Podmienka Zistený formát Správanie
solutions/*/solution.yml found – jedno riešenie YAML Názov riešenia odvodený od názvu podpriečinka
solutions/*/solution.yml nájdené – viaceré riešenia YAML /SolutionName argument required to specify which solution to pack (argument required to specify which solution to pack ( ktoré riešenie sa má zbaliť)
Neexistuje žiadny solutions/ podadresár. XML (staršia verzia) Očakáva Other\Solution.xml sa a Other\Customizations.xml

Súbory manifestov

solution.yml

Nachádza sa na adrese solutions/<SolutionUniqueName>/solution.yml. Obsahuje metaúdaje riešenia najvyššej úrovne – ekvivalent solution.xml yaml vo formáte XML.

Kľúčové polia zahŕňajú jedinečný názov riešenia, verziu, popisný názov, popis a odkaz na vydavateľa.

solutioncomponents.yml

Nachádza sa na adrese solutions/<SolutionUniqueName>/solutioncomponents.yml. Obsahuje zoznam relatívnych ciest ku všetkým súborom súčastí zahrnutým v tomto riešení. SolutionPackager prečíta tento súbor počas balíka a vyhľadá zdroje súčastí.

Príklad výňatok:

- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher

rootcomponents.yml

Nachádza sa na adrese solutions/<SolutionUniqueName>/rootcomponents.yml. Uvádza súčasti koreňovej úrovne (zvyčajne tabuľky a iné objekty najvyššej úrovne), ktoré patria do tohto riešenia.

Poznámka

Ak je súčasť deklarovaná, ale jej zdrojové súbory sa v priečinku nenachádzajú (napríklad v súbore aplikácie rootcomponents.yml s plátnom v .msapp časti canvasapps/<name>/), SolutionPackager vyžaruje upozornenie a vynechá túto súčasť z balíka .zip. Operácia balíka sa úspešne dokončí pomocou kódu výstupu 0.

Úspech balíka nezaručuje úspešnosť importu. Ak solutioncomponents.yml vynechá požadované cesty závislosti – napríklad priečinky nadradenej entity alebo definície vzťahov v časti entityrelationships/ – balíky riešení bez chyby, ale pri importe zlyhá, zobrazí sa hlásenie typu : "Atribúty chýbajú priradené definície vzťahov.". Vždy zahrnujte solutioncomponents.yml všetky závislé entity a vzťahy, nielen tie vo vlastníctve riešenia.

missingdependencies.yml

Nachádza sa na adrese solutions/<SolutionUniqueName>/missingdependencies.yml. Zaznamenáva všetky závislosti riešenia, ktoré neboli prítomné pri poslednom exporte riešenia. Používa sa na informačné účely a na overenie úplnosti importu.

publisher.yml

Nachádza sa na adrese publishers/<PublisherUniqueName>/publisher.yml. Obsahuje definíciu vydavateľa – jedinečný názov, zobrazovaný názov, predponu prispôsobenia a predponu hodnoty možnosti.

Minimálna požadovaná štruktúra:

Publisher:
  UniqueName: mypublisher
  LocalizedNames:
    LocalizedName:
      '@description': My Publisher
      '@languagecode': '1033'
  Descriptions:
  EMailAddress:
    '@xsi:nil': 'true'
    '@xmlns:xsi': http://www.w3.org/2001/XMLSchema-instance
  SupportingWebsiteUrl:
    '@xsi:nil': 'true'
    '@xmlns:xsi': http://www.w3.org/2001/XMLSchema-instance
  CustomizationPrefix: myp
  CustomizationOptionValuePrefix: '12345'
  Addresses:

Podpora typu súčasti

Nasledujúca tabuľka uvádza spôsob narábania s jednotlivými typmi súčastí vo formáte YAML.

Typ komponentu Vo formáte YAML Poznámky
Entity (tabuľky), atribúty, formuláre, zobrazenia √ Súbory YAML Uložené ako jednotlivé súbory YAML na vedľajší komentár
Pracovné postupy (klasické) √ Súbory YAML Pod workflows/
Moderné postupy (Power Automate cloudové postupy) √ — iba formát YAML V časti modernflows/; nie je podporované vo formáte XML
Aplikácie plátna √ — iba formát YAML .msapp binary under canvasapps/<name>/; nepodporované vo formáte XML
Definície premenných prostredia √ Súbory XML Jednotlivé .xml súbory v časti environmentvariabledefinitions/
Hodnoty premennej prostredia √ Súbor JSON Uložené ako environment_variable_values.json
Vlastné konektory Pod connectors/
Zostavy doplnkov Úplné názvy typov sa predvolene opätovne mapujú (/remapPluginTypeNames)
Webové prostriedky Pod webresources/
Roly zabezpečenia uložené vo formáte XML interne; filtrované podľa riešenia
Množiny možností (globálne) Uložené ako XML; filtrované podľa riešenia
Tabule Uložené ako XML; filtrované podľa riešenia
Mapy lokality Uložené ako XML; filtrované podľa riešenia
Prispôsobenia pása s nástrojmi Uložené ako XML; filtrované podľa riešenia
Vzťahy entít Pod entityrelationships/

Poznámka

Súčasti uložené interne vo formáte XML sa počas operácií balíka a rozbalenia automaticky skonvertujú medzi XML a YAML. Môžete ich vytvoriť ako súbory YAML; Nástroj spracuje konverziu.

Odkladacie priestory s viacerými riešeniami

Jeden koreň odkladacieho priestoru môže obsahovať viacero riešení. Všetky riešenia zdieľajú rovnaké priečinky súčastí. solutioncomponents.yml v každom riešení kontroluje, ktoré cesty súčastí patria do daného riešenia.

Príklad štruktúry s dvoma riešeniami:

<repositoryRoot>/
├── solutions/
│   ├── SolutionA/
│   │   ├── solution.yml
│   │   ├── solutioncomponents.yml    ← references entities/account, entities/contact
│   │   ├── rootcomponents.yml
│   │   └── missingdependencies.yml
│   └── SolutionB/
│       ├── solution.yml
│       ├── solutioncomponents.yml    ← references entities/lead, workflows/myflow
│       ├── rootcomponents.yml
│       └── missingdependencies.yml
├── publishers/
│   └── SharedPublisher/
│       └── publisher.yml
├── entities/
│   ├── account/
│   ├── contact/
│   └── lead/
└── workflows/
    └── myflow/

Balenie konkrétneho riešenia z priečinka s viacerými riešeniami

Použitie SolutionPackager.exe:

SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA

Použitie pac solution pack (iba priečinky s jedným riešením – v prípade viacerých riešení použite SolutionPackager.exe priamo s /SolutionName):

pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo

Poznámka

Pri používaní natívnej integrácie dataverse Git s väzbou prostredia majú všetky riešenia v prostredí jednu koreň odkladacieho priestoru pomocou rozloženia s viacerými riešeniami. Pri použití väzby riešenia je možné naviazať každé riešenie do samostatného priečinka.

Práca s priečinkami formátu YAML

Zbalenie priečinka YAML do súboru .zip

# Using pac CLI (single solution in folder)
pac solution pack --zipfile C:\output\MySolution.zip --folder C:\repos\myrepo

# Using SolutionPackager.exe directly (also works for multi-solution with /SolutionName)
SolutionPackager.exe /action:Pack /zipfile:C:\output\MySolution.zip /folder:C:\repos\myrepo

Získajte úplný priečinok YAML z lokality Dataverse.

Odporúčaný spôsob, ako získať úplný a zbaliteľný priečinok YAML, je použiť :pac solution clone

pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo

Týmto sa riešenie extrahuje do formátu YAML vrátane všetkých zdrojových súborov súčastí. Prípadne použite natívnu integráciu Git na potvrdenie zo Power Apps – potvrdené súbory sú vo formáte YAML a sú úplne zbaliteľné.

Overenie priečinka pred balením

Skontrolujte, či solutions/<name>/ priečinok existuje a či všetky cesty v solutioncomponents.yml vyriešiť skutočné súbory. Všetky chýbajúce cesty majú za následok upozornenia počas používania balíka a tieto súčasti sa vynechávajú.

Vzťah k integrácii Dataverse Git

Formát ovládacieho prvku zdroja YAML je kanonický formát, ktorý používa integrácia Dataverse Git. Keď tvorcovia potvrdiť riešenia z Power Apps, súbory napísané do Azure DevOps používať tento formát. Vývojári s prvým kódom môžu pracovať s rovnakým odkladacím priestorom pomocou nástrojov CLI, ktoré sú popísané tu.

Informácie o pripájaní prostredí k systému Git nájdete v téme Nastavenie integrácie Dataverse Git.