Utiliser YAML

Effectué

Une fois votre application décompressée, vous pouvez stocker les formules extraites dans les fichiers texte en utilisant un sous-ensemble de YAML. YAML est un langage de sérialisation de données convivial. Sa finalité est de simplifier le processus de lecture et d’écriture de la source et de déterminer les différences entre les versions. De plus, vous pouvez modifier ces fichiers à l’aide de n’importe quel éditeur de texte si vous suivez les conventions de formule YAML Microsoft Power Fx qui ont été adoptées.

Le contrôle d’étiquette suivant est représenté au format 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 utilise des paires clé/valeur pour représenter les données et prend en charge l’imbrication des paires. Par exemple, un élément comme lblAppName1 peut avoir des paires clé/valeur indentées pour Remplissage, Hauteur, Taille, etc. YAML utilise l’indentation pour déterminer la structure. Les espaces sont utilisés pour l’indentation, mais les tabulations ne sont pas autorisées.

Voici les trois caractéristiques uniques de l’intégration des formules Power Fx dans YAML :

  • Les contrôles sont saisis avec le mot-clé As. Vous pouvez définir le contrôle des étiquettes, comme dans l’exemple précédent, en utilisant l’expression lblAppName1 as Libellé:. Normalement, YAML présente un seul nom à gauche des deux points (:) lorsque vous fournissez une valeur de propriété. Cependant, rien dans les spécifications YAML n’exclut des expressions de gauche plus complexes. Par conséquent, la syntaxe Power Fx YAML peut nommer la propriété et fournir son type.

  • Toutes les formules commencent par un signe égal. De la même manière qu’avec Microsoft Excel, le signe égal (=) introduit une formule, plutôt qu’une valeur statique. Vous n’avez pas besoin de saisir le premier signe égal (=) dans Power Apps Studio, car il est toujours présent dans la barre de formule, comme vous pouvez le constater. De plus, le signe égal (=) permet d’éviter l’interprétation normale du type de données que YAML effectue pour la valeur statique, ce qui n’est pas adapté aux formules.

  • Certaines formules doivent être exprimées dans la syntaxe multiligne YAML. Si une formule contient une chaîne avec un # intégré, celui-ci est interprété par YAML comme le début d’un commentaire. Par conséquent, le reste de la ligne est tronqué. Pour éviter cela, veillez à exprimer la formule à l’aide de la syntaxe multiligne de YAML. La syntaxe | est la plus couramment utilisée.

Pour en savoir plus, consultez Grammaire de la formule YAML Microsoft Power Fx.

Structure du dossier

Lorsque vous décompressez une application canevas, un ensemble de fichiers et de dossiers est créé. Une fois le processus de décompression effectué, vous trouvez les fichiers et dossiers clés suivants :

  • \src : fichiers de contrôle et de composants. Ce fichier contient les sources.

  • *.fx.yaml : formules extraites du fichier control.json. C’est ici que vous pouvez modifier vos formules.

  • CanvasManifest.json : fichier manifeste qui contient les éléments se trouvant normalement dans l’en-tête, les propriétés et publishInfo.

  • *.json : fichier control.json brut.

  • \EditorState*.editorstate.json : informations mises en cache que Power Apps Studio utilise.

  • \DataSources : toutes les sources de données utilisées par l’application.

  • \Connections : instances de connexion enregistrées avec cette application et utilisées lorsque vous effectuez un rechargement dans Power Apps Studio.

  • \Assets : fichiers multimédias incorporés à l’application.

  • \pkgs : copie téléchargée de références externes, telles que des modèles, des fichiers de définition d’API et des bibliothèques de composants. Ces fichiers sont similaires aux références nuget/npm.

  • \other : tous les fichiers divers nécessaires à la recréation du fichier .msapp.

  • entropy.json : les éléments volatils (comme les horodatages) sont extraits vers ce fichier. Ce dernier permet de réduire le bruit dans d’autres fichiers, tout en garantissant que les allers-retours sont toujours possibles. Il contient d’autres fichiers provenant du fichier .msapp, par exemple, les éléments contenus dans \references.

Format de fichier

Vous pouvez modifier les formules dans les fichiers dont le nom se termine par *.fx.yaml. En explorant les fichiers extraits, vous constaterez que tous ne contiennent pas YAML. Nombre d’entre eux sont au format natif et ne sont pas destinés à être modifiés en dehors de Power Apps Studio.

Fusionner les modifications apportées à la source

La décompression permet, entre autres, à plusieurs personnes de modifier une application et de fusionner les modifications dans le contrôle de code source. Dans ce cas, il est préférable de minimiser les risques de conflits. Par exemple, la modification de formules sur le même contrôle présente un fort risque de conflit. En revanche, il est moins probable que deux personnes modifient des écrans différents.

Si vous créez l’application dans le cloud, téléchargez-la, puis modifiez-la. Sachez que lorsque vous téléchargez la version recompressée, celle-ci écrase toutes les modifications apportées à la version cloud, car elle a été téléchargée.

Dans ce cas, afin d’éviter d’écraser et de perdre le travail effectué en ligne, vous devez télécharger à nouveau l’application à partir du cloud, la décompresser, valider les modifications apportées au fichier, résoudre les éventuels conflits, puis recompresser et charger la nouvelle application. Vérifiez que le contrôle de code source contient la copie principale de votre application.

Des conflits peuvent se produire si plusieurs personnes effectuent des modifications simultanément. Par exemple, si deux personnes choisissent le même nom de contrôle sur des écrans différents, cela crée un conflit de fusion. Pour en savoir plus, consultez Documentation relative à la CLI Microsoft Power Platform.