PowerApps의 UpdateContext 함수UpdateContext function in PowerApps

현재 화면의 컨텍스트 변수를 만들거나 업데이트합니다.Creates or updates context variables of the current screen.

개요Overview

UpdateContext 함수를 사용하여 정보(예: 사용자가 버튼을 선택한 횟수 또는 데이터 작업의 결과)를 임시로 보관하는 컨텍스트 변수를 만듭니다.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.

컨텍스트 변수는 범위가 화면으로 한정되므로 다른 화면의 컨텍스트 변수를 참조하는 수식을 작성할 수 없습니다.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. 다른 프로그래밍 도구를 사용했다면 컨텍스트 변수를 로컬 변수와 비슷하다고 생각할 수 있습니다.If you've used another programming tool, you can think of a context variable as similar to a local variable. Set 함수를 사용하여 앱 전체에서 사용할 수 있는 전역 변수로 작업합니다.Use the Set function to work with global variables that are available throughout your app.

PowerApps는 사용자가 앱과 상호 작용할 때 자동으로 다시 계산되는 수식을 기반으로 합니다.PowerApps are based on formulas that automatically recalculate as the user interacts with an app. 컨텍스트 변수는 이러한 이점이 활용되지 않기 때문에 앱을 만들고 이해하기 어려울 수 있습니다.Context variables don't offer this benefit and can make your app harder to create and understand. 컨텍스트 변수를 사용하기 전에 변수 작업을 검토하세요.Before you use a context variable, review working with variables.

설명Description

컨텍스트 변수를 만들거나 업데이트하려면 UpdateContext 함수에 단일 레코드를 전달합니다.To create or update a context variable, pass a single record to the UpdateContext function. 각 레코드에 변수 이름을 정의하거나 일치시키는 의 이름과 해당 변수를 설정할 값을 지정합니다.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.

  • 이전에 정의한 변수의 이름을 지정하면 UpdateContext는 변수 값을 지정한 값으로 설정합니다.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.
  • 아직 존재하지 않는 변수의 이름을 지정하면 UpdateContext는 해당 이름의 변수를 만들고 해당 변수의 값을 사용자가 지정한 값으로 설정합니다.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.
  • 이전에 변수를 정의했지만 이 특정 UpdateContext 수식에 지정하지 않은 경우 해당 값은 동일하게 유지됩니다.If you've previously defined a variable but don't specify it in this particular UpdateContext formula, its value remains the same.

컨텍스트 변수는 UpdateContext 또는 Navigate 함수를 사용하여 암시적으로 생성합니다.Context variables are implicitly created by using the UpdateContext or Navigate function. 명시적 선언은 필요하지 않습니다.There is no explicit declaration required. 컨텍스트 변수에 대한 모든 UpdateContextNavigate 참조를 제거하는 경우 컨텍스트 변수가 사라집니다.If you remove all the UpdateContext and Navigate references to a context variable, then that context variable will cease to exist. 변수를 지우려면 변수의 값을 Blank 함수의 결과로 설정하십시오.To clear a variable set its value to the result of the Blank function.

변수의 값, 정의 및 용도는 제작 환경의 파일 메뉴에 있는 변수 보기를 사용하여 볼 수 있습니다.You can see your variables' values, definitions, and uses with the Variables view under the File menu in the authoring environment.

변수의 열 이름을 사용하여 수식에서 컨텍스트 변수를 참조합니다.You reference a context variable in a formula by using the variable's column name. 예를 들어 UpdateContext( { ShowLogo: true } )ShowLogo라는 컨텍스트 변수를 만들고 해당 값을 true로 설정합니다.For example, UpdateContext( { ShowLogo: true } ) creates a context variable named ShowLogo and sets its value to true. 그러면 수식에서 ShowLogo라는 이름을 사용하여 이 컨텍스트 변수 값을 사용할 수 있습니다.You can then use the value of this context variable by using the name ShowLogo in a formula. 이미지 컨트롤의 Visible 속성에 대한 수식으로 ShowLogo를 쓰고 컨텍스트 변수의 값이 true 또는 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.

이 항목의 뒷부분에 나오는 예제에서 보듯이 컨텍스트 변수는 다음을 비롯한 여러 가지 정보를 보유할 수 있습니다.As the examples later in this topic show, context variables can hold several kinds of information, including these:

  • 단일 값a single value
  • 레코드a record
  • 테이블a table
  • 개체 참조an object reference
  • 수식의 결과any result from a formula

컨텍스트 변수는 앱을 닫을 때까지 값을 유지합니다.A context variable holds its value until the app is closed. 컨텍스트 변수를 정의하고 특정 화면에서 해당 값을 설정하면 사용자가 다른 화면으로 전환하더라도 해당 정보가 그대로 유지됩니다.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. 앱이 닫히면 컨텍스트 변수의 값이 손실되고 앱이 다시 로드될 때 다시 생성되어야 합니다.Once the app is closed, the context variable's value will be lost and must be recreated when the app is loaded again.

모든 컨텍스트 변수는 범위가 화면으로 한정됩니다.Every context variable is scoped to a screen. 한 화면에서 컨텍스트 변수를 정의하고 해당 변수를 다른 화면에서 수정하려면 Navigate 함수를 기반으로 수식을 작성해야 합니다.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. 또는 전역 변수를 사용합니다.Or use a global variable.

UpdateContext에는 반환 값이 없으며 동작 수식 내에만 사용할 수 있습니다.UpdateContext has no return value, and you can use it only within a behavior formula.

구문Syntax

UpdateContext(UpdateRecord)UpdateContext( UpdateRecord )

  • UpdateRecord – 필수.UpdateRecord – Required. 하나 이상의 열 및 해당 열에 대한 값을 포함하는 레코드입니다.A record that contains the name of at least one column and a value for that column. 사용자가 지정한 각 열과 값에 대해 컨텍스트 변수를 만들거나 업데이트합니다.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 - 필수.ContextVariable1 - Required. 만들거나 업데이트할 컨텍스트 변수의 이름입니다.The name of a context variable to create or update.
  • Value1 - 필수.Value1 - Required. 컨텍스트 변수에 할당할 값입니다.The value to assign to the context variable.
  • ContextVariable2: Value2, ... - 선택 사항.ContextVariable2: Value2, ... - Optional. 만들거나 업데이트할 추가 컨텍스트 변수 및 값입니다.Additional context variables to create or update and their values.

Examples

수식Formula 설명Description 결과Result
UpdateContext( { Counter: 1 } )UpdateContext( { Counter: 1 } ) 컨텍스트 변수 Counter를 생성하거나 수정하고 값을 1로 설정합니다.Creates or modifies the context variable Counter, setting its value to 1. Counter의 값은 1입니다.Counter has the value 1. 수식에 Counter라는 이름을 사용하여 해당 변수를 참조할 수 있습니다.You can reference that variable by using the name Counter in a formula.
UpdateContext( { Counter: 2 } )UpdateContext( { Counter: 2 } ) 앞 예제의 Counter 컨텍스트 변수 값을 2로 설정합니다.Sets the value of the Counter context variable from the previous example to 2. Counter의 값은 2입니다.Counter has the value 2.
UpdateContext( { Name: "Lily", Score: 10 } )UpdateContext( { Name: "Lily", Score: 10 } ) 컨텍스트 변수 NameScore를 생성하거나 수정하고 값을 각각 Lily10으로 설정합니다.Creates or modifies the context variables Name and Score, setting their values to Lily and 10 respectively. Name에는 Lily 값이 있고 Score에는 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" } } ) 컨텍스트 변수 Person을 생성하거나 수정하고 값을 레코드로 설정합니다.Creates or modifies the context variable Person, setting its value to a record. 이 레코드는 NameAddress라는 두 개의 열을 포함합니다.The record contains two columns, named Name and Address. Name 열의 값은 Milton이고 Address 열의 값은 1 Main St입니다.The value of the Name column is Milton, and the value of the Address column is 1 Main St. Person의 값은 { Name: "Milton", Address: "1 Main St" } }라는 레코드입니다.Person has the value of record { Name: "Milton", Address: "1 Main St" } }.

이 레코드 전체를 Person이라는 이름으로 참조하거나 이 레코드의 개별 열을 Person.Name 또는 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" } ) } ) Patch 함수로 Address 열의 값을 2 Main St로 설정하여 Person 컨텍스트 변수를 업데이트합니다.Works with the Patch function to update the Person context variable by setting the value of the Address column to 2 Main St. 이제 Person의 값은 { Name: "Milton", Address: "2 Main St" } }라는 레코드입니다.Person now has the value of record { Name: "Milton", Address: "2 Main St" } }.

단계별 예제Step-by-step example

  1. 기본 화면 이름을 Source로 지정하고 다른 화면을 추가한 후 이름을 Target으로 지정합니다.Name the default screen Source, add another screen, and name it Target.
  2. Source 화면에서 단추 두 개를 추가하고 해당 Text 속성을 하나는 English로, 다른 하나는 Spanish로 설정합니다.On the Source screen, add two buttons, and set their Text properties so that one says English and the other says Spanish.
  3. English 단추의 OnSelect 속성을 이 식으로 설정합니다.Set the OnSelect property of the English button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})Navigate(Target, ScreenTransition.Fade, {Language:"English"})
  4. Spanish 단추의 OnSelect 속성을 이 식으로 설정합니다.Set the OnSelect property of the Spanish button to this expression:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})
  5. Target 화면에서 레이블을 추가하고 해당 Text 속성을 이 식으로 설정합니다.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. Target 화면의 Insert 탭에서 Shapes를 선택한 후 뒤로 화살표를 선택합니다.On the Target screen, select Shapes on the Insert tab, and then select the Back arrow.
  7. 뒤로 화살표의 OnSelect 속성을 다음 수식으로 설정합니다.Set the Back arrow's OnSelect property to this formula:
    Navigate(Source, ScreenTransition.Fade)Navigate(Source, ScreenTransition.Fade)
  8. Source 화면에서 F5 키를 누른 후 두 언어 중 하나에 대한 단추를 선택합니다.From the Source screen, press F5, and then select the button for either language.

    Target 화면에 선택한 단추에 해당하는 언어로 레이블이 나타납니다.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  9. 뒤로 화살표를 선택하여 Source 화면으로 돌아간 후 다른 언어에 대한 단추를 선택합니다.Select the Back arrow to return to the Source screen, and then select the button for the other language.

    Target 화면에 선택한 단추에 해당하는 언어로 레이블이 나타납니다.On the Target screen, the label appears in the language that corresponds to the button that you selected.

  10. 기본 작업 영역으로 돌아가려면 Esc를 누릅니다.Press Esc to return to the default workspace.

또 다른 예Another example