Fonction UpdateContext

S’applique à : Applications canevas

Crée ou met à jour des variables de contexte de l’écran actuel.

Vue d’ensemble

Utilisez la fonction UpdateContext pour créer une variable de contexte qui stocke temporairement une partie des informations, telles que le nombre de fois où l’utilisateur a sélectionné un bouton ou le résultat d’une opération de données.

Les variables de contexte sont limitées à un écran, ce qui signifie que vous ne pouvez pas créer une formule qui fait référence à une variable de contexte située dans un autre écran. Si vous avez déjà utilisé un autre outil de programmation, vous pouvez considérer une variable de contexte comme une variable locale. Utilisez la fonction Set pour travailler avec des variables globales qui sont disponibles dans l’ensemble de votre application.

Power Apps dépendent de formules recalculées automatiquement lorsque l’utilisateur interagit avec une application. Les variables de contexte ne proposent pas cet avantage et peuvent compliquer la création et la compréhension de votre application. Avant d’utiliser une variable de contexte, consultez la section relative à l’utilisation des variables.

Description

Pour créer ou mettre à jour une variable de contexte, transmettez un seul enregistrement à la fonction UpdateContext. Dans chaque enregistrement, spécifiez le nom d’une colonne, qui définit le nom de la variable ou y correspond, ainsi que la valeur sur laquelle vous voulez définir cette variable.

  • Si vous spécifiez le nom d’une variable que vous avez précédemment définie, UpdateContext définit la valeur de la variable sur celle que vous spécifiez.
  • Si vous spécifiez le nom d’une variable qui n’existe pas encore, UpdateContext crée une variable portant ce nom et définit la valeur de cette variable sur celle que vous spécifiez.
  • Si vous avez précédemment défini une variable, mais si vous ne la spécifiez pas dans cette formule UpdateContext en particulier, sa valeur reste la même.

Les variables de contexte sont créées implicitement à l’aide de la fonction UpdateContext ou Navigate. Aucune déclaration explicite n’est requise. Si vous supprimez tous les références UpdateContext et Navigate à une variable de contexte, celle-ci cesse d’exister. Pour effacer une variable, définissez sa valeur sur le résultat de la fonction Blank.

Vous pouvez voir les valeurs, les définitions et les utilisations des variables avec la vue Variables sous le menu Fichier dans l’environnement de création.

Vous pouvez référencer une variable de contexte dans une formule à l’aide du nom de colonne de la variable. Par exemple, UpdateContext( { ShowLogo: true } ) crée une variable de contexte nommée ShowLogo et définit sa valeur sur true. Vous pouvez ensuite utiliser la valeur de cette variable de contexte en utilisant le nom ShowLogo dans une formule. Vous pouvez écrire ShowLogo en tant que formule de la propriété Visible d’un contrôle Image et afficher ou masquer ce contrôle en fonction de la valeur de la variable de contexte (true ou false).

Comme le montrent les exemples plus loin dans cette rubrique, les variables de contexte peuvent contenir plusieurs types d’informations, notamment :

  • une valeur unique
  • un enregistrement
  • une table
  • une référence d’objet
  • un résultat de formule

Une variable de contexte conserve sa valeur jusqu’à ce que l’application soit fermée. Si vous définissez une variable de contexte et définissez sa valeur sur un écran spécifique, cette information est conservée même si l’utilisateur bascule vers un autre écran. Une fois que l’application est fermée, la valeur de la variable de contexte est perdue et doit être recréée lorsque l’application est rechargée.

Chaque variable de contexte porte sur un écran. Si vous souhaitez définir une variable de contexte sur un écran et la modifier à partir d’un autre écran, vous devez créer une formule basée sur la fonction Navigate. Vous pouvez également utiliser une variable globale.

UpdateContext n’a aucune valeur de retour, et vous pouvez l’utiliser uniquement dans une formule de comportement.

Syntaxe

UpdateContext( UpdateRecord )

  • UpdateRecord : obligatoire. Enregistrement qui contient le nom d’au moins une colonne et une valeur pour cette colonne. Une variable de contexte est créée ou mise à jour pour chaque colonne et valeur que vous spécifiez.

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 : obligatoire. Nom d’une variable de contexte à créer ou à mettre à jour.
  • Value1 : obligatoire. Valeur à affecter à la variable de contexte.
  • ContextVariable2: Value2, ... : obligatoire. Variables de contexte supplémentaires pour créer ou mettre à jour leurs valeurs.

Exemples

Formule Description Résultat
UpdateContext( { Counter: 1 } ) Crée ou modifie la variable de contexte Counter, en lui attribuant la valeur 1. Counter a la valeur 1. Vous pouvez référencer cette variable en utilisant le nom Counter dans une formule.
UpdateContext( { Counter: 2 } ) Définit la valeur de la variable de contexte Counter de l’exemple précédent sur 2. Counter a la valeur 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Crée ou modifie les variables de contexte Name et Score, en leur attribuant respectivement les valeurs Lily et 10. Name a la valeur Lily, et Score a la valeur 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Crée ou modifie la variable de contexte Person, en définissant sa valeur sur un enregistrement. L’enregistrement contient deux colonnes nommées Name et Address. La valeur de la colonne Name est Milton et la valeur de la colonne Address est 1 Main St. Person a la valeur de l’enregistrement { Name:"Milton", Address:"1MainSt" } }.

Référencez cet enregistrement dans son ensemble avec le nom Person, ou référencez une colonne individuelle de cet enregistrement avec Person.Name ou Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Utilise la fonction Patch pour mettre à jour la variable de contexte Person en définissant la valeur de la colonne Address sur 2 Main St. Person a maintenant la valeur de l’enregistrement { Name:"Milton", Address:"2MainSt" } }.

Exemple étape par étape 1

  1. Nommez l’écran par défaut Source, ajoutez un autre écran et nommez-le Cible.

  2. Sur l’écran Source, ajoutez deux boutons et définissez leur propriété Text de sorte que le premier indique English et l’autre Spanish.

  3. Définissez la propriété OnSelect du bouton English sur l’expression suivante :
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Définissez la propriété OnSelect du bouton Spanish sur l’expression suivante :
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Sur l’écran Cible, ajoutez un libellé et définissez sa propriété Text sur cette expression :
    If(Language="English", "Hello!", "Hola!")

  6. Sur l’écran Cible, sélectionnez Formes dans l’onglet Insertion, puis sélectionnez la flèche Précédent.

  7. Définissez la propriété OnSelect de la flèche Précédent sur la formule suivante :
    Navigate(Source, ScreenTransition.Fade)

  8. Sur l’écran Source, appuyez sur F5, puis sélectionnez le bouton de l’une des deux langues.

    Sur l’écran Cible, le libellé s’affiche dans la langue qui correspond au bouton que vous avez sélectionné.

  9. Sélectionnez la flèche Précédent pour revenir à l’écran Source, puis sélectionnez le bouton de l’autre langue.

    Sur l’écran Cible, le libellé s’affiche dans la langue qui correspond au bouton que vous avez sélectionné.

  10. Appuyez sur Échap pour revenir à l’espace de travail par défaut.

Exemple étape par étape 2

  1. Ouvrez l’application canevas dans laquelle vous souhaitez utiliser cette formule.
  2. Ajoutez un nouvel écran vide en sélectionnant Nouvel écran depuis la barre de commandes.
  3. Ajoutez un bouton, puis définissez sa propriété OnSelect sur la formule suivante :
    UpdateContext( { Name: "Lily", Score: 10 } )