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
L’un des modèles de conception les plus courants consiste à personnaliser l’application. Cela peut être très simple, comme par exemple, afficher le message « Bienvenue » et le nom de l’utilisateur dans chaque écran de l’application. Avec Power Apps, vous pouvez afficher un message de bienvenue et obtenir le nom de l’utilisateur de façon déclarative en utilisant la formule suivante dans un contrôle Étiquette.
"Welcome " & User().FullName
Cette formule affiche la chaîne « Bienvenue », puis interroge Azure Active Directory pour connaître la valeur de la propriété DisplayName de l’utilisateur et l’afficher sous forme de texte. Toutefois, si vous incluez cette fonction dans tous les écrans, chaque fois qu’un écran s’ouvre, Power Apps doit alors interroger ces données directement à partir de Microsoft Entra ID. 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 donne le même résultat que la précédente ; la différence est que Power Apps peut faire référence à la valeur stockée dans la variable, ce qui évite d’avoir à retourner dans Microsoft Entra ID sur chaque écran.
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. Le flux de travail approbation démarre lorsque l’utilisateur sélectionne le 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 la valeur est true, l’icône s’affiche, et si elle est 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. Selon la fonction Set qui se trouve dans la propriété OnVisible de l’écran, Power Apps définit le type de variable sur Booléen, et définit la valeur sur 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 dès que vous devez récupérer de façon répétée les informations qui ne changeront pas pendant que vous les utilisez.