Mit YAML arbeiten

Abgeschlossen

Nachdem Ihre App entpackt wurde, können Sie eine Teilmenge von YAML verwenden, um extrahierte Formeln in den Textdateien zu speichern. YAML ist eine benutzerfreundliche Sprache für die Serialisierung von Daten. Ziel ist das Vereinfachen, die Quelle zu lesen und zu schreiben sowie die Unterschiede zwischen den Versionen zu bestimmen. Darüber hinaus können Sie diese Dateien mit einem beliebigen Texteditor bearbeiten, wenn Sie den Microsoft Power fx-YAML-Formelkonventionen folgen.

Hier ist ein Label-Steuerelement als YAML:

   LblAppName1 As label:
        Fill: =RGBA(58, 58, 58, 0)
        Height: =88
        Size: =27
        Text: ="Companies"
        Width: =Parent.Width - Self.X - IconSortUpDown1.Width - IconNewItem1.Width - IconRefresh1.Width
        Wrap: =false
        X: =20
        ZIndex: =2

YAML verwendet Schlüssel/Wert-Paare zur Darstellung der Daten und unterstützt die Schachtelung der Paare. Zum Beispiel kann ein Element wie lblAppName1 eingerückte Schlüssel/Wert-Paare haben für Fill, Height, Size usw. haben. YAML verwendet Einrückungen, um die Struktur und die Abstände für die Einrückung zu bestimmen, erlaubt jedoch keine Registerkarten.

YAML bettet drei einzigartige Aspekte von Power fx-Formeln an:

  • Das As-Schlüsselwort definiert Steuerelementtypen. Sie können das Label-Steuerelement wie im vorherigen Beispiel festlegen, indem Sie den Ausdruck lblAppName1 as Label verwenden. Normalerweise hat YAML nur einen einzigen Namen links vom Doppelpunkt (:), wenn Sie einen Eigenschaftswert angeben. Allerdings schließt nichts in den YAML-Spezifikationen komplexere linksseitige Ausdrücke aus, und die Power Fx YAML-Syntax nutzt diese Auslassung, um die Eigenschaft zu benennen und ihren Typ anzugeben.

  • Alle Formeln beginnen mit einem vorangestellten Gleichheitszeichen. Ähnlich zu Microsoft Excel, führt das Gleichheitszeichen (=) eine Formel anstelle eines statischen Werts ein. Sie müssen das vorangestellte Gleichheitszeichen (=) in Power Apps Studio nicht eingeben, aber es befindet sich immer auf der Bearbeitungsleiste. Auch das vorangestellte Gleichheitszeichen (=) hilft Ihnen, die normale Datentypinterpretation zu vermeiden, die YAML für statische Werte vornimmt, die für Formeln nicht geeignet ist.

  • Einige Formeln müssen in mehrzeiliger YAML-Syntax ausgedrückt werden. Wenn Sie eine Formel haben, die eine Zeichenfolge mit einem eingebetteten # enthält, wird es von YAML als Anfang eines Kommentars interpretiert. Daher wird der Rest der Zeile abgeschnitten. Stellen Sie sicher, dass Sie die Formel mithilfe der mehrzeiligen Syntax von YAML ausdrücken, um dies zu vermeiden. Am häufigsten ist die Verwendung der |-Syntax.

Weitere Informationen finden Sie unter Microsoft Power fx-YAML-Formelgrammatik.

Ordnerstruktur

Wenn Sie eine Canvas-App entpacken, sehen Sie nach der Erstellung eines Satzes mit Dateien und Ordnern. Nachdem Sie den Entpackvorgang ausgeführt haben, werden die folgenden Schlüsseldateien und ‑ordner angezeigt:

  • \src – Die Steuerelement‑ und Komponentendateien. Diese Datei enthält die Quellen.

  • *.fx.yaml – Die Formeln, die aus der control.json-Datei extrahiert werden. Hier können Sie Ihre Formeln bearbeiten.

  • CanvasManifest.json – Eine Manifestdatei, die das enthält, was normalerweise in der Kopfzeile, in den Eigenschaften und in publishInfo enthalten ist.

  • *.json – Die rohe control.json-Datei.

  • \EditorState*.editorstate.json – Zwischengespeicherte Informationen zur Verwendung von Power Apps Studio.

  • \DataSources – Alle Datenquellen, die von der App verwendet werden.

  • \Connections – Verbindungsinstanzen, die mit dieser App gespeichert und beim erneuten Laden in Power Apps Studio verwendet werden.

  • \Assets – Mediendateien, die in die App eingebettet sind.

  • \pkgs – Eine heruntergeladene Kopie externer Referenzen so wie Vorlagen, API-Definitionsdateien und Komponentenbibliotheken. Diese Dateien haben Ähnlichkeiten mit nuget/npm-Referenzen.

  • \other – Alle sonstigen Dateien, die für die Neuerstellung der .msapp-Datei benötigt werden.

  • entropy.json – Flüchtige Elemente (wie Zeitstempel) werden in diese Datei extrahiert. Diese Datei trägt dazu bei, störende Diffs in anderen Dateien zu reduzieren und gleichzeitig sicherzustellen, dass Sie immer noch einen Roundtrip durchführen können. Enthält andere Dateien aus der .msapp-Datei, wie die in \references.

Dateiformat

Bei Dateien, die auf *.fx.yaml enden, können Sie Formeln bearbeiten. Beim Durchsuchen der extrahierten Dateien werden Sie feststellen, dass nicht alle YAML enthalten, viele haben ihr natives Format und sind nicht für die Bearbeitung außerhalb von Power Apps Studio vorgesehen.

Quellenänderungen zusammenführen

Ein Szenario, das durch das Entpacken ermöglicht wird, ist die Option für mehrere Personen, eine App zu bearbeiten und Änderungen in der Quellcodeverwaltung zusammenzuführen. Sie sollten in diesem Szenario Konflikte minimieren. Zum Beispiel führt das Bearbeiten von Formeln auf demselben Steuerelement wahrscheinlich zu einem Konflikt, aber zwei Personen, die unterschiedliche Bildschirme bearbeiten, ist ein Szenario, bei dem Konflikt weniger wahrscheinlich ist.

Beachten Sie, wenn Sie die App in der Cloud erstellen, herunterladen und dann bearbeiten, dass beim Hochladen der neu gepackten Version alle Änderungen überschrieben werden, die an der Cloud-Version vorgenommen wurden.

Um zu vermeiden, dass seit dem letzten Herunterladen der App online durchgeführte Arbeiten überschrieben werden und verloren gehen, sollten Sie die App erneut aus der Cloud herunterladen, entpacken, die Dateiänderungen festschreiben, Konflikte lösen und dann die neue App neu packen und hochladen. Stellen Sie sicher, dass die Quellcodeverwaltung die Hauptkopie Ihrer App umfasst.

Auch hier können Konflikte auftreten, wenn mehrere Personen zur gleichen Zeit Änderungen vornehmen. Wenn zum Beispiel zwei Personen denselben Steuerelementnamen auf verschiedenen Bildschirmen auswählen, würde dies zu einem Zusammenführungskonflikt führen. Weitere Informationen finden Sie in der Microsoft Power Platform-CLI-Dokumentation.