Variables globales
Les variables globales sont les plus couramment utilisées en raison de leur flexibilité. Après avoir défini la variable, vous pouvez la référencer ou la mettre à jour dans l’ensemble de votre application. Cela vous évite d’avoir à interroger à plusieurs reprises les mêmes informations, et vous permet de générer les informations dont vous avez besoin d’une façon impérative, ou tout simplement comme un espace réservé.
Stockage des informations concernant l’utilisateur
Un modèle de conception courant dans les applications est la personnalisation. Par exemple, vous pouvez afficher un message de bienvenue qui inclut le nom de l’utilisateur sur chaque écran. Dans Power Apps, vous pouvez récupérer le nom de l’utilisateur de manière déclarative à l’aide de la formule suivante dans un contrôle Label :
"Welcome " & User().FullName
Cette formule affiche la chaîne Bienvenue, puis interroge Azure Active Directory pour la propriété DisplayName de l’utilisateur et l’affiche sous forme de texte. Toutefois, si vous incluez cette fonction sur chaque écran, chaque fois qu’un écran ouvre Power Apps doit interroger ces données directement à partir de l’ID Microsoft Entra. Cette opération émet des appels répétitifs vers le réseau, ce qui ralentit votre application.
Une meilleure approche serait de stocker ces informations dans une variable globale lors de l’ouverture de l’application, puis de référencer cette variable dans l’ensemble de votre application. Pour cela, vous pouvez modifier la propriété OnStart de l’application avec la formule suivante.
Set(varUserDisplayName, User().FullName)
Maintenant, pour votre contrôle d’étiquette, vous pouvez remplacer la formule par celle-ci :
"Welcome " & varUserDisplayName
Cette formule vous donne la même sortie que la formule précédente, mais au lieu de revenir à l’ID Microsoft Entra sur chaque écran, Power Apps peut faire référence à la valeur stockée dans la variable.
Suivi de statut dans une variable
Dans une optique déclarative, il est possible de masquer ou d’afficher des contrôles en fonction d’une requête de données. Prenons l’exemple d’une application de gestion des commandes client qui afficherait une icône d’avertissement lorsqu’un client a plus de trois factures en souffrance. Vous devrez peut-être par ailleurs obtenir l’accord d’un manager si le client en question souhaite quand même passer une nouvelle commande. Ce flux de travail d’approbation commence par l’utilisateur en sélectionnant un bouton d’approbation.
Dans un esprit déclaratif, vous devez définir la propriété Visible de l’icône d’avertissement sur la valeur suivante :
CountRows(Filter(InvoiceEntity, CustomerNumber = ThisCustomersNumber
And Status = "Outstanding")) > 3
Si c’est vrai, l’icône s’affiche et, si elle a la valeur false, l’icône ne s’affiche pas. Vous pouvez ensuite utiliser cette même formule pour la propriété Visible du bouton d’approbation.
Le problème est que cette formule devient complexe et que vous devez l’exécuter dans deux emplacements différents, ce qui génère un double trafic réseau, un double traitement dans l’application et un double traitement dans la source de données.
Une meilleure approche serait de n’exécuter l’appel complexe qu’une seule fois, de stocker le résultat dans une variable, puis d’utiliser cette variable pour contrôler la propriété Visible de chaque contrôle.
Pour ce faire, configurez la propriété OnVisible de l’écran pour définir la variable.
Set(varOustandingExceeded, CountRows(Filter(InvoiceEntity, CustomerNumber =
ThisCustomersNumber And Status = "Outstanding")) > 3)
La variable varOutstandingExceeded est true ou false, en fonction du résultat de la formule. À présent, définissez la propriété Visible de l’icône et du contrôle bouton sur varOutstandingExceeded.
Aucune autre formule ou fonction n’est nécessaire. Ceci est dû au fait que ces contrôles acceptent la valeur true ou false pour la propriété Visible et que la variable sera soit true, soit false. En fonction de votre fonction Set dans la propriété OnVisible de l’écran, Power Apps définit le type de variable sur Boolean et définit la valeur true ou false en fonction du résultat de la formule.
Ces petites modifications rendent votre application à la fois plus performante et plus facile à gérer. Vous devez incorporer des variables chaque fois que vous récupérez des informations qui ne changeront pas pendant que vous l’utilisez.