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'
)
只有在您存取記錄參考欄位時才需要這些函數。 例如您可以在 Filter 函數中使用不含 IsType 或 AsType 的記錄參考:
Filter( Accounts, Owner = First( Users ) )
同樣地,您可以使用含有 Patch 函數的記錄參考:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
如果是在記錄內容中使用,例如在Gallery或Edit form控制項中,您可能需要使用全域去除混淆運算子來參考資料表類型。 例如此公式對顯示 Company Name 是 Customer 查閱的連絡人清單資源庫有效:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
對於這兩個函數,您可以透過連線至該資料表的資料來源名稱來指定類型。 若要讓公式運作,您也必須將資料來源新增至要測試或強制轉換的任何類型應用程式。 例如,如果您想將 IsType 和 AsType 與 Owner 查詢和該資料表中的記錄一起使用,則必須新增使用者資料表做為資料來源。 您只能新增您在應用程式中實際使用的資料來源;您不需要新增查詢所參考的所有表格。
如果記錄參考為 空白,ISTYPE 會傳回 FALSE,而 AsType 會返回 空白。 空白 記錄的所有欄位將為 空白。
語法
AsType( 記錄引用, TableType )
- RecordReference - 必需。 記錄參考通常是查詢欄位,可參考任何多資料表中的記錄。
- TableType - 必需。 記錄應轉換到的特定資料表。
IsType( 記錄引用, TableType )
- RecordReference - 必需。 記錄參考通常是查詢欄位,可參考任何多資料表中的記錄。
- TableType - 必需。 要測試的特定資料表。
範例
了解記錄引用和多態查找 包含大量範例。
為平板電腦建立空白的畫布應用程式。
在左窗格中,選取資料>新增資料。 然後新增帳戶和連絡人資料表。
在左窗格中,選取 + (插入) > 版面配置 > 空白垂直資源庫。
選取連接至資料,然後選取連絡人做為資料來源。
將資源庫的版面配置設定為 標題和副標題。
在 Data 窗格中,開啟 Title1 清單,然後選取 Full Name。
選取 Subtitle1 label 控制項。
將 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' )
資源庫中的字幕顯示這些值:
- "--" 如果 'Company Name' 為 空白。
- 如果公司名稱欄位參考帳戶,則為「帳戶:」,然後是帳戶資料表中的帳戶名稱欄位。
- 如果公司名稱欄位參考連絡人,則為「連絡人:」,然後是連絡人資料表中的全名欄位。
您的結果可能與本主題的不同,因為它使用已修改顯示其他結果類型的範例資料。