Napomena
Za pristup ovoj stranici potrebna je autorizacija. Možete se pokušati prijaviti ili promijeniti direktorije.
Za pristup ovoj stranici potrebna je autorizacija. Možete pokušati promijeniti direktorije.
Ovaj je članak referenca za oblik kontrole izvora koji se temelji na YAML-u koji se koristi kada:
- Izvršite rješenja pomoću nativne integracije Dataverse Git u Power Apps.
- Izdvoji rješenja pomoću ili
pac solution clonepac solution sync. - Ručno pokrenite SolutionPackager u mapi koja sadrži datoteke yaML manifesta.
Oblik YAML razlikuje se od klasičnog XML rasporeda. Razumijevanje strukture važno je kada želite ručno zapakirati mapu servisa YAML natrag .zip u datoteku koju Dataverse može uvesti.
Važno
Podrška za oblik izvorne kontrole ZA YAML u pac CLI zahtijeva Microsoft. PowerApps.CLI, verzija 2.4.1 ili novija. Preuzmite najnoviju verziju s web-mjesta NuGet ili ažuriranje putem pac install latest. SolutionPackager.exe, koji se isporučuje s nuGet paketom, podržava oblik YAML iz iste verzije.
Pregled strukture mapa
Korijen spremišta za YAML sadrži sljedeće direktorije najviše razine:
<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]/
solutions/ I publishers/ direktoriji su obavezni. Sve mape komponenti u korijenu nisu obavezne i ovise o tome što rješenje sadrži.
Važno
Sve datoteke manifesta servisa YAML (solution.yml, publisher.ymli tako dalje) moraju biti postavljene pod svojim podimenicima (solutions/<name>/, publishers/<name>/). Njihovo postavljanje u korijen spremišta sprječava otkrivanje oblika i uzrokuje vraćanje alata SolutionPackager u XML oblik – Customizations.xmlšto dovodi do pogrešne pogreške u vezi s nestalim . Dodatne informacije: Otklanjanje poteškoća s alatom SolutionPackager
Oblikovanje automatskog prepoznavanja
SolutionPackager (i pac solution pack) automatski otkriva oblik na sljedeći način:
| Uvjet | Otkriven oblik | Ponašanje |
|---|---|---|
solutions/*/solution.yml pronađeno – jedno rješenje |
YAML | Naziv rješenja na koji je nametn naziv podmape |
solutions/*/solution.yml pronađeno – više rješenja |
YAML |
/SolutionName potreban da bi se odredilo koje rješenje za pakiranje |
Nema solutions/ podimenika |
XML (naslijeđeno) | Očekuje i Other\Solution.xmlOther\Customizations.xml |
Datoteke manifesta
solution.yml
Nalazi se na solutions/<SolutionUniqueName>/solution.yml. Sadrži metapodatke rješenja najviše razine – ekvivalent YAML-a solution.xml u XML obliku.
Ključna polja obuhvaćaju jedinstveni naziv rješenja, verziju, neslužbeni naziv, opis i referencu na izdavača.
solutioncomponents.yml
Nalazi se na solutions/<SolutionUniqueName>/solutioncomponents.yml. Popis relativnih putova za sve datoteke komponenti obuhvaćene ovim rješenjem. SolutionPackager čita tu datoteku tijekom paketa da bi locirao izvore komponenti.
Primjer izvatak:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Nalazi se na solutions/<SolutionUniqueName>/rootcomponents.yml. Navode se komponente korijenske razine (obično tablice i drugi objekti najviše razine) koji pripadaju tom rješenju.
Napomena
Ako je komponenta rootcomponents.yml deklarirana u mapi, ali .msappcanvasapps/<name>/.zipnjezine izvorišne datoteke nisu iz mape (na primjer, datoteka aplikacije platna u odjeljku ), SolutionPackager emitira upozorenje i izostavlja tu komponentu iz zapakirane datoteke . Operacija pakiranja i dalje je uspješno dovršena uz izlazni kod 0.
Uspjeh paketa ne jamči uspjeh uvoza. Ako solutioncomponents.yml izostavi obavezne putove ovisnosti – entityrelationships/ kao što su nadređene mape entiteta ili definicije odnosa u odjeljku – pakete rješenja bez pogreške, ali ne uspije prilikom uvoza s porukom kao što je: "Atributima nedostaju povezane definicije odnosa ." Uvijek provjerite solutioncomponents.yml obuhvaća li sve zavisne entitete i odnose, a ne samo one u vlasništvu rješenja.
missingdependencies.yml
Nalazi se na solutions/<SolutionUniqueName>/missingdependencies.yml. Bilježi sve ovisnosti rješenja koje nisu bile dostupne kada je rješenje zadnji put izvezeno. Koristi se u informativne svrhe i za provjeru dovršenosti prilikom uvoza.
publisher.yml
Nalazi se na publishers/<PublisherUniqueName>/publisher.yml. Sadrži definiciju izdavača – jedinstveni naziv, zaslonsko ime, prefiks prilagodbe i prefiks vrijednosti mogućnosti.
Minimalna obavezna struktura:
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:
Podrška za vrstu komponente
U sljedećoj je tablici popis načina na koji se rukuje svakom vrstom komponente u obliku YAML.
| Vrsta komponente | U obliku YAML | Bilješke |
|---|---|---|
| Entiteti (tablice), atributi, obrasci, prikazi | - YAML datoteke | Pohranjeno kao pojedinačne YAML datoteke po podkompanju |
| Tijekovi rada (klasični) | - YAML datoteke | Pod workflows/ |
| Moderni tokovi (Power Automate u oblaku) | – samo u obliku YAML | U odjeljku modernflows/; nije podržano u XML obliku |
| Aplikacije od gotovih gradivnih elemenata | – samo u obliku YAML |
.msapp binary under canvasapps/<name>/; not supported in XML format |
| Definicije varijabli okruženja | Xml datoteke | Pojedinačne .xml datoteke u odjeljku environmentvariabledefinitions/ |
| Vrijednosti varijabli okruženja | - JSON datoteka | Spremljeno kao environment_variable_values.json |
| Prilagođeni poveznici | ✓ | Pod connectors/ |
| Sklopovi dodataka | ✓ | Po zadanom su ponovno mapirani potpuno kvalificirani nazivi vrsta (/remapPluginTypeNames) |
| Web-resursi | ✓ | Pod webresources/ |
| Sigurnosne uloge | ✓ | Interno pohranjen kao XML; filtrirano po rješenju |
| Skupovi mogućnosti (globalni) | ✓ | Spremljeno kao XML; filtrirano po rješenju |
| Nadzorne ploče | ✓ | Spremljeno kao XML; filtrirano po rješenju |
| Karte web-mjesta | ✓ | Spremljeno kao XML; filtrirano po rješenju |
| Prilagodbe vrpce | ✓ | Spremljeno kao XML; filtrirano po rješenju |
| Odnosi entiteta | ✓ | Pod entityrelationships/ |
Napomena
Komponente pohranjene kao XML interno automatski se pretvaraju između XML-a i YAML-a tijekom operacija pakiranja i raspakiranja. Možete ih stvarati kao YAML datoteke. alat upravlja pretvorbom.
Spremišta s više rješenja
Jedan korijen spremišta može sadržavati više rješenja. Sva rješenja dijele iste mape komponenti; solutioncomponents.yml u svakom rješenju određuje putove komponenti koji pripadaju tom rješenju.
Primjer strukture s dva rješenja:
<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/
Pakiranje određenog rješenja iz mape s više rješenja
Korištenje SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Korištenje pac solution pack (samo mape s jednim rješenjem – za višestruko rješenje koristite SolutionPackager.exe izravno s /SolutionName):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Napomena
Prilikom korištenja nativne integracije Dataverse Git s povezivanjem okruženja, sva rješenja u okruženju dijele jedan korijen spremišta pomoću izgleda s više rješenja. Prilikom korištenja povezivanja rješenja svako rješenje može biti povezano sa zasebnom mapi.
Rad s mapama oblika YAML
Zapakirajte mapu servisa YAML u .zip datoteku
# 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
Pribavite potpunu YAML mapu iz aplikacije Dataverse
Preporučeni način dohvaćanja potpune, zapakable YAML mape jest korištenje:pac solution clone
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Time se rješenje izdvaja u oblik YAML, uključujući sve izvorišne datoteke komponente. Možete i koristiti nativnu Git integraciju za izvršavanje Power Apps – predane su datoteke u obliku YAML i u potpunosti ih je moguće zapakirati.
Provjera mape prije pakiranja
Provjerite postoji li solutions/<name>/ mapa te jesu li svi putovi u razriješeni solutioncomponents.yml u stvarne datoteke. Svi putovi koji nedostaju rezultiraju upozorenjima tijekom pakiranja i te se komponente izostavljene.
Relationship to Dataverse Git integration
Oblik kontrole izvora ZA YAML kanonski je oblik koji koristi integracija Dataverse Git. Kada stvaratelji potvrđuju rješenja iz Power Apps, datoteke zapisane davatelju usluge Git koriste taj oblik. Razvojni inženjeri koji koriste kod prvi mogu raditi s istim spremištem pomoću alata CLI-ja opisanih ovdje.
Informacije o povezivanju okruženja s Git-om potražite u članku Postavljanje integracije Dataverse Git.