AsType 및 IsType 함수

적용 대상: 캔버스 앱 모델 기반 앱 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'
)

두 함수 모두 테이블에 연결된 데이터 원본의 이름을 통해 유형을 지정합니다. 수식이 작동하려면 테스트하거나 캐스팅하려는 모든 유형의 앱에 데이터 원본를 추가해야 합니다. 예를 들어, 해당 테이블에서 IsTypeAsType담당자 조회 및 레코드와 함꼐 사용하려면 사용자 테이블을 데이터 원본으로 추가해야 합니다. 앱에서 실제로 사용하는 데이터 원본만 추가할 수 있으며, 조회 시 참조할 수있는 모든 테이블을 추가할 필요는 없습니다.

레코드 참조가 공백인 경우 IsType은 FALSE를 반환하고 AsType공백을 반환합니다. 공백 레코드의 모든 필드는 공백이 됩니다.

구문

AsType( RecordReference, TableType )

  • RecordReference - 필수입니다. 레코드 참조로, 종종 여러 테이블의 레코드를 참조 할 수 있는 조회 필드입니다.
  • TableType - 필수. 레코드를 캐스트해야 하는 특정 테이블입니다.

IsType( RecordReference, TableType )

  • RecordReference - 필수입니다. 레코드 참조로, 종종 여러 테이블의 레코드를 참조 할 수 있는 조회 필드입니다.
  • TableType - 필수. 테스트할 특정 테이블입니다.

레코드 참조 및 다형성 조회의 이해에 광범위한 예제가 포함되어 있습니다.

  1. 태블릿용 빈 캔버스 앱을 만듭니다.

  2. 왼쪽 창에서 데이터>데이터 추가를 선택합니다. 그런 다음 계정연락처 테이블을 추가합니다.

    두 개의 데이터 원본이 있는 빈 앱: 계정 및 연락처.

  3. 왼쪽 창에서 +(삽입) >레이아웃>빈 세로 갤러리를 선택합니다.

    빈 세로 레이아웃의 갤러리 컨트롤 삽입.

  4. 데이터에 연결을 선택한 다음 연락처를 데이터 원본으로 선택합니다.

  5. 갤러리의 레이아웃을 제목과 부제목으로 설정합니다.

    속성 창에서 레이아웃 선택기 열기.

    레이아웃을 제목 및 부제목으로 설정.

  6. 데이터 참에서 Title1 목록을 열고 이름을 선택합니다.

    제목 값 설정.

  7. Subtitle1 레이블 컨트롤을 선택합니다.

    부제목 값 설정.

  8. Subtitle1Text 속성을 다음 수식으로 설정합니다.

    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'
    )
    

    갤러리에서 계정과 연락처가 혼합되어 표시되는 화면이 완성됨.

    갤러리의 부제목에는 다음 값이 표시됩니다.

    • '회사 이름'공백인 경우, "--".
    • "계정: " 회사 이름 필드가 계정을 참조하는 경우 계정 테이블의 계정 이름 필드입니다.
    • "연락처: " 회사 이름 필드가 연락처를 참조하는 경우 연락처 테이블의 전체 이름 필드입니다.

    추가 결과 유형을 표시하도록 수정된 샘플 데이터를 사용하므로 이 토픽의 결과와 다를 수 있습니다.