Función UpdateContext de PowerAppsUpdateContext function in PowerApps

Crea o actualiza variables de contexto de la pantalla actual.Creates or updates context variables of the current screen.

Información generalOverview

Use la función UpdateContext para crear una variable de contexto, que guarda temporalmente un fragmento de información, como el número de veces que el usuario ha seleccionado un botón o el resultado de una operación de datos.Use the UpdateContext function to create a context variable, which temporarily holds a piece of information, such as the number of times the user has selected a button or the result of a data operation.

El ámbito de las variables de contexto es una pantalla, lo que significa que no se puede generar una fórmula que haga referencia a una variable de contexto de otra pantalla.Context variables are scoped to a screen, which means that you can't build a formula that refers to a context variable on another screen. Si usó otra herramienta de programación, se puede pensar en una variable de contexto como en una variable local.If you've used another programming tool, you can think of a context variable as similar to a local variable. Use la función Set para trabajar con variables globales que estén disponibles en toda la aplicación.Use the Set function to work with global variables that are available throughout your app.

PowerApps se basa en fórmulas que se recalculan automáticamente a medida que el usuario interactúa con una aplicación.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. Las variables de contexto no tienen esta ventaja y pueden hacer que la aplicación sea más difícil de crear y comprender.Context variables don't offer this benefit and can make your app harder to create and understand. Antes de utilizar una variable de contexto, repase cómo trabajar con variables.Before you use a context variable, review working with variables.

DescripciónDescription

Para crear o actualizar una variable de contexto, pase un solo registro a la función UpdateContext.To create or update a context variable, pass a single record to the UpdateContext function. En cada registro, especifique el nombre de un columna, que defina o coincida con el nombre de la variable, y el valor en el que va a establece esa variable.In each record, specify the name of a column, which defines or matches the name of the variable, and the value to which you want to set that variable.

  • Si especifica el nombre de una variable que ha definido previamente, UpdateContext establece el valor de la variable en el valor que especifique.If you specify the name of a variable that you've previously defined, UpdateContext sets the value of the variable to the value that you specify.
  • Si especifica el nombre de una variable que no existe todavía, UpdateContext crea una variable con ese nombre y establece el valor de esa variable en el valor que especifique.If you specify the name of a variable that doesn't yet exist, UpdateContext creates a variable with that name and sets the value of that variable to the value that you specify.
  • Si previamente se ha definido una variable pero no se especifica en esta fórmula de UpdateContext específica, su valor sigue siendo el mismo.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

Se pueden crear implícitamente variables de contexto mediante la función UpdateContext o Navegar .Context variables are implicitly created by using the UpdateContext or Navigate function. No es necesaria ninguna declaración explícita.There is no explicit declaration required. Si quita todas las referencias de UpdateContext y Navegar a una variable de contexto, posteriormente, esa variable de contexto dejará de existir.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. Para borrar una variable, establezca su valor en el resultado de la función Blank.To clear a variable set its value to the result of the Blank function.

Puede ver los valores de las variables, las definiciones y los usos con la vista Variables del menú Archivo en el entorno de creación.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

Para hacer referencia a una variable de contexto en una fórmula, se usa el nombre de columna de la variable.You reference a context variable in a formula by using the variable's column name. Por ejemplo, UpdateContext ({ShowLogo: true}) crea una variable de contexto llamada ShowLogo y establece su valor en true.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. Después, puede usar el valor de esta variable de contexto con el nombre ShowLogo en una fórmula.You can then use the value of this context variable by using the name ShowLogo in a formula. Puede escribir ShowLogo como fórmula para la propiedad Visible de un control de imagen, y mostrar u ocultar ese control en función de si el valor de la variable de contexto es true o false.You can write ShowLogo as the formula for the Visible property of an image control and show or hide that control based on whether the value of the context variable is true or false.

Tal y como se muestra en los ejemplos más adelante en este tema, las variables de contexto pueden contener distintos tipos de información, incluidos los siguientes:As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • un valor únicoa single value
  • un registroa record
  • una tablaa table
  • una referencia de objetoan object reference
  • el resultado de una fórmulaany result from a formula

Una variable de contexto guarda su valor hasta que se cierra la aplicación.A context variable holds its value until the app is closed. Si define una variable de contexto y establece su valor en una pantalla concreta, esa información permanece intacta aunque el usuario cambie a otra pantalla.If you define a context variable and set its value on a particular screen, that information remains intact even if the user switches to a different screen. Una vez que se cierre la aplicación, el valor de la variable de contexto se perderá y deberá volver a crearlo al cargar la aplicación de nuevo.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

El ámbito de una variable de contexto se limita a una pantalla.Every context variable is scoped to a screen. Si desea definir una variable de contexto en una pantalla y modificarla desde otra pantalla, debe crear una fórmula que se basa en la función Navegar .If you want to define a context variable on one screen and modify that variable from another screen, you must build a formula that's based on the Navigate function. O bien, use una variable global.Or use a global variable.

UpdateContext no devuelve ningún valor y solo se puede usar en una fórmula de comportamiento.UpdateContext has no return value, and you can use it only within a behavior formula.

SintaxisSyntax

UpdateContext( UpdateRecord )UpdateContext( UpdateRecord )

  • UpdateRecord: requerido.UpdateRecord – Required. Registro que contiene el nombre de al menos una columna y un valor para esa columna.A record that contains the name of at least one column and a value for that column. Se crea o se actualiza una variable de contexto para cada columna y valor que especifique.A context variable is created or updated for each column and value that you specify.

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

  • ContextVariable1: requerido.ContextVariable1 - Required. Nombre de la variable de contexto que se va a crear o actualizar.The name of a context variable to create or update.
  • Value1: requerido.Value1 - Required. Valor que se asigna a la variable de contexto.The value to assign to the context variable.
  • ContextVariable2: Value2, ...: opcional.ContextVariable2: Value2, ... - Optional. Variables de contexto adicionales que se van a crear o actualizar, y sus valores.Additional context variables to create or update and their values.

EjemplosExamples

FórmulaFormula DescripciónDescription ResultadoResult
UpdateContext( { Counter: 1 } )UpdateContext( { Counter: 1 } ) Crea o modifica la variable de contexto Counter y establece su valor en 1.Creates or modifies the context variable Counter, setting its value to 1. Counter tiene el valor 1.Counter has the value 1. Puede hacer referencia a esa variable con el nombre Counter en una fórmula.You can reference that variable by using the name Counter in a formula.
UpdateContext( { Counter: 2 } )UpdateContext( { Counter: 2 } ) Establece el valor de la variable de contexto Counter del ejemplo anterior en 2.Sets the value of the Counter context variable from the previous example to 2. Counter tiene el valor 2.Counter has the value 2.
UpdateContext( { Name: "Lily", Score: 10 } )UpdateContext( { Name: "Lily", Score: 10 } ) Crea o modifica las variables de contexto Name y Score, y establece sus valores en Lily y 10, respectivamente.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Name tiene el valor Lily, y Score tiene el valor 10.Name has the value Lily, and Score has the value 10.
UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } )UpdateContext( { Person: { Name: "Milton", Address: "1 Main St" } } ) Crea o modifica la variable de contexto Person y establece su valor en un registro.Creates or modifies the context variable Person, setting its value to a record. El registro contiene dos columnas, llamadas Name y Address.The record contains two columns, named Name and Address. El valor de la columna Name es Milton, y el valor de la columna Address es 1 Main St.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Person tiene el valor del registro { Name: "Milton", Address: "1 Main St" } }.Person has the value of record { Name: "Milton", Address: "1 Main St" } }.

Haga referencia a este registro como un todo con el nombre Person, o haga referencia a una columna individual de este registro con Person.Name o Person.Address.Reference this record as a whole with the name Person, or reference an individual column of this record with Person.Name or Person.Address.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } )UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) Trabaja con la función Patch para actualizar la variable de contexto Person y establece el valor de la columna Address en 2 Main St.Works with the Patch function to update the Person context variable by setting the value of the Address column to 2 Main St. Person ahora tiene el valor del registro { Name: "Milton", Address: "2 Main St" } }.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

Ejemplo paso a pasoStep-by-step example

  1. Asigne un nombre a la pantalla predeterminada Origen, agregue otra pantalla y asígnele el nombre Destino.Name the default screen Source, add another screen, and name it Target.
  2. En la pantalla Origen, agregue dos botones y establezca sus propiedades Texto de forma que una sea Inglés y la otra Español.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. Establezca la propiedad AlSeleccionar del botón Inglés en esta expresión:Set the OnSelect property of the English button to this expression:
    Navigate(Destino, ScreenTransition.Fade, {Language:"Inglés"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Establezca la propiedad AlSeleccionar del botón Español en esta expresión:Set the OnSelect property of the Spanish button to this expression:
    Navigate(destino, ScreenTransition.Fade, {Language:"Español"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. En la pantalla Destino, agregue una etiqueta y establezca su propiedad Text en esta expresión:On the Target screen, add a label, and set its Text property to this expression:
    If(Language="Inglés", "Hello!", "Hola!")If(Language="English", "Hello!", "Hola!")
  6. En la pantalla Destino, seleccione Formas en la pestaña Insertar y seleccione la flecha Anterior.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. Establezca la propiedad AlSeleccionar de la flecha Anterior en esta fórmula:Set the Back arrow's OnSelect property to this formula:
    Navigate(Origen, ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. En la pantalla Origen, presione F5 y seleccione el botón de cualquiera de estos idiomas.From the Source screen, press F5, and then select the button for either language.

    En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha seleccionado.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. Seleccione la flecha Anterior para volver a la pantalla Origen y seleccione el botón del otro idioma.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    En la pantalla Destino, la etiqueta aparece en el idioma correspondiente a botón que ha seleccionado.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. Presione Esc para volver al área de trabajo predeterminada.Press Esc to return to the default workspace.

Otro ejemploAnother example