Isoler les problèmes dans les applications de canevas
Les applications canevas vous permettent de concevoir des applications avec de nombreux visuels différents et diverses connexions de données. Utilisez IntelliSense et le vérificateur d’application comme protection contre les problèmes courants. Monitor et le panneau Variables peuvent vous aider à déboguer.
Voici d’autres techniques permettant d’isoler les problèmes dans une application canevas.
Inspecter les formules avec des étiquettes de débogage
Les formules peuvent être complexes. En cas de problème, il peut être difficile de déterminer quelle partie a échoué. Les étiquettes de débogage sont une technique utile pour voir les résultats des différentes parties d’une formule.
Une étiquette de débogage est une étiquette avec sa propriété Text définie sur une formule intéressante. Il vous permet de voir exactement comment Power Apps traite ces formules. Pour éviter les bogues d’étendue, insérez l’étiquette de débogage en dehors d’autres contrôles tels que Galerie et Formulaire.
Imaginez qu’un contrôle Zone de liste déroulante affiche moins que prévu et que les options de liste déroulante sont vides.
Vérifiez si la zone de liste déroulante est correctement configurée. Par exemple, la propriété Items est définie sur une formule complexe ci-dessous :
AddColumns(
GroupBy(
Filter( Products, Rating > 4 ),
"ProductType",
"Details"
),
"Total quantity",
Sum( Details, Quantity )
)
Commencez par l’expression Filter( Products, Rating > 4 )
la plus interne . Insérez une étiquette de débogage et définissez sa propriété Text pour tester le résultat de cette expression. Quelques informations utiles à vérifier :
- Vérifiez si le nombre de résultats est comme prévu :
CountRows( Filter( Products, Rating > 4 ) )
- Examinez le premier résultat et vérifiez que le filtre fonctionne comme prévu :
"Rating of first result is " & First( Filter( Products, Rating > 4 ) ).Rating
- Vérifiez les résultats en combinant leurs noms :
Concat( Filter( Products, Rating > 4 ), ProductName & ", ")
Conseil
Lorsque vous utilisez des jeux de données, les tables de débogage sont utiles pour afficher un aperçu des enregistrements. Le concept est similaire aux étiquettes de débogage. Insérez une table de données avec sa propriété Items définie sur le jeu de données qui vous intéresse.
Vous pouvez utiliser les fonctions FirstN et LastN pour de meilleures performances avec les jeux de données.
Une fois que vous avez confirmé qu’une expression est évaluée correctement, vous pouvez passer à l’expression GroupBy( Filter( Products, Rating > 4 ), "ProductType", "Details" )
externe suivante. En procédant méthodiquement, vous pouvez déterminer quelle partie d’une expression complexe ne fonctionne pas.
Lorsque vous utilisez des options de liste déroulante vides, commencez par la propriété DisplayFields . Imaginez qu’il est défini sur [ProductType]
. Utilisez une étiquette de débogage pour vérifier que ce champ est reconnu par Power Apps et contient du texte. Étant donné que toutes les options de liste déroulante sont vides, il suffit d’examiner n’importe quel enregistrement. Nous allons choisir le premier enregistrement et voir quel est son ProductType
champ. Définissez l’étiquette de débogage sur :
First(
AddColumns(
GroupBy(
Filter( Products, Rating > 4 ),
"ProductType",
"Details"
),
"Total quantity",
Sum( Details, Quantity )
)
).ProductType
Si le résultat est vide, il peut être :
- Le
ProductType
champ de cet enregistrement est vraiment vide. Si le jeu de données provient de l’extérieur de l’application, case activée-le en dehors de Power Apps. - Une ou plusieurs expressions ne fonctionnent pas. Décomposez-le comme décrit ci-dessus pour affiner. Il peut s’agir d’un bogue Power Apps ou d’une erreur lors de l’écriture de la formule.
- Les données n’atteignent pas Power Apps. Il peut s’agir d’un problème réseau, d’un problème avec la source de données ou d’un bogue Power Apps.
Si le résultat contient du texte, il s’agit probablement d’un bogue Power Apps avec le contrôle. Vous pouvez signaler le bogue via une demande de support et utiliser un autre contrôle comme solution de contournement.
Essayer un autre contrôle
Pour savoir si le problème concerne un contrôle spécifique, essayez d’utiliser un autre contrôle qui a le même type de données d’entrée ou de sortie.
Boolean
Choix et table
Date et DateTime
Image et média
- Texte HTML
- Image
- Propriété Image de Audio, Vidéo et Microphone
Nombre
Texte
Tous les types
- Étiquette, après la conversion d’une valeur en texte
Si le même problème se produit sur un contrôle différent, le problème concerne les formules ou la source de données utilisées. Poursuivez les étapes de débogage ci-dessus pour isoler davantage le problème.
Si le problème se produit uniquement sur un type particulier de contrôle, il s’agit probablement d’un bogue de contrôle. Vous pouvez signaler le bogue à Microsoft.
Essayer une autre structure d’application
Les formules peuvent se comporter différemment pour les contrôles à l’intérieur d’un autre contrôle. Par exemple, les contrôles à l’intérieur d’une galerie peuvent utiliser ThisItem , mais pas les contrôles en dehors de la galerie. Les contrôles en dehors d’une galerie ou d’un composant ne peuvent pas référencer les contrôles à l’intérieur.
Cette visibilité différente des identificateurs est appelée étendue. Les contrôles qui contiennent d’autres contrôles introduisent une nouvelle étendue.
- Composant
- Container
- Formulaire d'affichage
- Formulaire de modification
- Galerie
- Conteneur horizontal
- Écran à défilement (grille Fluid)
- Conteneur vertical
Si une formule ne fonctionne pas à l’intérieur d’un contrôle autonome, elle peut être liée à l’étendue. Essayez d’utiliser la même formule en dehors du conteneur.
Par exemple, un contrôle Label à l’intérieur d’une galerie doit afficher le nom de chaque enregistrement, mais aucun texte n’apparaît.
Label.Text a la valeur ThisItem.Name
.
Gallery.Items a la valeur Products
.
Pour case activée s’il s’agit d’un problème d’étendue, insérez une étiquette de débogage en dehors de la galerie, au niveau supérieur de l’application. Définissez sa propriété Text pour afficher le nom du premier enregistrement du jeu de données : First(Products).Name
.
L’étiquette de débogage doit avoir le même résultat que la première ligne de la galerie. Si ce n’est pas le cas, il s’agit probablement d’un bogue d’étendue avec Power Apps que vous pouvez signaler via une demande de support. En revanche, si les deux sont vides, le problème peut être lié à la source de données.
Voici quelques solutions de contournement possibles pour les problèmes d’étendue :
- Déplacer des contrôles en dehors de leurs conteneurs
- Faire référence aux données dans des variables globales ou de contexte
- Utiliser patch pour éviter d’utiliser un contrôle Modifier le formulaire
Restaurer vers une version antérieure
Si vous n’avez pas apporté de modifications majeures à une application et qu’elle a soudainement cessé de fonctionner après sa republiation, essayez de la restaurer à la version précédente. Si cela fonctionne à nouveau, examinez les modifications apportées pour voir ce qui a peut-être endommagé l’application.
Parfois, des bogues peuvent être introduits avec les nouvelles versions de Power Apps. À l’inverse, les nouvelles versions peuvent apporter des correctifs de bogues. Support Microsoft pouvez vous recommander de revenir à une version de création plus ancienne ou d’effectuer une mise à niveau vers une version plus récente. N’oubliez pas que la prise en charge des versions non recommandées est limitée si vous modifiez la version de création par vous-même.
Créer une application de reproduction minimale
Le processus de création d’une application de reproduction minimale peut révéler des erreurs de configuration d’application qui ne sont pas évidentes avec une application complexe. Même si le problème n’est pas résolu, vous auriez réduit la cause et facilité l’explication du problème aux autres.
Étapes suivantes
Débogage d’applications canevas avec Monitor