Função AtualizarContexto no PowerAppsUpdateContext function in PowerApps

Cria ou atualiza uma ou mais variáveis de contexto da tela atual.Creates or updates context variables of the current screen.

Visão geralOverview

Use a função AtualizarContexto para criar uma variável de contexto que armazena temporariamente uma informação, como o número de vezes que o usuário selecionou um botão ou o resultado de uma operação de dados.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.

Variáveis de contexto limitam-se a uma tela, o que significa que você não pode criar uma fórmula que se refere a uma variável de contexto em outra tela.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. Se já tiver usado outra ferramenta de programação, você poderá pensar uma variável de contexto como sendo semelhante a uma variável local.If you've used another programming tool, you can think of a context variable as similar to a local variable. Use a função Set para trabalhar com variáveis globais que estão disponíveis em seu aplicativo.Use the Set function to work with global variables that are available throughout your app.

Os PowerApps são baseados em fórmulas que se recalculam automaticamente conforme a interação do usuário com o aplicativo.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. As variáveis de contexto não oferecem esse benefício e podem fazer com que seja mais difícil criar e entender seu aplicativo.Context variables don't offer this benefit and can make your app harder to create and understand. Antes de usar uma variável de contexto, veja trabalhando com variáveis.Before you use a context variable, review working with variables.

DescriçãoDescription

Para criar ou atualizar uma variável de contexto, passe um único registro para a função AtualizarContexto.To create or update a context variable, pass a single record to the UpdateContext function. Em cada registro, especifique o nome de uma colunaque define ou corresponde ao nome da variável e o valor para o qual você deseja definir essa variável.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.

  • Se você especificar o nome de uma variável definida anteriormente, AtualizarContexto definirá o valor da variável como o valor que você especificar.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.
  • Se você especificar o nome de uma variável que ainda não existe, AtualizarContexto criará uma variável com o mesmo nome e definirá o valor da variável como o valor que você especificar.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.
  • Se você tiver definido uma variável anteriormente e não especificá-la nesta fórmula AtualizarContexto, seu valor permanecerá o mesmo.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

Variáveis de contexto são criadas implicitamente, usando a função UpdateContext ou Navegar.Context variables are implicitly created by using the UpdateContext or Navigate function. Não há nenhuma declaração explícita necessária.There is no explicit declaration required. Se você remover todas as referências UpdateContext e Navegar para uma variável de contexto, essa variável de contexto deixará de existir.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. Para limpar uma variável, defina seu valor como o resultado da função Em branco.To clear a variable set its value to the result of the Blank function.

Você pode ver os valores, definições e usos de suas variáveis com o modo de exibição Variáveis no menu Arquivo no ambiente de criação.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

Você faz referência a uma variável de contexto em uma fórmula usando o nome da coluna da variável.You reference a context variable in a formula by using the variable's column name. Por exemplo, AtualizarContexto ({MostrarLogo: true}) cria uma variável de contexto chamada MostrarLogo e define seu valor como true.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. Você pode usar o valor dessa variável de contexto usando o nome MostrarLogo em uma fórmula.You can then use the value of this context variable by using the name ShowLogo in a formula. Você pode escrever MostrarLogo como a fórmula para a propriedade Visível do controle de imagem e exibir ou ocultar tal controle com base no valor da variável de contexto, ou seja, se ele é true ou 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.

Como mostram os exemplos neste tópico, variáveis de contexto podem conter vários tipos de informações, incluindo:As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • um único valora single value
  • um registroa record
  • uma tabelaa table
  • uma referência de objetoan object reference
  • qualquer resultado de uma fórmulaany result from a formula

Uma variável de contexto mantém seu valor até o aplicativo ser fechado.A context variable holds its value until the app is closed. Se você definir uma variável de contexto e configurar seu valor em uma determinada tela, essas informações permanecerão intactas, mesmo se o usuário alternar para uma tela diferente.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. Depois que o aplicativo for fechado, o valor da variável de contexto será perdido e deverá ser recriado quando o aplicativo for carregado novamente.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

Toda variável de contexto é vinculada a uma tela.Every context variable is scoped to a screen. Se quiser definir uma variável de contexto em uma tela e modificar essa variável em outra tela, você deverá criar uma fórmula que se baseie na função 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. Ou use uma variável global.Or use a global variable.

AtualizarContexto não tem nenhum valor retornado, e você pode usá-lo somente em uma fórmula de comportamento.UpdateContext has no return value, and you can use it only within a behavior formula.

SintaxeSyntax

AtualizarContexto( AtualizarRegistro )UpdateContext( UpdateRecord )

  • AtualizarRegistro – Obrigatório.UpdateRecord – Required. Um registro que contém o nome de, pelo menos, uma coluna e um valor para essa coluna.A record that contains the name of at least one column and a value for that column. Uma variável de contexto é criada ou atualizada para cada coluna e valor que você especificar.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 – Obrigatório.ContextVariable1 - Required. O nome de uma variável de contexto para criar ou atualizar.The name of a context variable to create or update.
  • Value1 – Obrigatório.Value1 - Required. O valor a ser atribuído à variável de contexto.The value to assign to the context variable.
  • ContextVariable2: Value2, ... – Opcional.ContextVariable2: Value2, ... - Optional. Variáveis de contexto adicionais para criar ou atualizar e seus valores.Additional context variables to create or update and their values.

ExemplosExamples

FórmulaFormula DescriçãoDescription ResultadoResult
UpdateContext( { Counter: 1 } )UpdateContext( { Counter: 1 } ) Cria ou modifica a variável de contexto Counter, definindo seu valor como 1.Creates or modifies the context variable Counter, setting its value to 1. Counter tem o valor 1.Counter has the value 1. Você pode referenciar essa variável usando o nome Counter em uma fórmula.You can reference that variable by using the name Counter in a formula.
UpdateContext( { Counter: 2 } )UpdateContext( { Counter: 2 } ) Define o valor da variável de contexto Counter do exemplo anterior para 2.Sets the value of the Counter context variable from the previous example to 2. Counter tem o valor 2.Counter has the value 2.
UpdateContext( { Name: "Lily", Score: 10 } )UpdateContext( { Name: "Lily", Score: 10 } ) Cria ou modifica as variáveis de contexto Name e Score, definindo seus valores como Lily e 10, respectivamente.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Name tem o valor Lily, e Score tem o 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" } } ) Cria ou modifica a variável de contexto Person, definindo seu valor como um registro.Creates or modifies the context variable Person, setting its value to a record. O registro contém duas colunas, chamadas Name e Address.The record contains two columns, named Name and Address. O valor da coluna Name é Miltone o valor da coluna Address é 1 Main St.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Person tem o valor do registro { Name: "Milton", Address: "1 Main St" } }.Person has the value of record { Name: "Milton", Address: "1 Main St" } }.

Fazer referência a esse registro como um todo com o nome Person, ou fazer referência a uma coluna individual desse registro com Person.Name ou 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" } ) } ) Funciona com a função Patch para atualizar a variável de contexto Person, definindo o valor da coluna Address como 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 agora tem o valor de registro { Name: "Milton", Address: "2 Main St" } }.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

Exemplo passo a passoStep-by-step example

  1. Nomeie a tela padrão como Fonte, adicione outra tela e nomeie-a como Destino.Name the default screen Source, add another screen, and name it Target.
  2. Na tela Fonte, adicione dois botões e defina suas propriedades de Texto para que uma diga inglês e a outra diga espanhol.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. Defina a propriedade OnSelect do botão inglês para esta expressão:Set the OnSelect property of the English button to this expression:
    Navegar(Target, ScreenTransition.Fade, {Language:"English"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Defina a propriedade OnSelect do botão espanhol para esta expressão:Set the OnSelect property of the Spanish button to this expression:
    Navegar(Target, ScreenTransition.Fade, {Language:"Spanish"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. Na tela Destino, adicione um rótulo e defina sua propriedade de Texto para esta expressão:On the Target screen, add a label, and set its Text property to this expression:
    If(Language="English", "Hello!", "Hola!")If(Language="English", "Hello!", "Hola!")
  6. Na tela Destino, selecione Formas na aba Inserir e clique na seta Voltar.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. Definir a propriedade OnSelect da seta Voltar para esta fórmula:Set the Back arrow's OnSelect property to this formula:
    Navegar(Source, ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. Na tela Fonte, pressione F5 e selecione o botão para qualquer idioma.From the Source screen, press F5, and then select the button for either language.

    Na tela Destino, o rótulo é exibido no idioma que corresponde ao botão que você selecionou.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. Selecione a seta Voltar para retornar para a tela Fonte e, em seguida, selecione o botão do outro idioma.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    Na tela Destino, o rótulo é exibido no idioma que corresponde ao botão que você selecionou.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. Pressione Esc para retornar ao espaço de trabalho padrão.Press Esc to return to the default workspace.

Outro exemploAnother example