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. Surveiller et le panneau Variables peut vous aider à déboguer.
Voici quelques 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. Lorsque les choses se passent mal, il peut être difficile d’identifier la partie ayant échoué. Les étiquettes de débogage sont une technique utile pour voir les résultats de différentes parties d’une formule.
Une étiquette de débogage est une étiquette avec sa propriété Text définie sur une formule d’intérêt. 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 Gallery et Form.
Imaginez qu’un contrôle de 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 configurée correctement. 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 pour 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 d’intérêt.
Vous pouvez utiliser les fonctions FirstN et LastN pour améliorer les 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 de façon méthodique, 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 ce que son ProductType
champ est. 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 s’agir des éléments suivants :
- Le
ProductType
champ de cet enregistrement est vraiment vide. Si le jeu de données provient de l’extérieur de l’application, vérifiez-le en dehors de Power Apps. - Une ou plusieurs des 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 a du texte, il est probable qu’il s’agit 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 déterminer si le problème est lié à 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.
Booléen
Choix et table
Date et DateTime
Image et média
- Texte HTML
- Image
- Propriété Image de l’audio, de la vidéo et du microphone
Nombre
Text
Tous les types
- Étiquette, après la conversion d’une valeur en texte
Si le même problème se produit sur un autre contrôle, le problème est lié aux formules ou à la source de données utilisée. Passez aux étapes de débogage ci-dessus pour isoler davantage le problème.
Si le problème se produit uniquement sur un type de contrôle particulier, il est probable qu’il s’agit 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 les contrôles en dehors de la galerie ne peuvent pas. 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
- Conteneur
- Afficher le formulaire
- Modifier le formulaire
- Galerie
- Conteneur horizontal
- Scrollable screen (Fluid grid)
- 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 est défini sur ThisItem.Name
. Gallery.Items est défini sur Products
.
Pour vérifier 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 est probable qu’il s’agit 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.
Certaines solutions de contournement possibles pour les problèmes d’étendue :
- Déplacer des contrôles en dehors de leurs conteneurs
- Reportez-vous aux données dans des variables globales ou contextuelles
- Utiliser Patch pour éviter d’utiliser un contrôle de formulaire Modifier
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 la republier, essayez de la restaurer vers la version précédente. Si elle fonctionne à nouveau, examinez les modifications apportées pour voir ce qui pourrait avoir rompu l’application.
Parfois, les bogues peuvent être introduits avec de nouvelles versions de Power Apps. À l’inverse, de nouvelles versions peuvent apporter des correctifs de bogues. Support Microsoft pouvez recommander si vous devez revenir à une version de création antérieure ou effectuer une mise à niveau vers une version plus récente. N’oubliez pas qu’il existe une prise en charge limitée des versions non recommandées 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 détecter 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 à d’autres personnes.
Prochaines étapes
Débogage d’applications canevas avec Monitor