Sprendimo YAML šaltinio valdiklio formato nuoroda

Šis straipsnis yra YAML pagrįsto šaltinio valdiklio formato nuoroda, naudojama, kai:

  • Pritaikykite sprendimus naudodami vietinį Dataverse Git integravimą programoje "Power Apps".
  • Išskleisti sprendimus naudojant pac solution clone arba pac solution sync.
  • Rankiniu būdu paleiskite "SolutionPackager" aplanke, kuriame yra YAML deklaracijos failai.

YAML formatas skiriasi nuo klasikinio XML maketo. Svarbu suprasti struktūrą, kai norite rankiniu būdu supakuoti YAML aplanką atgal į .zip failą, kurį gali importuoti "Dataverse".

Svarbu

YAML šaltinio valdiklio formato palaikymas pac CLI reikalauja „Microsoft“. "PowerApps.CLI" 2.4.1 arba naujesnė versija. Atsisiųskite naujausią versiją iš NuGet arba atnaujinkite naudodami pac install latest. SolutionPackager.exe, kuri siunčia su NuGet paketu, palaiko YAML formatą iš tos pačios versijos.

Aplankų struktūros apžvalga

YAML formato saugyklos šakniniame kataloge yra šie aukščiausio lygio katalogai:

<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]/

Reikalingi solutions/ ir publishers/ katalogai. Visi šakninio komponento aplankai yra pasirinktiniai ir priklauso nuo sprendimo.

Svarbu

Visi YAML deklaracijos failai (solution.yml, publisher.ymlir t. t.) turi būti perkelti į atitinkamus pakatalogius (solutions/<name>/, publishers/<name>/). Įkeliant juos į saugyklos šaknį, neleidžiama aptikti formato ir "SolutionPackager" įrankis grįžta į XML formatą – pateikiama klaidinanti klaida apie trūkstamą .Customizations.xml Daugiau informacijos: "SolutionPackager" įrankio trikčių diagnostika

Automatinio aptikimo formatavimas

SolutionPackager (ir pac solution pack) automatiškai aptinka formatą taip:

Sąlyga Aptiktas formatas Veikimas
solutions/*/solution.yml rastas – vienas sprendimas YAML Sprendimo pavadinimas, numanomas iš poaplankio pavadinimo
solutions/*/solution.yml rasta – keli sprendimai YAML /SolutionName argumentas, būtinas nurodyti, kurį sprendimą pakuoti
Nėra solutions/ pakatalogio XML (senstelėjęs) Numatoma ir Other\Solution.xmlOther\Customizations.xml

Failų išsaidimas

solution.yml

solutions/<SolutionUniqueName>/solution.ymlYra . Yra aukščiausio lygio sprendimo metaduomenys – YAML atitikmuo solution.xml XML formatu.

Pagrindiniai laukai apima unikalų sprendimo pavadinimą, versiją, draugišką pavadinimą, aprašą ir nuorodą į leidėją.

solutioncomponents.yml

solutions/<SolutionUniqueName>/solutioncomponents.ymlYra . Išvardija santykinius visų komponentų failų, įtrauktų į šį sprendimą, kelius. "SolutionPackager" perskaito šį failą paketo metu, kad rastų komponentų šaltinius.

Pavyzdžio ištrauka:

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

rootcomponents.yml

solutions/<SolutionUniqueName>/rootcomponents.ymlYra . Išvardija šakninio lygio komponentus (paprastai lenteles ir kitus aukščiausio lygio objektus), kurie priklauso šiam sprendimui.

Pastaba.

Jei komponentas paskelbiamas rootcomponents.yml , bet jo šaltinio failų nėra aplanke (pvz., drobės programos .msapp failas dalyje canvasapps/<name>/), SolutionPackager pateikia įspėjimą ir praleidžia tą komponentą iš supakuoto .zip. Paketo operacija vis tiek sėkmingai baigiama naudojant išėjimo kodą 0.

Sėkmingas paketo importavimas negarantuoja sėkmingo importavimo. Jei solutioncomponents.yml nenurodyti būtini priklausomybės keliai, pvz., pirminio objekto aplankai arba ryšio apibrėžimai dalyje entityrelationships/ , sprendimų paketuose be klaidų, bet importuojant nepavyksta, pateikiamas pranešimas, pvz.: "Atributams trūksta susietų ryšio apibrėžimų". Visada įsitikinkite, kad solutioncomponents.yml apima visus priklausomus objektus ir ryšius, o ne tik sprendimo priklausančius.

missingdependencies.yml

solutions/<SolutionUniqueName>/missingdependencies.ymlYra . Įrašo sprendimo priklausomybes, kurių nebuvo, kai sprendimas buvo paskutinį kartą eksportuotas. Naudojama informaciniais tikslais ir siekiant patikrinti importavimo išsamumą.

publisher.yml

publishers/<PublisherUniqueName>/publisher.ymlYra . Yra leidėjo apibrėžimas – unikalus pavadinimas, rodomas pavadinimas, tinkinimo prefiksas ir parinkties reikšmės prefiksas.

Minimali būtina struktū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:

Komponento tipo palaikymas

Šioje lentelėje pateikiama, kaip kiekvienas komponento tipas apdorojamas YAML formatu.

Komponento tipas YAML formatu Pastabos
Objektai (lentelės), atributai, formos, rodiniai ✓ YAML failai Saugoma kaip atskiri YAML failai vienam papildomajam komponentui
Darbo eigos (klasikinė) ✓ YAML failai Pagal workflows/
Šiuolaikiniai srautai (Power Automate debesies srautai) ✓ — tik YAML formatas Dalyje modernflows/; xml formatu nepalaikoma
Drobės programos ✓ — tik YAML formatas .msapp dvejetainis dalyje canvasapps/<name>/; nepalaikomas XML formatu
Aplinkos kintamųjų apibrėžimai ✓ XML failai Atskiri .xml failai dalyje environmentvariabledefinitions/
Aplinkos kintamųjų reikšmės ✓ JSON failas Saugoma kaip environment_variable_values.json
Pasirinktinės jungtys Pagal connectors/
Priedų rinkiniai Visiškai apibrėžtų tipų pavadinimai, kurie pagal numatytuosius nustatymus buvo pašalinti (/remapPluginTypeNames)
Žiniatinklio ištekliai Pagal webresources/
Saugos vaidmenys Saugoma kaip XML viduje; filtruotas pagal sprendimą
Parinkčių rinkiniai (visuotiniai) Saugoma kaip XML; filtruotas pagal sprendimą
Ataskaitų sritys Saugoma kaip XML; filtruotas pagal sprendimą
Svetainės struktūros Saugoma kaip XML; filtruotas pagal sprendimą
Juostelės tinkinimai Saugoma kaip XML; filtruotas pagal sprendimą
Subjekto ryšiai Pagal entityrelationships/

Pastaba.

Viduje xml saugomi komponentai automatiškai konvertuojami iš XML į YAML ir išpakavimo operacijų metu. Galite kurti juos kaip YAML failus; įrankis apdoroja konvertavimą.

Kelių sprendimų saugyklos

Vienoje saugyklos šaknyje gali būti keli sprendimai. Visi sprendimai turi tuos pačius komponentų aplankus; solutioncomponents.yml kiekviename sprendime valdo, kurie komponentų keliai priklauso tam sprendimui.

Example structure with two solutions:

<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/

Konkretaus sprendimo pakavimas iš kelių sprendimų aplanko

SolutionPackager.exenaudojimas:

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

Naudojimas pac solution pack (tik vieno sprendimo aplankuose – kelių sprendimų atveju naudokite SolutionPackager.exe tiesiogiai su /SolutionName):

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

Pastaba.

Naudojant vietinį "Dataverse Git" integravimą su aplinkos susiejimu, visi aplinkos sprendimai naudoja vieną saugyklos šaknį naudodami kelių sprendimų maketą. Naudojant sprendimo susiejimą, kiekvienas sprendimas gali būti susietas su atskiru aplanku.

Darbas su YAML formato aplankais

YAML aplanko pakinimas į .zip failą

# 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

Gaukite visą YAML aplanką iš "Dataverse"

Rekomenduojamas būdas gauti visą supakuotą YAML aplanką yra naudoti pac solution clone:

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

Taip sprendimas išskleidžiamas YAML formatu, įskaitant visus komponento šaltinio failus. Arba naudokite vietinį "Git" integravimą, kad įeitumėte iš Power Apps – nustatyti failai yra YAML formato ir visiškai supakuoti.

Prieš pakuojant patikrinkite aplanką

Patikrinkite, ar solutions/<name>/ aplankas yra ir ar visi keliai, kuriuos išsprendžia faktiniai solutioncomponents.yml failai. Dėl trūkstamų kelių paketo metu pateikiami įspėjimai ir šie komponentai praleidžiami.

Ryšys su "Dataverse Git" integracija

YAML šaltinio valdiklio formatas yra kanoninis formatas, kurį naudoja "Dataverse Git" integravimas. Kai kūrėjai priima sprendimus iš Power Apps, failai, parašyti "Git" teikėjui, naudoja šį formatą. Pirmieji kodo kūrėjai gali dirbti su ta pačia saugykla naudodami čia aprašytus CLI įrankius.

Informacijos apie aplinkų prijungimą prie "Git" žr. "Dataverse Git" integravimo sąranka.