Power Apps의 Update 및 UpdateIf 함수

데이터 원본레코드를 업데이트합니다.

설명

Update 함수

Update 함수를 사용하여 데이터 원본의 전체 레코드를 교체합니다. 반대로 UpdateIfPatch 함수는 다른 값은 그대로 두면서 레코드에서 하나 이상의 값을 수정합니다.

컬렉션의 경우 전체 레코드가 일치해야 합니다. 컬렉션은 중복 레코드를 허용하므로 여러 레코드가 일치할 수 있습니다. All 인수를 사용하여 레코드의 모든 복사본을 업데이트할 수 있거나 레코드 중 복사본 하나만 업데이트할 수 있습니다.

데이터 원본에서 열의 값이 자동으로 생성되는 경우 해당 의 값을 재확인해야 합니다.

UpdateIf 함수

UpdateIf 함수를 사용하여 하나 이상의 레코드에서 하나 이상의 조건에 일치하는 하나 이상의 값을 수정합니다. 조건은 결과가 true 또는 false 가 되는 수식이 될 수 있고 이름으로 데이터 원본의 열을 참조할 수 있습니다. 함수는 각 레코드에 대한 조건을 계산하고 결과가 true 인 레코드를 수정합니다.

수정을 지정하려면 새 속성 값을 포함하는 변경 레코드를 사용하십시오. 중괄호를 사용하여 이 변경 레코드 인라인을 제공하는 경우 속성 수식은 수정되는 레코드의 속성을 참조할 수 있습니다. 이 동작을 사용하여 수식에 따라 레코드를 수정할 수 있습니다.

UpdateIf 와 유사하게 Patch 함수를 사용하여 다른 열에 영향을 주지 않으면서 레코드의 특정 열을 변경할 수 있습니다.

UpdateUpdateIf 는 모두 수정된 데이터 원본을 테이블로 반환합니다. 두 함수 모두 동작 수식에서 사용해야 합니다.

위임

데이터 원본과 함께 사용할 경우 이러한 함수를 위임할 수 없습니다. 데이터 원본의 첫 번째 부분만 검색된 다음 함수가 적용됩니다. 결과는 전체 스토리를 나타내지 않을 수 있습니다. 승인 시 경고가 나타나 이러한 제한을 상기시키고 가능한 경우 위임 가능한 대체 항목으로 전환할 것을 제안할 수 있습니다. 자세한 내용은 위임 개요를 참조하십시오.

구문

Update( DataSource, OldRecord, NewRecord [, All ] )

  • DataSource – 필수 항목입니다. 교체할 레코드가 포함된 데이터 원본입니다.
  • OldRecord – 필수 항목입니다. 교체할 레코드입니다.
  • NewRecord – 필수 항목입니다. 대체 레코드입니다. 변경 레코드가 아닙니다. 전체 레코드가 변경되고, 누락된 속성에 blank 가 포함됩니다.
  • All – 선택 항목입니다. 컬렉션에서 동일한 레코드가 두 번 이상 나타날 수 있습니다. All 인수를 지정하여 레코드의 모든 복사본을 업데이트합니다.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – 필수 항목입니다. 레코드 또는 제거할 레코드가 포함된 데이터 원본입니다.
  • Condition(s) – 필수 항목입니다. 레코드 또는 수정할 레코드에 대해 true 로 평가되는 수식입니다. 수식에서 DataSource 의 열 이름을 사용할 수 있습니다.
  • ChangeRecord(s) – 필수 항목입니다. 각 해당 조건에서 조건을 충족하는 DataSource 의 레코드에 적용할 새 속성 값의 변경 레코드입니다. 중괄호를 사용하여 레코드 인라인을 제공하는 경우 기존 레코드의 속성 값을 속성 수식에 사용할 수 있습니다.

예제

이러한 예제에서는 다음 테이블의 데이터로 시작되며 이름이 IceCream 인 데이터 원본의 레코드를 교체 또는 수정합니다.

수식 설명 결과
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
데이터 원본에서 레코드를 교체합니다.

IceCream 데이터 원본이 수정되었습니다.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) Quantity175 보다 큰 레코드를 수정합니다. Quantity 필드는 10씩 증가하고 다른 필드는 수정되지 않습니다.

IceCream 데이터 원본이 수정되었습니다.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
데이터 원본에서 레코드를 교체합니다. Quantity 속성이 대체 레코드에 제공되지 않아 해당 속성이 결과에서 blank 로 나타납니다.

IceCream 데이터 원본이 수정되었습니다.
UpdateIf( IceCream, true, { Quantity: 0 } ) 데이터 원본의 모든 레코드에 대한 Quantity 속성의 값을 0으로 설정합니다.

IceCream 데이터 원본이 수정되었습니다.

단계별

  1. Inventory 라는 컬렉션을 가져오거나 만들고, 갤러리에 데이터 표시의 설명에 따라 갤러리에 표시합니다.

  2. 갤러리의 이름을 ProductGallery 로 지정합니다.

  3. UnitsSold 라는 슬라이더를 추가하고, 해당 Max 속성을 다음 식으로 설정합니다.
    ProductGallery.Selected.UnitsInStock

  4. 단추를 추가하고 OnSelect 속성을 이 수식으로 설정합니다.
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. F5 키를 눌러 갤러리에서 제품을 선택하고, 슬라이더로 값을 지정한 다음 단추를 선택합니다.

    지정한 제품의 재고에서 단위 수가 지정한 크기로 감소합니다.