Set ou UpdateContext ?

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é

SetUpdateContext
DisponibilitéToute l’applicationUne page
Point fortDisponible partout et initiable dans OnStartSa modification n’engendre pas de calculs sur d’autres écrans
Point faiblePeut ralentir le fonctionnement de l’applicationDoit être initialisé sur chaque écran
Bonne pratiqueStoker des informations légères et ne pas les modifierEmbarquer 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

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Créez un site ou un blog sur WordPress.com

Retour en haut ↑

%d blogueurs aiment cette page :