Sklic oblike zapisa za nadzor vira rešitve YAML

V tem članku je sklic na obliko kontrolnika vira, ki temelji na yaml, ki se uporablja, ko:

  • Uveljavite rešitve z izvorno Zverzno integracijo Git v Power Apps.
  • Ekstrahiraj rešitve z pac solution clone ali pac solution sync.
  • Ročno zaženite SolutionPackager v mapi, ki vsebuje datoteke manifesta YAML.

Oblika zapisa YAML se razlikuje od klasične postavitve XML. Razumevanje strukture je pomembno, ko želite ročno za paket yaml mapo nazaj v datoteko .zip , ki jo Dataverse lahko uvozi.

Pomembno

Podpora za obliko zapisa nadzora vira YAML v pac CLI zahteva Microsoft. PowerApps.CLI, različica 2.4.1 ali novejša. Prenesite najnovejšo različico s spletnega mesta NuGet ali posodobitev prek pac install latest. SolutionPackager.exe, ki je priložen paketu NuGet, podpira obliko zapisa YAML iz iste različice.

Pregled strukture mape

Koren skladišča v obliki zapisa YAML vsebuje te imenike najvišje ravni:

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

Imeniki solutions/publishers/ in imeniki so obvezni. Vse mape komponent v korenu so izbirne in odvisne od tega, kaj rešitev vsebuje.

Pomembno

Vse datoteke z manifestom YAML (solution.yml, publisher.ymlin tako naprej) je treba postaviti v ustrezne podimenike (solutions/<name>/, publishers/<name>/). Če jih postavite v koren skladišča, se prepreči zaznavanje oblik, orodje SolutionPackager pa se vrne v obliko XML – kar povzroči zavajajočo napako o manjkajočem Customizations.xml. Več informacij: Odpravljanje težav z orodjem SolutionPackager

Oblikuj samodejno zaznavanje

SolutionPackager (in pac solution pack) samodejno zazna obliko zapisa tako:

Pogoj Zaznana oblika zapisa Način delovanja
solutions/*/solution.yml najdena – ena rešitev YAML Ime rešitve iz imena podmape
solutions/*/solution.yml najdeno – več rešitev YAML /SolutionName argument, ki je potreben za določanje rešitve za pakiranje
Podimenik solutions/ ni prisoten XML (podedovano) Pričakuje in Other\Solution.xmlOther\Customizations.xml

Manifestne datoteke

solution.yml

Nahaja se na solutions/<SolutionUniqueName>/solution.yml. Vsebuje metapodatke rešitve najvišje ravni – enakovredno datoteko YAML solution.xml v obliki zapisa XML.

V poljih ključa so enolično ime rešitve, različica, prijazno ime, opis in sklic na izdajatelja.

solutioncomponents.yml

Nahaja se na solutions/<SolutionUniqueName>/solutioncomponents.yml. Navaja relativne poti do vseh datotek komponent, vključenih v to rešitev. SolutionPackager prebere to datoteko med paketom, da poišče vire komponent.

Primer odlomka:

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

rootcomponents.yml

Nahaja se na solutions/<SolutionUniqueName>/rootcomponents.yml. Navede komponente korenske ravni (običajno tabele in druge predmete najvišje ravni), ki pripadajo tej rešitvi.

opomba,

Če je komponenta deklarirana, vendar v mapi ni izvornih datotek (rootcomponents.yml.msappna primer datoteka aplikacije platna v ), SolutionPackager canvasapps/<name>/izpakira opozorilo in .zip izpakira to komponento. Postopek paketa se še vedno uspešno zaključi z izhodno kodo 0.

Uspeh paketa ne zagotavlja uspeha pri uvozu. Če solutioncomponents.yml izpustite zahtevane poti odvisnosti , entityrelationships/ kot so mape nadrejene entitete ali definicije odnosov v razdelku – paketi rešitev brez napake, vendar ne uspejo pri uvozu s sporočilom, kot je: »Atributom manjkajo definicije povezanih relacij Vedno poskrbite solutioncomponents.yml , da bodo vključene vse odvisne entitete in odnosi, ne le tiste, ki so v lasti rešitve.

missingdependencies.yml

Nahaja se na solutions/<SolutionUniqueName>/missingdependencies.yml. Zabeleži vse odvisnosti rešitev, ki niso bile prisotne, ko je bila rešitev nazadnje izvožena. Uporablja se za informativne namene in za preverjanje popolnosti pri uvozu.

publisher.yml

Nahaja se na publishers/<PublisherUniqueName>/publisher.yml. Vsebuje definicijo izdajatelja – enolično ime, prikazano ime, predpono prilagoditve in predpono vrednosti možnosti.

Najmanjša zahtevana 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:

Podpora za vrsto komponente

V spodnji tabeli je seznam, kako je posamezna vrsta komponente obravnavana v obliki zapisa YAML.

Vrsta komponente V obliki zapisa YAML Beležke
Entitete (tabele), atributi, obrazci, pogledi 3. Datoteke YAML Shranjeno kot posamezne datoteke YAML na podkomcomponent
Poteki dela (klasična) 3. Datoteke YAML Pod workflows/
Sodobni tokovi (Power Automate tokov v oblaku) 3. Samo oblika zapisa YAML V razdelku modernflows/; ni podprto v obliki zapisa XML
Aplikacije na osnovi delovnega območja 3. Samo oblika zapisa YAML .msapp binary under canvasapps/<name>/; not supported in XML format
Definicije spremenljivk okolja 3. Datoteke XML Posamezne datoteke .xml v razdelku environmentvariabledefinitions/
Vrednosti spremenljivk okolja 3. Datoteka JSON Shranjeno kot environment_variable_values.json
Priključki po meri Pod connectors/
Zbiri vtičnikov Popolnoma določena imena vrst so privzeto znova preskočena (/remapPluginTypeNames)
Spletni viri Pod webresources/
Varnostne vloge Shranjeno kot interno XML; filtrirano na rešitev
Nabori možnosti (globalno) Shranjeno kot XML; filtrirano na rešitev
Nadzorne plošče Shranjeno kot XML; filtrirano na rešitev
Zemljevidi mesta Shranjeno kot XML; filtrirano na rešitev
Prilagoditve traku Shranjeno kot XML; filtrirano na rešitev
Odnosi entitete Pod entityrelationships/

opomba,

Komponente, ki so interno shranjene kot XML, se med operacijami pakiranja in razpakiranja samodejno pretvorijo med XML in YAML. Lahko jih ustvarite kot datoteke YAML; orodje obravnava pretvorbo.

Skladišča z več rešitevami

En koren skladišča lahko vsebuje več rešitev. Vse rešitve imajo iste mape komponent; solutioncomponents.yml v vsakem kontrolniku rešitve, katere poti komponent pripadajo tej rešitvi.

Vzorčna struktura z dvema rešitvami:

<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 določene rešitve iz mape z več raztopinami

Uporaba SolutionPackager.exe:

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

Uporaba pac solution pack (samo mape z eno rešitvijo – za več rešitev uporabite SolutionPackager.exe neposredno z /SolutionName):

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

opomba,

Pri uporabi izvorne integracije storitve Dataverse Git z vezavo okolja si vse rešitve v okolju delijo en koren skladišča s postavitvijo z več rešitvami. Ko uporabljate vezavo rešitve, je lahko vsaka rešitev vezana na ločeno mapo.

Delo z mapami z oblikami zapisa YAML

Pakiranje mape YAML v .zip datoteko

# 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

Pridobite celotno mapo YAML iz storitve Dataverse

Priporočen način za pridobitev popolne mape YAML, ki jo je mogoče za pakiranje, je uporaba pac solution clone:

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

S tem izvlečete rešitev v obliki zapisa YAML, vključno z vsemi izvornimi datotekami komponent. Lahko pa uporabite izvorno integracijo storitve Git za uveljavitev Power Apps – potrjene datoteke so v obliki zapisa YAML in jih je mogoče v celoti za pakiranje.

Pred pakiranjem preverite mapo

Preverite, ali mapa solutions/<name>/ obstaja in solutioncomponents.yml ali so vse poti razrešene v dejanske datoteke. Če manjkajo poti, se med pakiranjem prikažejo opozorila, te komponente pa so izpuščene.

Relationship to Dataverse Git integration

Oblika nadzora vira YAML je kanonična oblika zapisa, ki jo uporablja integracija s storitvijo Dataverse Git. Ko ustvarjalci uveljavijo rešitve iz Power Apps, datoteke, napisane v ponudniku Git, uporabljajo to obliko zapisa. Razvijalci, ki prvi uporabljajo kodo, lahko delajo z istim skladiščem z orodji CLI, opisanimi tukaj.

Če želite informacije o povezovanju okolij s storitvijo Git, glejte Nastavitev integracije s storitvijo Dataverse Git.