Risinājuma YAML avota kontroles formāta atsauce

Šis raksts ir atsauce uz YAML avota vadības formātu, kas tiek izmantots, ja:

  • Veiciet risinājumus, izmantojot vietējo Dataverse Git integrāciju programmā Power Apps.
  • Ekstrahējiet šķīdumus, izmantojot pac solution clone vai pac solution sync.
  • Manuāli palaidiet SolutionPackager mapē, kurā ir YAML manifesta faili.

YAML formāts atšķiras no klasiskā XML izkārtojuma. Izpratne par struktūru ir svarīga, ja vēlaties manuāli iepakot YAML mapi atpakaļ failā .zip , ko Dataverse var importēt.

Svarīgi

YAML avota kontroles formāta atbalsts pac CLI prasa Microsoft. PowerApps.CLI versija 2.4.1 vai jaunāka. Lejupielādējiet jaunāko versiju no NuGet vai atjauniniet pac install latest. SolutionPackager.exe, kas tiek piegādāts kopā ar NuGet pakotni, atbalsta YAML formātu no tās pašas versijas.

Mapju struktūras pārskats

YAML formāta repozitorija sakne satur šādus augstākā līmeņa direktorijus:

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

Un solutions/ katalogi ir publishers/ nepieciešami. Visas saknes komponentu mapes nav obligātas un ir atkarīgas no risinājuma satura.

Svarīgi

Visi YAML manifesta faili (solution.yml, publisher.yml, utt.) ir jāievieto to attiecīgajos apakšdirektorijos (solutions/<name>/, publishers/<name>/). To ievietošana repozitorija saknē novērš formāta noteikšanu un izraisa SolutionPackager rīka atgriešanos XML formātā, radot maldinošu kļūdu par trūkstošo Customizations.xml. Papildinformācija SolutionPackager rīka problēmu novēršana

Formāta automātiskā noteikšana

SolutionPackager (un pac solution pack) automātiski nosaka formātu šādi:

Nosacījums Noteiktais formāts Rīcība
solutions/*/solution.yml atrasts — viens risinājums JAMLS Risinājuma nosaukums, kas izsecināts no apakšmapes nosaukuma
solutions/*/solution.yml Atrasts — vairāki risinājumi JAMLS /SolutionName Arguments, kas nepieciešams, lai norādītu, kuru risinājumu iesaiņot
Apakšdirektorija nav solutions/ XML (mantots) Sagaida Other\Solution.xml un Other\Customizations.xml

Failu manifestācija

solution.yml

Atrodas .solutions/<SolutionUniqueName>/solution.yml Satur augstākā līmeņa risinājuma metadatus — YAML ekvivalentu solution.xml XML formātā.

Galvenie lauki ietver risinājuma unikālo nosaukumu, versiju, draudzīgo nosaukumu, aprakstu un atsauci uz izdevēju.

solutioncomponents.yml

Atrodas .solutions/<SolutionUniqueName>/solutioncomponents.yml Uzskaita relatīvos ceļus uz visiem šajā risinājumā iekļautajiem komponentu failiem. SolutionPackager nolasa šo failu iepakošanas laikā, lai atrastu komponentu avotus.

Fragmenta piemērs:

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

rootcomponents.yml

Atrodas .solutions/<SolutionUniqueName>/rootcomponents.yml Uzskaita saknes līmeņa komponentus (parasti tabulas un citus augstākā līmeņa objektus), kas pieder šim risinājumam.

Piezīmes

Ja komponents ir deklarēts, rootcomponents.yml bet tā avota faili nav mapē (piemēram, audekla programmas .msapp fails sadaļā canvasapps/<name>/), SolutionPackager izstaro brīdinājumu un izlaiž šo komponentu no iesaiņotā .zip. Iepakošanas operācija joprojām tiek veiksmīgi pabeigta ar izejas kodu 0.

Iepakojuma panākumi negarantē importa panākumus. Ja solutioncomponents.yml tiek izlaisti nepieciešamie atkarības ceļi, piemēram, vecākentītiju mapes vai relāciju definīcijas entityrelationships/ , risinājums tiek pakots bez kļūdām, bet neizdodas importēt ar ziņojumu, piemēram, "Atribūtiem trūkst saistīto relāciju definīciju". Vienmēr pārliecinieties, ka solutioncomponents.yml ir iekļautas visas atkarīgās entītijas un relācijas, ne tikai risinājumam piederošas.

missingdependencies.yml

Atrodas .solutions/<SolutionUniqueName>/missingdependencies.yml Ieraksta visas risinājuma atkarības, kas nebija, kad risinājums pēdējo reizi tika eksportēts. Izmanto informatīvos nolūkos un lai apstiprinātu importēšanas pilnīgumu.

publisher.yml

Atrodas .publishers/<PublisherUniqueName>/publisher.yml Satur izdevēja definīciju — unikālu nosaukumu, parādāmo vārdu, pielāgošanas prefiksu un opcijas vērtības prefiksu.

Minimālā nepieciešamā 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:

Komponentu tipa atbalsts

Tālāk esošajā tabulā ir norādīts, kā katrs komponenta tips tiek apstrādāts YAML formātā.

Komponenta veids YAML formātā Piezīmes
Entītijas (tabulas), atribūti, veidlapas, skati ✓ YAML faili Tiek glabāti kā atsevišķi YAML faili katram apakškomponentam
Darbplūsmas (klasiskā) ✓ YAML faili Saskaņā ar workflows/
Mūsdienu plūsmas (Power Automate mākoņa plūsmas) ✓ — tikai YAML formātā Sadaļā modernflows/; netiek atbalstīts XML formātā
Pamatnes programmas ✓ — tikai YAML formātā .msapp binārs zem canvasapps/<name>/; netiek atbalstīts XML formātā
Vides mainīgo definīcijas ✓ XML faili Atsevišķi .xml faili sadaļā environmentvariabledefinitions/
Vides mainīgo vērtības ✓ JSON fails Tiek glabāts kā environment_variable_values.json
Pielāgoti savienotāji Saskaņā ar connectors/
Spraudņu komplekti Pilnībā kvalificēti tipu nosaukumi, kas pēc noklusējuma tiek kartēti (/remapPluginTypeNames)
Tīmekļa resursi Saskaņā ar webresources/
Drošības lomas Iekšēji tiek glabāts kā XML; Filtrēts katram šķīdumam
Opciju kopas (globālas) Uzglabā XML formātā; Filtrēts katram šķīdumam
Informācijas paneļi Uzglabā XML formātā; Filtrēts katram šķīdumam
Vietnes kartes Uzglabā XML formātā; Filtrēts katram šķīdumam
Lentes pielāgojumi Uzglabā XML formātā; Filtrēts katram šķīdumam
Entītiju relācijas Saskaņā ar entityrelationships/

Piezīmes

Komponenti, kas iekšēji tiek glabāti XML formātā, tiek automātiski konvertēti starp XML un YAML iepakošanas un izpakošanas operāciju laikā. Jūs varat tos izveidot kā YAML failus; Rīks apstrādā konvertēšanu.

Vairāku risinājumu krātuves

Viena repozitorija sakne var saturēt vairākus risinājumus. Visiem risinājumiem ir vienādas komponentu mapes; solutioncomponents.yml katrā risinājumā kontrolē, kuri komponentu ceļi pieder šim risinājumam.

Struktūras piemērs ar diviem risinājumiem:

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

Konkrēta risinājuma iepakošana no vairāku risinājumu mapes

Izmantojot SolutionPackager.exe:

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

Izmantojot pac solution pack (tikai viena risinājuma mapes — vairāku risinājumu gadījumā izmantojiet SolutionPackager.exe tieši ar /SolutionName):

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

Piezīmes

Izmantojot vietējo Dataverse Git integrāciju ar vides saistīšanu, visi vides risinājumi koplieto vienu repozitorija sakni, izmantojot vairāku risinājumu izkārtojumu. Izmantojot risinājumu saistīšanu, katru risinājumu var saistīt ar atsevišķu mapi.

Darbs ar YAML formāta mapēm

YAML mapes iepakošana .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

Iegūstiet pilnu YAML mapi no Dataverse

Ieteicamais veids, kā iegūt pilnīgu, iesaiņojamu YAML mapi, ir izmantot pac solution clone:

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

Tas izvelk risinājumu YAML formātā, ieskaitot visus komponentu avota failus. Alternatīvi, izmantojiet vietējo Git integrāciju, lai veiktu saistības no Power Apps — iekļautie faili ir YAML formātā un pilnībā iepakojami.

Pārbaudiet mapi pirms iepakošanas

Pārbaudiet, vai solutions/<name>/ mape pastāv un vai visi ceļi ir atrisināti solutioncomponents.yml uz faktiskajiem failiem. Ja trūkst ceļu, iepakošanas laikā tiek parādīti brīdinājumi, un šie komponenti tiek izlaisti.

Saistība ar Dataverse Git integrāciju

YAML avota vadības formāts ir kanoniskais formāts, ko izmanto Dataverse Git integrācija. Kad izstrādātāji veic risinājumus no Power Apps, faili, kas rakstīti Git pakalpojumu sniedzējam, izmanto šo formātu. Code-first izstrādātāji var strādāt ar vienu un to pašu repozitoriju, izmantojot šeit aprakstītos CLI rīkus.

Informāciju par vides savienošanu ar Git skatiet sadaļā Dataverse Git integrācijas iestatīšana.