AsType 및 IsType 함수
적용 대상: 캔버스 앱 모델 기반 앱 Power Pages Power Platform CLI
특정 테이블 유형(IsType)에 대한 레코드 참조를 확인하고 참조를 특정 유형(AsType)으로 처리합니다.
노트
PAC CLI pac power-fx 명령은 IsType을 지원하지 않습니다.
Description
더 포괄적인 소개와 자세한 내용은 레코드 참조 및 다형성 조회의 이해를 참조하십시오.
조회 필드는 일반적으로 특정 테이블의 레코드를 참조합니다. 테이블 유형이 잘 설정되어 있으므로 간단한 점 표기법을 사용하여 조회 필드에 액세스할 수 있습니다. 예를 들어 First( Accounts ).'Primary Contact'.'Full Name'은 계정 테이블부터 연락처 테이블의 기본 연락처 레코드까지 이동하여 전체 이름 필드를 추출합니다.
Microsoft Dataverse는 또한 이러한 예와 같이 테이블 집합의 레코드를 참조 할 수있는 다형 조회 필드를 지원합니다.
조회 필드 | 참조 |
---|---|
소유자 | 사용자 또는 팀 |
고객 | 계정 또는 연락처 |
에 관하여 | 계정, 연락처, 지식 문서 등. |
캔버스 앱 수식에서 레코드 참조를 사용하여 다형적 조회를 할 수 있습니다. 레코드 참조는 다른 테이블을 참조할 수 있으므로 수식을 작성할 때 사용할 수 있는 필드를 알 수 없습니다. Record.Field 표기법은 사용할 수 없습니다. 이러한 수식은 앱이 실행될 때 발생하는 레코드에 맞게 조정되어야 합니다.
IsType 함수는 레코드 참조가 특정 테이블 형식을 참조하는지 여부를 테스트합니다. 이 함수는 부울 TRUE 또는 FALSE를 반환합니다.
AsType 함수는 레코드 참조를 특정 테이블 형식으로 처리하며, 때로는 캐스팅을 의미합니다. 결과를 테이블의 레코드처럼 사용할 수 있고, 또 Record.Field 표기법을 사용하여 해당 레코드의 모든 필드에 액세스하는 데 사용할 수 있습니다. 참조가 특정 유형이 아닌 경우 오류가 발생합니다.
이러한 함수를 함께 사용하여 먼저 레코드의 테이블 유형을 테스트한 다음, 필드를 사용할 수 있도록 해당 유형의 레코드로 처리합니다.
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
레코드 참조의 필드에 액세스하는 경우에만 이 함수가 필요합니다. 예를 들어, IsType 또는 AsType이 없이 Filter 함수에서 레코드 참조를 사용할 수 있습니다.
Filter( Accounts, Owner = First( Users ) )
마찬가지로 레코드 참조를 Patch 함수와 함께 사용할 수 있습니다.
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Gallery 또는 Edit form 컨트롤 내부와 같이 레코드 컨텍스트에서 사용되는 경우, 테이블 유형 참조를 위해 전역 명확성 연산자를 사용해야 할 수도 있습니다. 예를 들어, 이 수식은 회사 이름이 고객인 연락처 목록을 표시하는 갤러리에 효과적입니다.
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
두 함수 모두 테이블에 연결된 데이터 원본의 이름을 통해 유형을 지정합니다. 수식이 작동하려면 테스트하거나 캐스팅하려는 모든 유형의 앱에 데이터 원본를 추가해야 합니다. 예를 들어, 해당 테이블에서 IsType 및 AsType를 담당자 조회 및 레코드와 함꼐 사용하려면 사용자 테이블을 데이터 원본으로 추가해야 합니다. 앱에서 실제로 사용하는 데이터 원본만 추가할 수 있으며, 조회 시 참조할 수있는 모든 테이블을 추가할 필요는 없습니다.
레코드 참조가 공백인 경우 IsType은 FALSE를 반환하고 AsType은 공백을 반환합니다. 공백 레코드의 모든 필드는 공백이 됩니다.
구문
AsType( RecordReference, TableType )
- RecordReference - 필수. 레코드 참조로, 종종 여러 테이블의 레코드를 참조 할 수 있는 조회 필드입니다.
- TableType - 필수. 레코드를 캐스트해야 하는 특정 테이블입니다.
IsType( 레코드참조, 테이블유형 )
- RecordReference - 필수. 레코드 참조로, 종종 여러 테이블의 레코드를 참조 할 수 있는 조회 필드입니다.
- TableType - 필수. 테스트할 특정 테이블입니다.
예
레코드 참조와 다형성 조회를 이해하세요 에는 광범위한 예가 포함되어 있습니다.
태블릿용 빈 캔버스 앱을 만듭니다.
왼쪽 창에서 데이터>데이터 추가를 선택합니다. 그런 다음 계정 및 연락처 테이블을 추가합니다.
왼쪽 창에서 +(삽입) >레이아웃>빈 세로 갤러리를 선택합니다.
데이터에 연결을 선택한 다음 연락처를 데이터 원본으로 선택합니다.
갤러리의 레이아웃을 제목과 부제목으로 설정합니다.
데이터 참에서 Title1 목록을 열고 이름을 선택합니다.
Subtitle1 레이블 컨트롤을 선택합니다.
Subtitle1의 Text 속성을 다음 수식으로 설정합니다.
If( IsBlank( ThisItem.'Company Name' ), "--", IsType( ThisItem.'Company Name', Accounts ), "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name', "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name' )
갤러리의 부제목에는 다음 값이 표시됩니다.
- '회사 이름'이 공백인 경우, "--".
- "계정: " 회사 이름 필드가 계정을 참조하는 경우 계정 테이블의 계정 이름 필드입니다.
- "연락처: " 회사 이름 필드가 연락처를 참조하는 경우 연락처 테이블의 전체 이름 필드입니다.
추가 결과 유형을 표시하도록 수정된 샘플 데이터를 사용하므로 이 토픽의 결과와 다를 수 있습니다.