Résumé en bas de page
Difficulté : 1/5
Ces deux fonctions permettent de stocker provisoirement des données dans Power Apps.
Vous pourrez vous en servir pour garder en mémoire du texte, des chiffres, des dates, des objets et tout autre type de données présent dans votre application.
Il est important de souligner que les valeurs qu’elles contiennent sont supprimées une fois l’application fermée.
Si vous souhaitez les conserver, vous devrez utiliser un formulaire ou la fonction Patch pour les enregistrer sur votre base de données ou SaveData pour les sauvegarder localement sur votre téléphone ou tablette.
Une mauvaise utilisation de ces variables peut engendrer des calculs inutiles et impacter la performance de votre application.
SET
Cette fonction permet de définir une variable que vous pourrez utiliser sur l’intégralité des écrans de votre application.
Dans l’idéal, il faudrait qu’un set soit initialisé et jamais modifié. Etant présent dans l’intégralité des pages, un changement pourra avoir une répercussion sur tous les contrôles qui en font l’usage. En fonction de la complexité de votre app, cela peut générer beaucoup de calculs et impacter sérieusement ses performances.
Exemple :
Vous souhaitez gérer l’accès à différents espaces ou fonctionnalités de votre app en fonction de la personne connectée.
Créez la variable _RoleUtilisateurActuel sur la propriété OnStart de votre application et définissez-la par le rôle de la personne enregistrée dans une table de droit.
Set(_RoleUtilisateurActuel ; LookUp( BaseDeDroits; User().Email = EmailDeLaBaseDeDroit ).Role)
Vous pourrez ainsi modifier la propriété Visible d’un bouton pour l’afficher uniquement aux utilisateurs qui ont un rôle de gestionnaire.
_RoleUtilisateurActuel = "Gestionnaire"
Cette variable est initialisée une seul fois, elle ne sera pas modifiée et pourra être utilisée sur tous les écrans.
UpdateContext
A l’inverse du set, cette variable est exploitable dans un écran à la fois.
Ainsi, même si vous utilisez cette variables sur l’intégralité de votre app, aucun calcul ne sera réalisé sur les écrans non visibles.
Elle peut également stocker des tables cependant Collect ou Table sont plus adaptés.
Cette fonction peut s’utiliser de deux façons :
– Stocker une information dans une page : UpdateContext({ _NomDeLaVariable : Valeur })
– Conserver une information en changeant d’écran : Navigate(Ecran2 ; ScreenTransition.Cover ; { _NomDeLaVariable : Valeur })
Résumé
Set | UpdateContext | |
---|---|---|
Disponibilité | Toute l’application | Une page |
Point fort | Disponible partout et initiable dans OnStart | Sa modification n’engendre pas de calculs sur d’autres écrans |
Point faible | Peut ralentir le fonctionnement de l’application | Doit être initialisé sur chaque écran |
Bonne pratique | Stoker des informations légères et ne pas les modifier | Embarquer d’un écran à un autre uniquement les informations utiles |
Aller plus loin dans la compréhension des variables : https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/working-with-variables
Pour en savoir plus sur l’optimisation des performances de votre application : https://docs.microsoft.com/fr-fr/powerapps/maker/canvas-apps/performance-tips
J’espère vous avoir aidé à y voir plus clair. Si vous avez des contre-exemples ou d’autres précisions à apporter, partagez-les en commentaire 🙂
Votre commentaire