Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Š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 clonevaipac 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.