Microsoft Dataverse 以及改善資料來源體驗
概觀
在 2021 年 5 月,許多以前是可自選的功能,現在都成為所有新應用程式的預設行為。 本文為在介紹新功能之前,向開發應用程式的使用者提供有關如何升級其應用程式,以利用最新功能的指南。
原生 Dataverse
如果您已在 2019 年 11 月之前建立使用 Dataverse 或使用 Dynamics 365 Connector 的畫布應用程式,則可能無法享有使用 Dataverse 最新原生連線體驗的好處。
如果你在 2019 年 11 月之前建立了應用程式,且現在未使用原生 Dataverse 連線,則在即將推出的功能索引標籤的設定中,在「已停用」索引標籤中,你將找到改進資料來源體驗和 Microsoft Dataverse 檢視表選項以及 Microsoft Dataverse 的關係資料、選項和其他新功能。
我該如何升級?
請檢查功能設定,然後遵循以下指示,升級您的應用程式:
Microsoft Dataverse 的關係資料、選項組及其他新功能已關閉
檢查即將推出的功能區段底下的淘汰。 若設為關閉,請繼續遵循以下指示進行轉換的第一個步驟。
如果您在一般設定中看不到 Microsoft Dataverse 的關聯式資料、選項組及其他新功能,或者如果它已開啟,請跳過下列步驟,並從下一節繼續。
步驟 1:把使用顯示名稱功能打開:
- 將使用顯示名稱功能設為開啟:
- 等待健康狀況監視器完成分析您的應用程式。
- 儲存、關閉並重新開啟您的應用程式。
- 解決所有公式錯誤。
- 儲存、關閉並重新開啟您的應用程式。
可能的錯誤和建議:
某些新顯示的顯示名稱可能與其他表格、欄位或控制項的顯示名稱衝突。 例如,您可能有一個控制項和同名的欄位。 您可以使用唯一的值變更控制項的名稱,以進行修正。
對於任何欄位和表格顯示名稱衝突,您可能會看到一個需要表格但解析為本地範圍欄位名稱的公式。
使用帶有 @ 符號的方形括號表示全域範圍,以解析至表格;例如:[@tableName]。
步驟 2:關閉 Microsoft Dataverse 的關係資料、選項組及其他新功能,並將使用 GUID 資料類型,而不是字串功能設為開啟:
- 將 Microsoft Dataverse的關係資料、選項組及其他新功能設為開啟:
- 將使用 GUID 資料類型而不是字串功能設為開啟。
- 等待健康狀況監視器完成分析您的應用程式。
- 解決所有公式錯誤。
- 儲存、關閉並重新開啟您的應用程式。
可能的錯誤和建議:
如果您使用的是選擇欄位或硬代碼的 GUID 文字值,則在此階段可能會出現錯誤。
- 選項值:如果您將選擇欄位與選擇值的文字識別碼一起使用,請改用圓點表示法來引用選擇值。 例如,將
Patch(Accounts, OptionSet1 = “12345”)
變更為Patch(Accounts, OptionSet.Item1)
,讓Item1
能對應12345
的值。
其他資訊:詳細範例 - GUID:如果您使用的是靜態 GUID 字串,例如
015e45e1044e49f388115be07f2ee116
,請將它轉換為返回 GUID 物件的函式,如GUID(“015e45e1044e49f388115be07f2ee116”)
。 - Lookups:如果您使用 Lookup 函數取得第一級查找值,例如:
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
,請考慮使用ThisItem.PrimaryContacts
(其中 PrimaryContacts 是表格的名稱) 代替。
改進資料來源體驗與 Microsoft Dataverse 檢視表是關閉的
使用下列指令,將改善資料來源體驗和 Microsoft Dataverse 檢視表功能設為開啟:
- 移除現有的 Dataverse 資料來源連線。
- 將改善資料來源體驗與 Microsoft Dataverse 檢視表功能開啟。
- 使用新的資料來源選取體驗來新增 Dataverse 連線。
- 儲存您的應用程式。
注意
如果您的應用程式極大,新增資料來源連線可能需要一段時間。 請勿在此過程中關閉應用程式。
使用 Dynamics 365 connector 轉換畫布應用程式
若要轉換使用 Dynamics 365 connector 的應用程式,您需要移除連線並將連線新增至您的資料來源。 您可以使用下列步驟,將您的連線轉換到您的資料來源。
確認改善資料來源體驗與 Microsoft Dataverse 檢視表功能已設為開啟。
移除現有的 Dynamics 365 資料來源連線。
使用新的資料來源選取體驗,將連接至您資料來源的連線新增至 Dataverse。
注意
- 如果您連線到其他環境 (當前環境除外),請選擇表格類別,然後選擇更多 (...) 選項以變更環境。 然後您可以從不同的環境中選擇一個表格,新增至您的應用程式中。 跨租戶連線無法搭配改善的原生連接器使用。 您必須使用資料整合來存取跨租戶資料。
- 您必須符合下列其中一項需求,才能查看想要新增連線至的環境:
- 您是應用程式的負責人,或者應用程式與您共用為共同負責人。
- 您至少是下列其中一個資訊安全角色的成員:環境管理員、環境製作者或系統管理員。 如需有關環境中資訊安全角色的詳細資訊,請前往設定環境中的使用者對資源的安全性。
儲存您的應用程式。
可能的錯誤和建議:
在下列情況下,轉換時可能會出現錯誤:未使用顯示名稱、使用 GUID 字串或使用選項。
- 如果控制項名稱衝突,請將控制項的名稱變更為不同且唯一的名稱。
- 對於任何欄位和表格顯示名稱衝突,您可能會看到一個需要表格但解析為更本地範圍欄位名稱的公式。 使用帶有 @ 符號的方形括號表示全域範圍,以解析至表格;例如:[@tableName]。
- 選項值:如果您將選擇欄位與選擇值的文字識別碼一起使用,請改用圓點表示法來引用選擇值。 例如,將
Patch(Accounts, OptionSet1 = “12345”)
變更為Patch(Accounts, OptionSet.Item1)
,讓Item1
能對應12345
的值。
其他資訊:詳細範例 - GUID:如果您使用的是靜態 GUID 字串,例如
015e45e1044e49f388115be07f2ee116
,請將它轉換為返回 GUID 物件的函式,如GUID(“015e45e1044e49f388115be07f2ee116”)
。 - Lookups:如果您使用 Lookup 函數取得第一級查找值,例如:
Lookup(Contacts, ‘contactID’ = ThisItem.ContactID”)
,請考慮使用ThisItem.PrimaryContacts
(其中 PrimaryContacts 是表格的名稱) 代替。 - 如需任何多態參照,請參考下方的詳細範例區段。
詳細範例
將您的應用程式轉換為使用新的選項集和兩個選項資料類型和支援控制項可能具有挑戰性,同時升級應用程式以使用新的改進資料來源體驗和 Microsoft Dataverse 檢視功能.
多重選擇
之前使用了單獨的 _myfield
和 _myfield_label
欄位進行選擇。 現在,有一個單一的 myfield
,可同時用於不同地區設定的比較,並可取得地區設定專用標籤。
移除並新增選項資料卡片
我們建議您移除現有的資料卡片,然後重新新增它們以使用您的選擇。 例如,如果您正在使用帳戶表格和類別選項,您將看到資料卡片的 DataField 屬性設為 _accountcategorycode_label
。 在欄位清單中,您可以看到資料卡有一種字串類型:
使用新的改善資料來源體驗和 Microsoft Dataverse 檢視表功能,您就再也看不到 _accountcategorycode_label
。 它會被 accountcategorycode
取代。 您的卡片現在已標示為自訂,然後您將會看到錯誤。 取出舊資料卡片,重新新增選項。 新資料卡片具有選項感知能力。
編輯選像篩選器運算式以使用新語法
以前,如果要在篩選條件運算式中使用選項值,則需要使用值欄位。 例如:
Filter(Account,'Category Value' = "1")
您需要編輯此公式。 選擇文字識別碼不再用於該數值。 此運算式應更新為:
Filter(Account, Category= ‘Category (Accounts)’.’Preferred Customer’)
'Category(Accounts)' 是帳戶表格的目錄欄位中使用的枚舉名稱。 這是本機選項。 您可以在此處閱讀更多關於本地和全球選擇的資訊:全域選項。
編輯選項補丁陳述式以使用新語法
以下是用於選擇的早期補丁陳述式的範例:
Patch( Accounts, First(Accounts), { ‘Category Value’: 1 } ) )
您必須更新您的陳述式,才能遵循此表單:
Patch( Accounts, First(Accounts), { Category: ‘Category (Accounts)’.’Preferred Customer’ } )
選擇消歧
如果選項欄位的顯示名稱和選項名稱相同,則需要消除公式的歧義。 若要繼續使用帳戶類別代碼範例,@ 表示使用選項,而不是欄位。
Filter(Accounts, 'Category Code' = [@’Category Code’].'Preferred Customer')
兩個選項
移除並新增是/否資料卡片
移除現有的資料卡片,然後重新新增它們以使用您的是/否。 資料類型先前被視為簡單布林值(例如,不含標籤的 true/on 和 false/off):
利用新的改善資料來源體驗和 Microsoft Dataverse 檢視表功能,您的卡片現在會標示為自訂,而您會看到錯誤。 取出舊資料卡片,重新新增選項。 新增之後,您將看到預設有兩個選項的編輯控制項。
如果您喜歡布林值欄位的切換開關,可以解除鎖定資料卡片,並使用切換開關取代資料卡片中的控制項。 您也需要在切換開關上設定這些屬性。
Toggle1.Default = ThisItem.’Do not allow Bulk Emails’
Toggle1.TrueText = ‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’
Toggle1.FalseText = ‘Do not allow Bulk Emails (Accounts)’.Allow
DataCard.Value = If( Toggle1.Value,
‘Do not allow Bulk Emails (Accounts)’.’Do Not Allow’,
‘Do not allow Bulk Emails (Accounts)’.Allow )
修正兩個選項的修補程式陳列式
使用帶有兩個選項的 Patch 函式,應該如「原樣」運作。 它支援直接使用 true 和 false,和布林值類似。 唯一的差別在於您先前在標籤控制項中放了會顯示 true 和 false 的值,它現在會改為顯示成兩個選項標籤。
多態查詢
下列指導方針可協助您升級應用程式(如果它參照了多態 欄位)。 多態尋找來自同一個欄位,支援對一組受限的多個表格的引用。 與其他語言中的引用類似,記錄引用是指向特定表中特定記錄的指針。 記錄參考會攜帶表格資訊,允許它指向其他數個表格中的記錄,這與只能指向一個表格中記錄的普通查找不同。
在記錄的負責人欄位上存取、設定和篩選
例如,表格中的擁有者欄位可以引用使用者表格或團隊表中的記錄。 不同記錄中的相同查找字段可以引用不同表格中的記錄。
含篩選和修補程式的多態
記錄參照的使用方法就跟完整記錄一模一樣:
Filter( Accounts, Owner = First( Teams ) )
Patch( Accounts, First( Accounts ), { Owner: First( Users ) })
含顯示負責人名稱資源庫的多態
由於參考資料可以指向不同的表格,因此您必須具體。 您不能使用 ThisItem.Owner.Name,因為 Team 表格中的名稱欄位是 Team Name,而 User 欄位中的名稱表格是 Full Name。 您必須先執行應用程式,Power Apps 才能知道您所指的是哪種查找類型。
若要修正此問題:
- 為負責人所能做的實體類型新增資料來源;在目前的範例中,使用者與團隊。
- 使用更多功能來明確您的意圖。
您可以使用兩種新功能:
- IsType – 確認記錄參考資料是否屬於特定表格類型。
- AsType – 轉換記錄參考資料是否屬於特定表格類型。
使用這些函數,您可以編寫一個公式,根據擁有者的表格類型,顯示從兩個不同命名資料欄中取得的所有者名稱:
If( IsType( ThisItem.Owner, [@Teams]),
AsType( ThisItem.Owner, [@Teams]).'Team Name',
AsType( ThisItem.Owner, [@Users]).'Full Name' )
[@Teams]
和 [@Users]
的全域消歧運算子用於確保您引用全域表格類型。 雖然在此案例中並不需要,但還是建議您要一律分明。 一對多的關聯通常會與資源庫的記錄範圍衝突,因此這種做法可避免混淆。
存取並設置連絡人表格的公司名稱欄位 (一個客戶的資料類型)
客戶查詢欄位是另一個類似負責人的多態查詢。 每個表格只能有一個擁有者欄位。 但是一個表格可以包含零個、一個或多個客戶查找欄位。 連絡人系統表包括公司名稱欄位,這是一個客戶查找欄位。 如需詳細資料,請參閱 顯示客戶的欄位 。
存取和設置活動表格的相關欄位,例如傳真、電話、電子郵件
多態查詢並不限於帳戶和連絡人。 表格清單可透過自訂表格進行擴展。 例如,傳真表有一個多態的相關查找欄位,可以引用客戶、連絡人和其他表格。 如果您的資源庫將資料來源設定成傳真,您可以使用下列公式來顯示與相關查詢欄位有關的名稱。
If( IsBlank( ThisItem.Regarding ), "",
IsType( ThisItem.Regarding, [@Accounts] ),
"Account: " & AsType( ThisItem.Regarding, [@Accounts] ).'Account Name',
IsType( ThisItem.Regarding, [@Contacts] ),
"Contacts: " & AsType( ThisItem.Regarding, [@Contacts] ).'Full Name',
"" )
存取記錄的所有活動清單
在 Dataverse 中,Faxes、Tasks、Emails、Notes、Phone Calls、Letters 和 Chats 等表格被指定為活動。 您也可以建立專屬的自訂活動表格。
您可以顯示特定類型的活動 (例如傳真或稅款),或與表格 (如帳戶) 相關聯的所有活動。 新增計畫在畫布應用程式中顯示資料的活動表格和其他單一表格。
每次新增紀錄 (例如工作表格) 時,都會在活動表中建立一則記錄,其中包含所有活動表中共有的欄位。 閱讀活動表格,了解詳細資訊。
下列範例顯示當您選取一個帳戶時,所有與該帳戶相關的活動都會顯示:
顯示活動表格中的記錄。 但是您仍然可以使用 IsType 函式來確定他們所屬的活動類型。 同樣地,在表格類型使用 IsType 前,必須新增必要的資料來源。
透過使用此公式,您可以在資料庫中的標籤控制項上顯示記錄類型:
If( IsType( ThisItem, [@Faxes] ), "Fax",
IsType( ThisItem, [@'Phone Calls'] ), "Phone Call",
IsType( ThisItem, [@'Email Messages'] ), "Email Message",
IsType( ThisItem, [@Chats] ), "Chat",
"Unknown")
存取記錄的備註清單
當您建立表格時,可以啟用附件。 如果選取啟用附件的核取方塊,您將建立與 Notes 表格相關的關係,如 Accounts 表格的此圖表所示:
篩選
您無法依據相關欄位來讀取或篩選。 不過,您可以使用相反的「備註」一對多關係。 若要列出與帳戶表格相關聯的所有 Notes,您可以使用以下公式:
First( Accounts ).Notes
修補程式
不能使用 Patch 在表格上設置 Notes 欄位。 若要將記錄新增至表格的 Notes 表格,您可以使用關聯函數。 請先建立備註,如下列範例所示:
Relate( ThisItem.Notes, Patch( Notes, Defaults( Notes ), { Title: "A new note", isdocument:'Is Document (Notes)'.No } ) )