Referenca za oblik kontrole izvora za YAML rješenje

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.