Power Apps의 Collect, Clear 및 ClearCollect 함수

컬렉션을 만들고 지우고 데이터 원본레코드를 추가합니다.

설명

Collect

Collect 함수는 데이터 원본에 레코드를 추가합니다. 추가할 수 있는 항목은 다음과 같습니다.

  • 단일 값: 값은 새 레코드의 Value 필드에 있습니다. 다른 모든 속성은 공백으로 둡니다.
  • 레코드: 명명된 각 속성은 새 레코드의 해당 속성에 배치됩니다. 다른 모든 속성은 공백으로 둡니다.
  • 테이블: 테이블의 각 레코드는 위의 설명대로 데이터 원본의 별도 레코드로 추가됩니다. 테이블은 레코드에 중첩 테이블로 추가되지 않습니다. 이를 수행하려면 테이블을 레코드에 먼저 랩핑하십시오.

컬렉션과 함께 사용하면, 필요에 따라 추가 이 생성됩니다. 다른 데이터 원본의 열이 데이터 원본으로 고정되며 새 열은 추가할 수 없습니다.

데이터 원본이 아직 없으면 컬렉션이 생성됩니다.

컬렉션은 전역 변수를 보관하거나 데이터 원본의 임시 복사본을 생성하는 데 사용되기도 합니다. 캔버스 앱은 사용자가 앱과 상호 작용할 때 자동으로 다시 계산되는 수식을 기반으로 합니다. 컬렉션에는 이런 이점이 활용되지 않기 때문에 컬렉션을 사용하면 앱을 만들고 이해하기가 더 어려워질 수 있습니다. 이런 방식으로 컬렉션을 사용하기 전에 변수 작업을 참조하십시오.

Patch 함수를 사용하여 데이터 원본에 레코드를 생성할 수도 있습니다.

Collect는 수정된 데이터 원본을 테이블로 반환합니다. Collect동작 수식에만 사용할 수 있습니다.

Clear

Clear 함수는 컬렉션의 모든 레코드를 삭제합니다. 컬렉션의 열은 그대로 유지됩니다.

Clear는 컬렉션에서만 작동하며 다른 데이터 원본에는 작동하지 않습니다. 이런 용도에는 RemoveIf( DataSource, true ) 를 사용할 수 있습니다. 데이터 원본의 스토리지에서 모든 레코드를 제거하고 다른 사용자에게 영향을 줄 수 있으므로 주의해서 사용해야 합니다.

Remove 함수를 사용하면 레코드를 선택적으로 제거할 수 있습니다.

Clear는 반환 값이 없습니다. 동작 수식에만 사용할 수 있습니다.

ClearCollect

ClearCollect 함수는 컬렉션의 모든 레코드를 삭제합니다. 그런 다음 동일한 레코드에 다른 레코드 세트를 추가합니다. ClearCollect는 단일 함수로 ClearCollect의 조합을 제공합니다.

ClearCollect는 수정된 컬렉션을 테이블로 반환합니다. ClearCollect는 동작 수식에만 사용할 수 있습니다.

위임

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

구문

Collect( DataSource, Item, ... )

  • DataSource – 필수 항목입니다. 데이터를 추가할 데이터 원본입니다. 없는 경우 새로운 컬렉션이 생성됩니다.
  • Item(s) - 필수 항목입니다. 데이터 원본에 추가할 하나 이상의 레코드 또는 테이블입니다.

Clear( Collection )

  • Collection – 필수 항목입니다. 지울 컬렉션입니다.

ClearCollect( Collection, Item, ... )

  • Collection – 필수 항목입니다. 지우고 데이터를 추가할 컬렉션입니다.
  • Item(s) - 필수 항목입니다. 데이터 원본에 추가할 하나 이상의 레코드 또는 테이블입니다.

예제

데이터 원본 지우기 및 레코드 추가

이 예제에서는 IceCream이라는 컬렉션을 지우고 추가합니다. 데이터 원본은 다음 콘텐츠로 시작됩니다.

샘플 데이터 원본

수식 설명 결과
ClearCollect( IceCream, { Flavor: "Strawberry", Quantity: 300 } ) IceCream 컬렉션의 모든 데이터를 지운 다음 일정량의 Strawberry 아이스크림이 포함된 레코드를 추가합니다. 하나의 레코드가 있는 테이블

IceCream 컬렉션도 수정되었습니다.
Collect( IceCream, { Flavor: "Pistachio", Quantity: 40 }, { Flavor: "Orange", Quantity: 200 } ) 일정량의 Pistachio 및 Orange 아이스크림이 포함된 두 개의 레코드를 IceCream 컬렉션에 추가합니다. 두 레코드가 있는 테이블

IceCream 컬렉션도 수정되었습니다.
Clear( IceCream ) IceCream 컬렉션에서 모든 레코드를 제거합니다. Empty table

IceCream 컬렉션도 수정되었습니다.

컬렉션을 만드는 방법에 대한 단계별 예제는 컬렉션 생성 및 업데이트를 참조하십시오.

레코드 및 테이블

이 예제는 레코드 및 테이블 인수가 CollectClearCollect에서 처리되는지 확인합니다.

수식 설명 결과
ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) IceCream 컬렉션의 모든 데이터를 지운 다음 일정량의 chocolate 및 vanilla 아이스크림이 포함된 두 레코드를 추가합니다. 추가할 레코드는 함수에 대한 개별 인수로 제공됩니다. 컬렉션에 Chocolate 및 Vanilla 레코드 추가

IceCream 컬렉션도 수정되었습니다.
ClearCollect( IceCream, Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) ) 레코드가 테이블에 결합되어 단일 인수를 통해 전달된다는 점을 제외하면 이전 예제와 동일합니다. 테이블의 내용은 IceCream 컬렉션에 추가되기 전에 레코드별로 추출됩니다. 컬렉션에 Chocolate 및 Vanilla 레코드 추가

IceCream 컬렉션도 수정되었습니다.
ClearCollect( IceCream,
{ MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } )
테이블이 레코드로 랩핑된다는 점을 제외하고는 이전 예제와 동일합니다. 테이블의 레코드는 추출되지 않고 대신 전체 테이블이 레코드의 셀로 추가됩니다. 컬렉션에 Chocolate 및 Vanilla 레코드 추가

IceCream 컬렉션도 수정되었습니다.