Collect, Clear 및 ClearCollect 함수
컬렉션을 만들고 지우고 데이터 원본에 레코드를 추가합니다.
Collect
적용 대상: 캔버스 앱 카드 Dataverse 로우코드 플러그인 Power Platform CLI 바탕 화면 흐름
Collect 함수는 데이터 원본에 레코드를 추가합니다. 추가할 수 있는 항목은 다음과 같습니다.
- 단일 값: 값은 새 레코드의 Value 필드에 있습니다. 다른 모든 속성은 blank로 둡니다.
- 레코드: 명명된 각 속성은 새 레코드의 해당 속성에 배치됩니다. 다른 모든 속성은 공백으로 둡니다.
- 테이블: 테이블의 각 레코드는 위의 설명대로 데이터 원본의 별도 레코드로 추가됩니다. 테이블은 레코드에 중첩 테이블로 추가되지 않습니다. 이를 수행하려면 테이블을 레코드에 먼저 랩핑하십시오.
컬렉션과 함께 사용하면, 필요에 따라 추가 열이 생성됩니다. 다른 데이터 원본의 열이 데이터 원본으로 고정되며 새 열은 추가할 수 없습니다.
데이터 원본이 아직 없으면 컬렉션이 생성됩니다.
컬렉션은 전역 변수를 보관하거나 데이터 원본의 임시 복사본을 생성하는 데 사용되기도 합니다. 캔버스 앱은 사용자가 앱과 상호 작용할 때 자동으로 다시 계산되는 수식을 기반으로 합니다. 컬렉션에는 이런 이점이 활용되지 않기 때문에 컬렉션을 사용하면 앱을 만들고 이해하기가 더 어려워질 수 있습니다. 이런 방식으로 컬렉션을 사용하기 전에 변수 작업을 참조하십시오.
Patch 함수를 사용하여 데이터 원본에 레코드를 생성할 수도 있습니다.
Collect 는 수정된 데이터 원본를 테이블로 반환합니다. Collect 는 행동 수식에서만 사용할 수 있습니다.
Clear
적용 대상: Canvas 앱
Clear 함수는 컬렉션의 모든 레코드를 삭제합니다. 컬렉션의 열은 그대로 유지됩니다.
Clear는 컬렉션에서만 작동하며 다른 데이터 원본에는 작동하지 않습니다. 이런 용도에는 RemoveIf( DataSource, true )를 사용할 수 있습니다. 데이터 원본의 스토리지에서 모든 레코드를 제거하고 다른 사용자에게 영향을 줄 수 있으므로 주의해서 사용해야 합니다.
Remove 함수를 사용하면 레코드를 선택적으로 제거할 수 있습니다.
Clear 에는 반환 값이 없습니다. 동작 수식에만 사용할 수 있습니다.
ClearCollect
적용 대상: Canvas 앱 모델 기반 앱
ClearCollect 함수는 컬렉션의 모든 레코드를 삭제합니다. 그런 다음 동일한 레코드에 다른 레코드 세트를 추가합니다. ClearCollect는 단일 함수로 Clear와 Collect의 조합을 제공합니다.
ClearCollect 는 수정된 컬렉션을 테이블로 반환합니다. ClearCollect 는 동작 수식에만 사용할 수 있습니다.
위임
데이터 원본과 함께 사용할 경우 이러한 함수를 위임할 수 없습니다. 데이터 원본의 첫 번째 부분만 검색된 다음 함수가 적용됩니다. 결과는 전체 스토리를 나타내지 않을 수 있습니다. 승인 시 경고가 나타나 이러한 제한을 상기시키고 가능한 경우 위임 가능한 대체 항목으로 전환할 것을 제안할 수 있습니다. 자세한 내용은 위임 개요를 참조하십시오.
구문
수집( 데이터 소스, 항목, ... )
- DataSource – 필수. 데이터를 추가할 데이터 원본입니다. 없는 경우 새로운 컬렉션이 생성됩니다.
- 항목 - 필수. 데이터 원본에 추가할 하나 이상의 레코드 또는 테이블입니다.
지우기( 컬렉션 )
- 컬렉션 – 필수. 지울 컬렉션입니다.
ClearCollect( 컬렉션, 아이템, ... )
- 컬렉션 – 필수. 지우고 데이터를 추가할 컬렉션입니다.
- 항목 - 필수. 데이터 원본에 추가할 하나 이상의 레코드 또는 테이블입니다.
예제
데이터 원본 지우기 및 레코드 추가
이 예제에서는 IceCream이라는 컬렉션을 지우고 추가합니다. 데이터 원본은 다음 콘텐츠로 시작됩니다.
수식 | 설명 | 결과 |
---|---|---|
ClearCollect(아이스크림, { 맛: "딸기", 수량: 300 } ) | IceCream 컬렉션의 모든 데이터를 지운 다음 일정량의 Strawberry 아이스크림이 포함된 레코드를 추가합니다. | IceCream 컬렉션도 수정되었습니다. |
수집(아이스크림, { 맛: "피스타치오", 수량: 40 }, { 맛: "오렌지", 수량: 200 } ) | 일정량의 Pistachio 및 Orange 아이스크림이 포함된 두 개의 레코드를 IceCream 컬렉션에 추가합니다. | IceCream 컬렉션도 수정되었습니다. |
클리어(아이스크림) | IceCream 컬렉션에서 모든 레코드를 제거합니다. | IceCream 컬렉션도 수정되었습니다. |
컬렉션을 만드는 방법에 대한 단계별 예제는 컬렉션 생성 및 업데이트를 참조하십시오.
레코드 및 테이블
이 예제는 레코드 및 테이블 인수가 Collect 및 ClearCollect에서 처리되는지 확인합니다.
수식 | 설명 | 결과 |
---|---|---|
ClearCollect(아이스크림, { 맛: "초콜릿", 수량: 100 }, { 맛: "바닐라", 수량: 200 } ) | IceCream 컬렉션의 모든 데이터를 지운 다음 일정량의 chocolate 및 vanilla 아이스크림이 포함된 두 레코드를 추가합니다. 추가할 레코드는 함수에 대한 개별 인수로 제공됩니다. | IceCream 컬렉션도 수정되었습니다. |
ClearCollect( 아이스크림, 테이블( { 맛: "초콜릿", 수량: 100 }, { 맛: "바닐라", 수량: 200 } ) ) | 레코드가 테이블에 결합되어 단일 인수를 통해 전달된다는 점을 제외하면 이전 예제와 동일합니다. 테이블의 내용은 IceCream 컬렉션에 추가되기 전에 레코드별로 추출됩니다. | IceCream 컬렉션도 수정되었습니다. |
ClearCollect(아이스크림, { MyFavorites: Table( { Flavor: "Chocolate", Quantity: 100 }, { Flavor: "Vanilla", Quantity: 200 } ) } ) |
테이블이 레코드로 랩핑된다는 점을 제외하고는 이전 예제와 동일합니다. 테이블의 레코드는 추출되지 않고 대신 전체 테이블이 레코드의 셀로 추가됩니다. | IceCream 컬렉션도 수정되었습니다. |