Lahenduse YAML-i allika juhtelemendi vormingu viide

See artikkel on viide YAML-i-põhisele allikakontrolli vormingule, mida kasutatakse järgmistel juhtudel.

  • Kinnitage lahendused, kasutades Power Apps oma-Dataverse Giti integreerimist.
  • Ekstraktige lahendused kasutades pac solution clone või pac solution sync.
  • Käivitage SolutionPackager käsitsi kaustas, mis sisaldab YAML-i manifestifaile.

YAML-i vorming erineb klassikalisest XML-paigutusest. Struktuuri mõistmine on oluline, kui soovite YAML-kausta käsitsi uuesti faili pakkida .zip , mida Dataverse saab importida.

Oluline

YAML-i allika juhtelemendi vormingu tugi pac CLI nõuab Microsoft. PowerApps.CLI versioon 2.4.1 või uuem. Laadige alla uusim versioon veebisaidilt NuGet või värskendage pac install latest kaudu. SolutionPackager.exe, mis saadetakse nuGeti paketiga, toetab yaML-i vormingut samast versioonist.

Kaustastruktuuri ülevaade

YAML-vormingus hoidla juur sisaldab järgmisi ülataseme katalooge.

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

Nõutavad solutions/ on kataloogid ja publishers/ kataloogid. Kõik juurkaustad on valikulised ja sõltuvad sellest, mida lahendus sisaldab.

Oluline

Kõik YAML-i manifestifailid (solution.yml, publisher.ymljne) tuleb paigutada vastavate alamkataloogide alla (solutions/<name>/, publishers/<name>/). Nende paigutamine hoidla juurkausta takistab vormingu tuvastamist ja põhjustab SolutionPackageri tööriista tagasi XML-vormingusse langemise – tekitades eksitava vea puuduva Customizations.xmlkohta . Lisateave: SolutionPackageri tööriista tõrkeotsing

Automaattuvastuse vormindamine

SolutionPackager (ja pac solution pack) tuvastab vormingu automaatselt järgmiselt:

Tingimus Tuvastatud vorming Käitumine
solutions/*/solution.yml leitud – üks lahendus YAML Lahenduse nimi, mis on tuletatud alamkausta nimest
solutions/*/solution.yml Leitud — mitmed lahendused YAML /SolutionName argument on nõutav pakitava lahenduse määramiseks
Alamkataloogi ei solutions/ ole XML (pärand) Other\Solution.xml Eeldab jaOther\Customizations.xml

Manifesti failid

solution.yml

Asub asukohas solutions/<SolutionUniqueName>/solution.yml. Sisaldab ülataseme lahenduse metaandmeid – YAML-i vaste solution.xml XML-vormingus.

Võtmeväljad sisaldavad lahenduse kordumatut nime, versiooni, sõbralikku nime, kirjeldust ja viidet väljaandjale.

solutioncomponents.yml

Asub asukohas solutions/<SolutionUniqueName>/solutioncomponents.yml. Loetleb kõigi sellesse lahendusse kaasatud komponentfailide suhtelised teed. SolutionPackager loeb komponendiallikate leidmiseks seda faili paketi ajal ette.

Näide:

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

rootcomponents.yml

Asub asukohas solutions/<SolutionUniqueName>/rootcomponents.yml. Loetleb sellesse lahendusse kuuluvad juurtaseme komponendid (tavaliselt tabelid ja muud ülataseme objektid).

Märkus.

Kui komponent on deklareeritud, rootcomponents.yml kuid selle lähtefailid puuduvad kaustast (nt lõuendirakenduse .msapp fail jaotises canvasapps/<name>/), kiirgab SolutionPackager hoiatuse ja jätab selle komponendi pakitud .zipfailist välja. Paketitoiming on endiselt lõpule viidud väljumiskoodiga 0.

Pakkimise õnnestumine ei taga importimise õnnestumist. Kui solutioncomponents.yml nõutavad sõltuvusteed (nt emaolemikaustad või seosemääratlused on välja jäetud) entityrelationships/ on lahendusepaketid veata, kuid importimine nurjub järgmise teatega: "Atribuudid puuduvad seostatud seosemääratlused". Veenduge alati, et solutioncomponents.yml kõik sõltuvad olemid ja seosed, mitte ainult lahendusele kuuluvad olemid ja seosed.

missingdependencies.yml

Asub asukohas solutions/<SolutionUniqueName>/missingdependencies.yml. Salvestab lahenduse sõltuvused, mida lahenduse viimase eksportimise ajal ei olnud. Kasutatakse teavitamise eesmärgil ja importimise täielikkuse valideerimiseks.

publisher.yml

Asub asukohas publishers/<PublisherUniqueName>/publisher.yml. Sisaldab väljaandja määratlust – kordumatut nime, kuvatavat nime, kohandamis eesliidet ja suvandiväärtuse eesliidet.

Minimaalne nõutav struktuur:

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:

Komponenditüübi tugi

Järgmises tabelis on loetletud, kuidas iga komponenditüüpi YAML-vormingus käsitsetakse.

Komponenditüüp YAML-vormingus Märkmed
Olemid (tabelid), atribuudid, vormid, vaated ✓ YAML-failid Salvestatud üksikute YAML-failidena alamkomponendi kohta
Töövood (klassikaline) ✓ YAML-failid Jaotises workflows/
Kaasaegsed vood (Power Automate pilvevood) ✓ – ainult YAML-vorming Jaotises modernflows/; pole XML-vormingus toetatud
Lõuendirakendused ✓ – ainult YAML-vorming .msapp Binary under canvasapps/<name>/; not supported in XML format
Keskkonnamuutujate määratlused ✓ XML-failid Üksikfailid .xml jaotises environmentvariabledefinitions/
Keskkonnamuutujate väärtused ✓ JSON-fail Talletatud kujul environment_variable_values.json
Kohandatud konnektorid Jaotises connectors/
Lisandmoodulikomplektid Vaikimisi uuesti vastendatud täielikud tüübinimed (/remapPluginTypeNames)
Veebiressursid Jaotises webresources/
Turberollid Talletatakse XML-vormingus asutusesiseselt; filtreeritud lahenduse kohta
Suvandikomplektid (globaalne) Salvestatud XML-vormingus; filtreeritud lahenduse kohta
Armatuurlauad Salvestatud XML-vormingus; filtreeritud lahenduse kohta
Saidikaardid Salvestatud XML-vormingus; filtreeritud lahenduse kohta
Lindi kohandused Salvestatud XML-vormingus; filtreeritud lahenduse kohta
Olemiseosed Jaotises entityrelationships/

Märkus.

Sisemiselt XML-vormingus salvestatud komponendid teisendatakse pakkimis- ja lahtipakkimistoimingute ajal automaatselt XML-i ja YAML-i vahel. Saate need koostada YAML-failidena; tööriist töötleb teisendust.

Mitme lahendusega hoidlad

Üks hoidla juur võib sisaldada mitut lahendust. Kõigil lahendustel on samad komponendikaustad; solutioncomponents.yml kontrollib igas lahenduses, millised komponenditeed sellesse lahendusse kuuluvad.

Kahe lahendusega näidisstruktuur:

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

Konkreetse lahenduse pakkimine mitme lahendusega kaustast

SolutionPackager.exekasutamine:

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

Kasutamine pac solution pack (ainult ühe lahendusega kaustad – mitme lahenduse korral kasutage SolutionPackager.exe otse kaustaga /SolutionName):

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

Märkus.

Kui kasutate oma Dataverse Git integreerimist keskkonna sidumisega, jagavad kõik keskkonna lahendused ühte hoidla juurt, kasutades mitme lahendusega paigutust. Lahenduse sidumise kasutamisel saab iga lahenduse siduda eraldi kaustaga.

YAML-vormingus kaustadega töötamine

YAML-kausta pakkimine .zip faili

# 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

Täieliku YAML-kausta hankimine dataverse'ist

Soovitatav viis täieliku ja pakitava YAML-kausta hankimiseks on kasutada järgmist.pac solution clone

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

See ekstraktib lahenduse YAML-vormingusse, sh kõik komponendi lähtefailid. Teise võimalusena saate Power Apps kasutada oma Giti integreerimist – kinnitatud failid on YAML-vormingus ja täielikult pakitavad.

Enne pakkimist kontrollige kausta

Kontrollige, kas solutions/<name>/ kaust on olemas ja kas kõik teed solutioncomponents.yml on lahendatud tegelike failidega. Puuduvad teed põhjustavad pakkimise ajal hoiatusi ja need komponendid jäetakse välja.

Relationship to Dataverse Git integration

YAML-i allika juhtelemendi vorming on Dataverse Giti integreerimisel kasutatav kanooniline vorming. Kui loojad kasutavad Power Apps lahendusi, Azure DevOps kirjutatavad failid seda vormingut kasutada. Koodi esimesed arendajad saavad sama hoidlaga töötada siin kirjeldatud CLI tööriistade abil.

Lisateavet Gitiga keskkondade ühendamise kohta leiate teemast Dataverse Giti integreerimise häälestamine.