Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Αυτό το άρθρο είναι μια αναφορά για τη μορφή στοιχείου ελέγχου προέλευσης που βασίζεται στο YAML που χρησιμοποιείται όταν:
- Δέσμευση λύσεων με χρήση εγγενούς Διαθετική ενοποίηση Git σε Power Apps.
- Εξαγάγετε λύσεις χρησιμοποιώντας
pac solution cloneτο ήpac solution syncτο . - Εκτελέστε με μη αυτόματο τρόπο το SolutionPackager σε έναν φάκελο που περιέχει αρχεία διακήρυξης YAML.
Η μορφή YAML διαφέρει από την κλασική διάταξη XML. Η κατανόηση της δομής είναι σημαντική όταν θέλετε να συσκευάσετε με μη αυτόματο τρόπο έναν φάκελο YAML ξανά σε ένα .zip αρχείο που μπορεί να εισαγάγει το Dataverse.
Σημαντικό
Η υποστήριξη μορφής ελέγχου προέλευσης YAML στο pac απαιτεί Microsoft. PowerApps.CLI έκδοση 2.4.1 ή νεότερη. Κάντε λήψη της πιο πρόσφατης έκδοσης από το NuGet ή ενημερώστε μέσω του pac install latest. SolutionPackager.exe, η οποία παρέχεται με το πακέτο NuGet, υποστηρίζει τη μορφή YAML από την ίδια έκδοση.
Επισκόπηση δομής φακέλων
Μια ρίζα αποθετηρίου δεδομένων μορφής YAML περιέχει τους ακόλουθους καταλόγους ανώτατου επιπέδου:
<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/ κατάλογοι και publishers/ απαιτούνται. Όλοι οι φάκελοι στοιχείων στη ρίζα είναι προαιρετικοί και εξαρτώνται από το τι περιέχει η λύση.
Σημαντικό
Όλα τα αρχεία διακήρυξης YAML (solution.yml, publisher.ymlκαι ούτω καθεξής) πρέπει να τοποθετηθούν κάτω από τους αντίστοιχους υποκαταλόγους τους (solutions/<name>/, publishers/<name>/). Η τοποθέτησή τους στη ρίζα του αποθετηρίου αποτρέπει τον εντοπισμό μορφοποίησης και προκαλεί την επαναφορά του εργαλείου SolutionPackager στη μορφή XML , δημιουργώντας ένα παραπλανητικό σφάλμα σχετικά με ένα που λείπει Customizations.xml. Περισσότερες πληροφορίες: Αντιμετώπιση προβλημάτων εργαλείων SolutionPackager
Μορφοποίηση αυτόματου εντοπισμού
Το SolutionPackager (και pac solution pack) εντοπίζει αυτόματα τη μορφή ως εξής:
| Κατάσταση | Εντοπισμένη μορφή | Συμπεριφορά |
|---|---|---|
solutions/*/solution.yml βρέθηκαν — μία λύση |
YAML | Όνομα λύσης που προκύπτει από το όνομα του υποφακέλου |
solutions/*/solution.yml βρέθηκαν — πολλαπλές λύσεις |
YAML |
/SolutionName Απαιτείται όρισμα για τον καθορισμό της λύσης προς πακέτο |
Δεν υπάρχει solutions/ υποκατάλογος |
XML (παλαιού τύπου) | Αναμένει Other\Solution.xml και Other\Customizations.xml |
Αρχεία δηλωτικού
solution.yml
Βρίσκεται στο solutions/<SolutionUniqueName>/solution.yml. Περιέχει μετα-δεδομένα λύσης ανώτατου επιπέδου — το ισοδύναμο YAML στη solution.xml μορφή XML.
Τα πεδία κλειδιών περιλαμβάνουν το μοναδικό όνομα, την έκδοση, το φιλικό όνομα, την περιγραφή και μια αναφορά στον εκδότη.
solutioncomponents.yml
Βρίσκεται στο solutions/<SolutionUniqueName>/solutioncomponents.yml. Εμφανίζει σχετικές διαδρομές σε όλα τα αρχεία στοιχείων που περιλαμβάνονται σε αυτήν τη λύση. Το SolutionPackager διαβάζει αυτό το αρχείο κατά τη διάρκεια του πακέτου για να εντοπίσει προελεύσεις στοιχείων.
Παράδειγμα αποσπάσματος:
- Path: entities/account
- Path: entities/contact
- Path: canvasapps/myapp_<guid>
- Path: publishers/MyPublisher
rootcomponents.yml
Βρίσκεται στο solutions/<SolutionUniqueName>/rootcomponents.yml. Παραθέτει τα στοιχεία επιπέδου ρίζας (συνήθως πίνακες και άλλα αντικείμενα ανώτατου επιπέδου) που ανήκουν σε αυτήν τη λύση.
Note
Εάν ένα στοιχείο δηλώνεται στο αλλά τα αρχεία προέλευσής του απουσιάζουν από τον φάκελο (για παράδειγμα, ένα αρχείο εφαρμογής καμβά στην rootcomponents.yml.msappπεριοχή ), το SolutionPackager εμφανίζει μια προειδοποίηση και παραλείπει αυτό το στοιχείο από το συσκευασμένο canvasapps/<name>/..zip Η λειτουργία του πακέτου εξακολουθεί να ολοκληρώνεται με επιτυχία με τον κωδικό εξόδου 0.
Η επιτυχία της συσκευασίας δεν εγγυάται την επιτυχία της εισαγωγής. Εάν solutioncomponents.yml παραλειφθεί η απαιτούμενη διαδρομή εξάρτησης , όπως οι φάκελοι γονικής οντότητας ή οι ορισμοί σχέσεων στην περιοχή entityrelationships/ — τα πακέτα λύσεων χωρίς σφάλμα, αλλά αποτυγχάνουν στην εισαγωγή με ένα μήνυμα όπως: "Από τους ορισμούς συσχετισμένων σχέσεων λείπουν χαρακτηριστικά." Να εξασφαλίζετε πάντα ότι solutioncomponents.yml περιλαμβάνονται όλες οι εξαρτώμενες οντότητες και σχέσεις, όχι μόνο εκείνες που ανήκουν στη λύση.
missingdependencies.yml
Βρίσκεται στο solutions/<SolutionUniqueName>/missingdependencies.yml. Καταγράφει τυχόν εξαρτήσεις λύσεων που δεν υπήρχαν κατά την τελευταία εξαγωγή της λύσης. Χρησιμοποιείται για ενημερωτικούς σκοπούς και για την επικύρωση της πληρότητας κατά την εισαγωγή.
publisher.yml
Βρίσκεται στο publishers/<PublisherUniqueName>/publisher.yml. Περιέχει τον ορισμό εκδότη — μοναδικό όνομα, εμφανιζόμενο όνομα, πρόθημα προσαρμογής και πρόθημα τιμής επιλογής.
Ελάχιστη απαιτούμενη δομή:
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:
Υποστήριξη τύπου στοιχείου
Ο παρακάτω πίνακας παραθέτει τον τρόπο χειρισμού κάθε τύπου στοιχείου στη μορφή YAML.
| Τύπος στοιχείου | Σε μορφή YAML | Σημειώσεις |
|---|---|---|
| Οντότητες (πίνακες), χαρακτηριστικά, φόρμες, προβολές | ✓ Αρχεία YAML | Αποθηκεύονται ως μεμονωμένα αρχεία YAML ανά δευτερεύουσα μορφή |
| Ροές εργασιών (κλασικές) | ✓ Αρχεία YAML | Υπό workflows/ |
| Σύγχρονες ροές (Power Automate ροές cloud) | ✓ — Μόνο μορφή YAML | Στην περιοχή modernflows/; δεν υποστηρίζεται σε μορφή XML |
| Εφαρμογές τύπου Canvas | ✓ — Μόνο μορφή YAML |
.msapp δυαδική κάτω από canvasapps/<name>/, δεν υποστηρίζεται σε μορφή XML |
| Ορισμοί μεταβλητών περιβάλλοντος | ✓ Αρχεία XML | Μεμονωμένα .xml αρχεία στην περιοχή environmentvariabledefinitions/ |
| Τιμές μεταβλητών περιβάλλοντος | ✓ Αρχείο JSON | Αποθηκευμένες ως environment_variable_values.json |
| Προσαρμοσμένοι σύνδεσμοι | ✓ | Υπό connectors/ |
| Συγκροτήσεις προσθηκών | ✓ | Πλήρως προσδιορισμένα ονόματα τύπων που αντιστοιχίζονται εκ νέου από προεπιλογή (/remapPluginTypeNames) |
| Πόροι Web | ✓ | Υπό webresources/ |
| Ρόλοι ασφαλείας | ✓ | Αποθηκεύονται ως XML εσωτερικά, φιλτραρισμένη ανά λύση |
| Σύνολα επιλογών (καθολικά) | ✓ | Αποθηκεύονται ως XML, φιλτραρισμένη ανά λύση |
| Πίνακες εργαλείων | ✓ | Αποθηκεύονται ως XML, φιλτραρισμένη ανά λύση |
| Χάρτες τοποθεσίας | ✓ | Αποθηκεύονται ως XML, φιλτραρισμένη ανά λύση |
| Προσαρμογές κορδέλας | ✓ | Αποθηκεύονται ως XML, φιλτραρισμένη ανά λύση |
| Σχέσεις οντοτήτων | ✓ | Υπό entityrelationships/ |
Note
Τα στοιχεία που αποθηκεύονται ως XML εσωτερικά μετατρέπονται αυτόματα μεταξύ XML και YAML κατά τη διάρκεια των λειτουργιών συσκευασίας και αποσυσκευασίας. Μπορείτε να τα συντάξετε ως αρχεία YAML. το εργαλείο χειρίζεται τη μετατροπή.
Αποθετήρια πολλαπλών λύσεων
Μια μοναδική ρίζα αποθετηρίου δεδομένων μπορεί να περιέχει πολλές λύσεις. Όλες οι λύσεις μοιράζονται τους ίδιους φακέλους στοιχείων. solutioncomponents.yml Σε κάθε λύση, ελέγχει ποιες διαδρομές στοιχείων ανήκουν σε αυτήν τη λύση.
Παράδειγμα δομής με δύο λύσεις:
<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/
Συσκευασία μιας συγκεκριμένης λύσης από έναν φάκελο πολλαπλών λύσεων
Χρήση SolutionPackager.exe:
SolutionPackager.exe /action:Pack /zipfile:SolutionA.zip /folder:C:\repos\myrepo /SolutionName:SolutionA
Χρήση pac solution pack του (μόνο για φακέλους μίας λύσης — για πολλαπλές λύσεις, χρησιμοποιήστε SolutionPackager.exe απευθείας με /SolutionNameτο ):
pac solution pack --zipfile SolutionA.zip --folder C:\repos\myrepo
Note
Όταν χρησιμοποιείτε την εγγενή ενοποίηση του Dataverse Git με τη σύνδεση περιβάλλοντος, όλες οι λύσεις στο περιβάλλον μοιράζονται μια μοναδική ρίζα αποθετηρίου δεδομένων χρησιμοποιώντας τη διάταξη πολλαπλών λύσεων. Όταν χρησιμοποιείτε σύνδεση λύσεων, κάθε λύση μπορεί να συνδεθεί σε έναν ξεχωριστό φάκελο.
Εργασία με φακέλους μορφοποίησης YAML
Συσκευασία ενός φακέλου YAML σε ένα αρχείο .zip
# 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
Αποκτήστε έναν πλήρη φάκελο YAML από το Dataverse
Ο προτεινόμενος τρόπος για να λάβετε έναν πλήρη φάκελο YAML με δυνατότητα συσκευασίας είναι να χρησιμοποιήσετε το pac solution clone:
pac solution clone --name MySolutionUniqueName --outputDirectory C:\repos\myrepo
Αυτό εξάγει τη λύση στη μορφή YAML, συμπεριλαμβανομένων όλων των αρχείων προέλευσης στοιχείων. Εναλλακτικά, χρησιμοποιήστε εγγενή ενοποίηση Git για δέσμευση από Power Apps — τα δεσμευμένα αρχεία είναι σε μορφή YAML και έχουν δυνατότητα συσκευασίας.
Επαλήθευση του φακέλου πριν από τη συσκευασία
Ελέγξτε ότι ο solutions/<name>/ φάκελος υπάρχει και ότι όλες οι διαδρομές που βρίσκονται στην solutioncomponents.yml επίλυση σε πραγματικά αρχεία. Τυχόν διαδρομές που λείπουν έχουν ως αποτέλεσμα προειδοποιήσεις κατά τη διάρκεια του πακέτου και αυτά τα στοιχεία παραλείπονται.
Σχέση με την ενοποίηση του Dataverse Git
Η μορφή ελέγχου προέλευσης YAML είναι η κανονικός μορφή που χρησιμοποιείται από την ενοποίηση Dataverse Git. Όταν οι δημιουργοί δεσμεύουν λύσεις από το Power Apps, τα αρχεία που έχουν συνταχθεί για να Azure DevOps χρησιμοποιούν αυτήν τη μορφή. Οι προγραμματιστές με προτεραιότητα κώδικα μπορούν να εργαστούν με το ίδιο αποθετήριο δεδομένων χρησιμοποιώντας τα εργαλεία CLI που περιγράφονται εδώ.
Για πληροφορίες σχετικά με τη σύνδεση περιβαλλόντων στο Git, ανατρέξτε στο θέμα Ρύθμιση ενοποίησης Dataverse Git.