Jaa


Ratkaisun YAML-lähteen hallinnan muotoviittaus

Tämä artikkeli on viittaus YAML-pohjaiseen lähdeohjausmuotoon, jota käytetään, kun:

  • Lähetä ratkaisuja käyttämällä Power Apps alkuperäistä Dataverse Git -integrointia.
  • Poimi ratkaisuja käyttämällä pac solution clone tai pac solution sync.
  • Suorita SolutionPackager manuaalisesti kansioon, joka sisältää YAML-kokoonpanotiedostoja.

YAML-muoto eroaa perinteisestä XML-asettelusta. Rakenteen ymmärtäminen on tärkeää, kun haluat pakata YAML-kansion manuaalisesti takaisin tiedostoon .zip , jonka Dataverse voi tuoda.

Tärkeää

YAML-lähteen hallinnan muototuki pac -komentorivikäyttöliittymä edellyttää Microsoft. PowerApps.CLI-versio 2.4.1 tai uudempi. Lataa uusin versio kohteesta NuGet tai päivitä pac install latest kautta. SolutionPackager.exe, joka toimitetaan NuGet-paketin kanssa, tukee YAML-muotoa samasta versiosta.

Kansiorakenteen yleiskatsaus

YAML-format-säilön pääkansio sisältää seuraavat ylimmän tason hakemistot:

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

- ja publishers/ -solutions/hakemistot ovat pakollisia. Kaikki juuressa olevat komponenttikansiot ovat valinnaisia, ja ne riippuvat siitä, mitä ratkaisu sisältää.

Tärkeää

Kaikki YAML-luettelotiedostot (solution.yml, publisher.yml, ja niin edelleen) on sijoitettava vastaaviin alahakemistoihin (solutions/<name>/, publishers/<name>/). Niiden sijoittaminen säilön pääkansioon estää muotoilun tunnistamisen ja aiheuttaa Sen, että SolutionPackager-työkalu palaa XML-muotoon – tuottaen harhaanjohtavan virheen puuttuvasta -tiedostosta Customizations.xml. Lisätietoja: SolutionPackager-työkalun vianmääritys

Automaattisen tunnistuksen muotoileminen

SolutionPackager (ja pac solution pack) tunnista muoto automaattisesti seuraavasti:

Ehto Havaittu muoto Toiminta
solutions/*/solution.yml found – yksi ratkaisu YAML Ratkaisun nimi päätelty alikansion nimestä
solutions/*/solution.yml löydetään – useita ratkaisuja YAML /SolutionName argumentti tarvitaan sen määrittämiseen, mikä ratkaisu pakataan
Ei solutions/ alihakemistoa käytettävissä XML (vanha) Other\Solution.xml Odottaa jaOther\Customizations.xml

Kokoonpanotiedostot

solution.yml

Sijaitsee osoitteessa solutions/<SolutionUniqueName>/solution.yml. Sisältää ylimmän tason ratkaisun metatiedot – YAML-vastaavuus solution.xml XML-muodossa.

Avainkenttiä ovat ratkaisun yksilöivä nimi, versio, kutsumanimi, kuvaus ja viittaus julkaisijaan.

solutioncomponents.yml

Sijaitsee osoitteessa solutions/<SolutionUniqueName>/solutioncomponents.yml. Näyttää luettelon kaikkien tähän ratkaisuun sisältyvien osatiedostojen suhteellisista poluista. SolutionPackager lukee tämän tiedoston paketin aikana ja paikantaa sen komponenttilähteet.

Esimerkkikatkelma:

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

rootcomponents.yml

Sijaitsee osoitteessa solutions/<SolutionUniqueName>/rootcomponents.yml. Näyttää luettelon päätason osista (yleensä taulukoista ja muista ylimmän tason objekteista), jotka kuuluvat tähän ratkaisuun.

Muistio

Jos osa on määritetty kohteessa, mutta sen lähdetiedostot eivät ole kansiossa (esimerkiksi pohjaan perustuvassa sovellustiedostossa rootcomponents.yml.msapp kohdassa canvasapps/<name>/), SolutionPackager lähettää varoituksen ja jättää tämän osan pois pakatusta .zipkohteesta . Pakkaustoiminto suoritetaan edelleen, kun koodista 0 poistutaan.

Paketin onnistuminen ei takaa tuonnin onnistumista. Jos solutioncomponents.yml jättää pois pakolliset riippuvuuspolut – kuten pääentiteetin kansiot tai suhdemääritykset kohdassa entityrelationships/ – ratkaisupaketit pakataan ilman virheitä, mutta ne sisältävät tuonnissa virheilmoituksen, joka sisältää seuraavankaltaisen viestin: "Määritteistä puuttuvat liittyvät suhdemääritykset". Varmista aina, että sisältää solutioncomponents.yml kaikki riippuvaiset entiteetit ja yhteydet, ei vain ratkaisun omistamia.

missingdependencies.yml

Sijaitsee osoitteessa solutions/<SolutionUniqueName>/missingdependencies.yml. Kirjaa ratkaisun riippuvuudet, joita ei ollut ratkaisun viemisen aikana. Käytetään tietotarkoituksiin ja täydentävuuden vahvistamiseen tuonnin yhteydessä.

publisher.yml

Sijaitsee osoitteessa publishers/<PublisherUniqueName>/publisher.yml. Sisältää julkaisijan määrityksen: yksilöivän nimen, näyttönimen, mukautuksen etuliitteen ja asetuksen arvon etuliitteen.

Vaadittu rakenne on mahdollisimman pieni:

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:

Osatyypin tuki

Seuraavassa taulukossa on lueteltu, miten kutakin komponenttityyppiä käsitellään YAML-muodossa.

Osatyyppi YAML-muodossa Huomautuksia
Entiteetit (taulukot), määritteet, lomakkeet, näkymät - YAML-tiedostot Tallennettu yksittäisinä YAML-tiedostoina aliyksilöitä kohden
Työnkulut (perinteinen) - YAML-tiedostot Alle workflows/
Nykyaikaiset työnkulut (Power Automate pilvityönkulut) — vain YAML-muoto Kohdassa modernflows/; ei tueta XML-muodossa
Canvas-sovellukset — vain YAML-muoto .msapp binaariarvo alle canvasapps/<name>/; ei tueta XML-muodossa
Ympäristömuuttujan määritykset ääritintiedostot ( XML- tiedostot) Yksittäiset .xml tiedostot -kohdassa environmentvariabledefinitions/
Ympäristömuuttujan arvot ääritä JSON-tiedosto Tallennetaan nimellä environment_variable_values.json
Mukautetut liittimet Alle connectors/
Laajennuksen kokoonpanot Täydelliset tyyppinimet, jotka on oletusarvoisesti laajennettu uudelleen (/remapPluginTypeNames)
Verkkoresurssit Alle webresources/
Turvallisuusroolit Tallennetaan XML:nä sisäisesti; suodatettu ratkaisua kohti
Asetusjoukot (yleinen) Tallennetaan XML-muodossa. suodatettu ratkaisua kohti
Koontinäytöt Tallennetaan XML-muodossa. suodatettu ratkaisua kohti
Sivustokartat Tallennetaan XML-muodossa. suodatettu ratkaisua kohti
Valintanauhan mukautukset Tallennetaan XML-muodossa. suodatettu ratkaisua kohti
Entiteettisuhteet Alle entityrelationships/

Muistio

Sisäisesti XML-muodossa tallennetut komponentit muunnetaan automaattisesti XML:n ja YAML:n välillä pakkaus- ja purkutoimintojen aikana. Voit luoda ne YAML-tiedostoina. työkalu käsittelee muunnoksen.

Usean ratkaisun säilöt

Yksittäinen säilön pääkansio voi sisältää useita ratkaisuja. Kaikilla ratkaisuilla on samat komponenttikansiot. solutioncomponents.yml ohjaa, mitkä komponenttipolut kuuluvat tähän ratkaisuun.

Esimerkkirakenne ja kaksi ratkaisua:

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

Tietyn ratkaisun pakkaaminen moniratkaisukansiosta

SolutionPackager.exekäyttäminen:

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

Using pac solution pack (vain yhden ratkaisun kansiot – usean ratkaisun kanssa, käytä SolutionPackager.exe suoraan kohteen kanssa /SolutionName):

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

Muistio

Kun käytät Alkuperäistä Dataverse Git -integrointia ympäristön sidonnan kanssa, kaikki ympäristön ratkaisut jakavat yhden säilön pääkansion moniratkaisuasettelun avulla. Kun käytät ratkaisun sidontaa, jokainen ratkaisu voidaan sitoa erilliseen kansioon.

YAML-muotokansioiden käyttäminen

YAML-kansion pakkaaminen .zip tiedostoon

# 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äydellisen YAML-kansion hankkiminen Dataversesta

Suositeltu tapa hankkia täydellinen, pakattava YAML-kansio on käyttää pac solution clone:a:

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

Tämä purkaa ratkaisun YAML-muotoon, joka sisältää kaikki osalähdetiedostot. Vaihtoehtoisesti voit käyttää alkuperäistä Git-integrointia vahvistukseen Power Apps – vahvistetut tiedostot ovat YAML-muodossa ja täysin pakattavissa.

Tarkista kansio ennen pakkaamista

Tarkista, että solutions/<name>/ kansio on olemassa ja että kaikki polut ratkaistaan solutioncomponents.yml todellisiin tiedostoihin. Puuttuvat polut aiheuttavat varoituksia paketin aikana, ja kyseiset osat jätetään pois.

Suhde Dataverse Git -integrointiin

YAML-lähteen ohjausobjektin muoto on kanoninen muoto, jota Dataverse Git -integrointi käyttää. Kun tekijät tekevät ratkaisuja Power Apps, Azure DevOps kirjoitetut tiedostot käyttävät tätä muotoa. Koodi ensin -kehittäjät voivat käsitellä samaa säilöä tässä kuvattujen komentorivikäyttöliittymätyökalujen avulla.

Lisätietoja ympäristöjen yhdistämisestä Gitiin on kohdassa Dataverse Gatin integroinnin määritys.