Irtenbidearen YAML iturburu-kontrolaren formatuaren erreferentzia

Artikulu hau YAML-en oinarritutako iturburu-kontrol formatua erreferentzia da:

  • Konpromisoa hartu irtenbideak Dataverse Git integrazioa erabiliz Power Apps.
  • Atera irtenbideak erabiliz pac solution clone edo pac solution sync.
  • Eskuz exekutatu SolutionPackager YAML manifestu-fitxategiak dituen karpeta batean.

YAML formatua XML diseinu klasikotik bereizten da. Egitura ulertzea garrantzitsua da YAML karpeta bat eskuz paketatu nahi duzunean Dataverse-k inportatu dezakeen fitxategi batean .zip .

Garrantzitsua

YAML iturburu-kontrol formatuaren euskarria pac CLI-n Microsoft behar da. PowerApps.CLI 2.4.1 bertsioa edo berriagoa da. Deskargatu azken bertsioa NuGet edo eguneratu pac install latest bidez. SolutionPackager.exe, NuGet paketearekin batera hornitzen dena, bertsio bereko YAML formatua onartzen du.

Karpeta-egituraren ikuspegi orokorra

YAML formatuko biltegiaren erroak goi-mailako direktorio hauek ditu:

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

Direktorioak solutions/ eta publishers/ direktorioak beharrezkoak dira. Erroan dauden osagaien karpeta guztiak aukerakoak dira eta irtenbideak daukanaren araberakoak dira.

Garrantzitsua

YAML manifestu-fitxategi guztiak (solution.yml, publisher.yml, eta abar) dagozkien azpidirektorioetan kokatu behar dira (solutions/<name>/, ). publishers/<name>/ Biltegiaren erroan jartzeak formatua detektatzea eragozten du eta SolutionPackager tresna XML formatura itzultzea eragiten du, falta den Customizations.xmlerrore engainagarria sortuz. Informazio gehiago: SolutionPackager tresnaren arazoak konpontzea

Formatuaren detekzio automatikoa

SolutionPackager-ek (eta pac solution pack) formatuak automatikoki detektatzen ditu honela:

Baldintza Detektatutako formatua Portaera
solutions/*/solution.yml Aurkitu - Irtenbide bat YAML Azpikarpetaren izenetik ondorioztatutako soluzioaren izena
solutions/*/solution.yml Aurkitu - Hainbat irtenbide YAML /SolutionName Zein irtenbide paketatu behar den zehazteko beharrezkoa den argumentua
Ez azpidirektoriorik solutions/ XML (ondarea) Espero du Other\Solution.xml eta Other\Customizations.xml

Manifestu fitxategiak

solution.yml

Bertan kokatua solutions/<SolutionUniqueName>/solution.yml. Goi-mailako soluzioaren metadatuak ditu, XML formatuan YAML baliokidea solution.xml .

Gako-eremuak soluzioaren izen esklusiboa, bertsioa, izen lagunkoia, deskribapena eta argitaratzailearen erreferentzia dira.

solutioncomponents.yml

Bertan kokatua solutions/<SolutionUniqueName>/solutioncomponents.yml. Irtenbide honetan sartutako osagai-fitxategi guztien bide-izen erlatiboak zerrendatzen ditu. SolutionPackager-ek fitxategi hau irakurtzen du paketatzean zehar osagaien iturburuak aurkitzeko.

Adibide pasartea:

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

rootcomponents.yml

Bertan kokatua solutions/<SolutionUniqueName>/rootcomponents.yml. Irtenbide honi dagozkion erro-mailako osagaiak (normalean taulak eta goi-mailako beste objektu batzuk) zerrendatzen ditu.

Oharra

Osagai bat in deklaratzen rootcomponents.yml bada, baina bere iturburu-fitxategiak karpetan ez badaude (adibidez, oihaleko aplikazio-fitxategi .msapp bat azpian canvasapps/<name>/), SolutionPackager-ek abisu bat igorriko du eta osagai hori paketatutako .zip. Paketearen eragiketa ongi osatzen da 0 irteera kodearekin.

Paketearen arrakastak ez du inportazioaren arrakasta bermatzen. Beharrezko mendekotasun-bideak alde batera uzten baditu, hala nola entitate gurasoen karpetak edo harremanen definizioak solutioncomponents.yml , irtenbideak akatsik gabe paketatzen du, baina huts egiten du inportazioan: entityrelationships/ Ziurtatu beti mendekotasun solutioncomponents.yml entitate eta harreman guztiak barne hartzen dituela, ez soilik irtenbidearen jabetzakoak.

missingdependencies.yml

Bertan kokatua solutions/<SolutionUniqueName>/missingdependencies.yml. Irtenbidea azken aldiz esportatu zenean ez zeuden irtenbideen mendekotasunak erregistratzen ditu. Informazio-helburuetarako eta inportazioaren osotasuna baliozkotzeko.

publisher.yml

Bertan kokatua publishers/<PublisherUniqueName>/publisher.yml. Argitaratzailearen definizioa dauka: izen esklusiboa, bistaratze-izena, pertsonalizazio-aurrizkia eta aukera-balioaren aurrizkia.

Gutxieneko egitura:

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:

Osagai moten euskarria

Ondorengo taulan osagai mota bakoitza YAML formatuan nola kudeatzen den agertzen da.

Osagai mota YAML formatuan Oharrak
Entitateak (taulak), atributuak, inprimakiak, ikuspegiak ✓ YAML fitxategiak Azpiosagai bakoitzeko YAML fitxategi indibidual gisa gordetzen dira
Lan-fluxuak (klasikoa) ✓ YAML fitxategiak azpian workflows/
Fluxu modernoak (Power Automate hodeiko fluxuak) ✓ — YAML formatua soilik azpian; ez modernflows/da XML formatuan onartzen
Mihise-aplikazioak ✓ — YAML formatua soilik .msapp bitarra hemen canvasapps/<name>/; ez da onartzen XML formatuan
Ingurune-aldagaien definizioak ✓ XML fitxategiak Banakako fitxategiak .xml azpian environmentvariabledefinitions/
Ingurune-aldagaien balioak ✓ JSON fitxategia Honela gordetzen da environment_variable_values.json
Konektore pertsonalizatuak azpian connectors/
Pluginen muntaia Lehenespenez birmapatutako mota guztien izenak (/remapPluginTypeNames)
Web-baliabideak azpian webresources/
Segurtasun-funtzioak XML gisa gordetzen da barnean; Irtenbide bakoitzeko iragazgaia
Aukera multzoak (orokorra) XML gisa gordetzen da; Irtenbide bakoitzeko iragazgaia
Panelak XML gisa gordetzen da; Irtenbide bakoitzeko iragazgaia
Guneen mapak XML gisa gordetzen da; Irtenbide bakoitzeko iragazgaia
Zintaren pertsonalizazioak XML gisa gordetzen da; Irtenbide bakoitzeko iragazgaia
Entitate-erlazioak azpian entityrelationships/

Oharra

XML gisa barnean gordetako osagaiak automatikoki bihurtzen dira XML eta YAML-en artean paketatze eta despaketatzeko eragiketetan. YAML fitxategi gisa sor ditzakezu; Tresnak bihurketa kudeatzen du.

Soluzio anitzeko biltegiak

Biltegi bakar batek hainbat irtenbide izan ditzake. Irtenbide guztiek osagai karpeta berdinak partekatzen dituzte; solutioncomponents.yml Soluzio bakoitzean soluzio horri dagozkion osagaien bideak kontrolatzen ditu.

Egitura adibidea, bi soluziorekin:

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

Soluzio zehatz bat soluzio anitzeko karpeta batetik paketatzea

Erabiliz SolutionPackager.exe:

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

Erabilera pac solution pack (soluzio bakarreko karpetak soilik - irtenbide anitzeko karpetetarako, erabili zuzenean SolutionPackager.exe honekin):/SolutionName

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

Oharra

Dataverse Git jatorrizko integrazioa ingurunearen loturarekin erabiltzen denean, inguruneko soluzio guztiek biltegiaren erro bakarra partekatzen dute soluzio anitzeko diseinua erabiliz. Irtenbideen lotura erabiltzean, soluzio bakoitza karpeta bereizi batera lotu daiteke.

YAML formatuko karpetekin lan egitea

Patsatu YAML karpeta .zip fitxategi batean

# 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

Eskuratu YAML karpeta osoa Dataverse-tik

YAML karpeta osoa eta paketagarria lortzeko modu gomendagarria hau da pac solution clone:

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

Honek irtenbidea YAML formatuan erauzten du, osagaien iturburu-fitxategi guztiak barne. Bestela, erabili jatorrizko Git integrazioa Power Apps-etik konpromisoa hartzeko - konprometitutako fitxategiak YAML formatuan daude eta guztiz paketagarriak dira.

Egiaztatu karpeta paketatu aurretik

Egiaztatu karpeta solutions/<name>/ existitzen dela eta bide-izen solutioncomponents.yml guztiak benetako fitxategietara ebazten direla. Falta diren bide-bide guztiek abisuak eragiten dituzte paketatzean zehar eta osagai horiek alde batera uzten dira.

Dataverse Git integrazioarekin erlazioa

YAML iturburu-kontrolaren formatua Dataverse Git integrazioak erabiltzen duen formatu kanonikoa da. Sortzaileek Power Apps-eko irtenbideak konprometitzen dituztenean, Azure DevOps-en idatzitako fitxategiek formatu hau erabiltzen dute. Code-first garatzaileek biltegi berarekin lan egin dezakete hemen deskribatutako CLI tresnak erabiliz.

Inguruneak Git-ekin konektatzeari buruzko informazioa lortzeko, ikus Dataverse Git integrazioaren konfigurazioa.