企業資料應用程式最重要的模式之一是限制擷取到 Power Apps 的資料大小。 如果數據有效負載很小,幾乎所有其他事情都會變得更容易。 當您直接連線到 Items 屬性中的資料來源時,Gallery 和 Table 控制項會自動為您執行此動作。 例如,直接連接到遠端資料來源時,資源庫控制項會以小增量 (例如 100 筆記錄) 分頁資料。 此預設值利用了一般使用者很少真正需要超過一百筆記錄來執行使用者任務的事實。
使用委派
保持資料承載較小的一個關鍵方法是,在資料來源到達 Power Apps 之前,依賴資料來源為您執行工作。 委派 是指 Power Fx 可以將 Power Fx 運算式轉換為 Dataverse、SQL Server、SharePoint 和 Excel 等資料來源可以自行處理的查詢運算式。 然後,Power Fx 會委派該查詢,或將執行查詢工作 (資料混搭) 的責任交給資料來源。 資料來源會產生正確的資料,並將其傳回給 Power Apps。
當資料來源直接繫結到資源庫或資料表時,資料會以分頁方式或以每次 100 筆的小型高效增量回傳給 Power Apps。 不同的資料來源具有不同的功能。 例如,Dataverse 比 Excel 具有更多篩選伺服器上資料的功能。 一個很好的例子是 CountRows 和 CountIf。 Dataverse 以有限的方式支援 CountRows。 Dataverse 會定期計算資料表的大小,並保留該值。 呼叫 CountRows 時,您會獲得該值。 如此一來,它就不需要執行完整資料表掃描,即可取得每個 CountRows 呼叫的確切數目。 但 Dataverse 也支援 CountIf 的精確計數,最多 50,000 列。 它提供這兩種不同的功能,以協助保持 Dataverse 伺服器的良好效能。 相反地,SharePoint 不支援這項函式。 因此,包含 CountRows 或 CountIf 並用於 SharePoint 的 Power Fx 運算式不會被委派。 相反地,Power Apps 會下載有限數目的資料列,500 – 2000。 Power Fx 在本機處理 500/2000 記錄並傳回結果。 如果您的資料一律小於 500/2000 記錄,則此方法可運作。 但如果它大於 500/2000 筆記錄,您可能會得到不正確的結果。
避免太多欄位
根據預設,Power Apps 會使用名為 明確資料行選取 的功能來計算指定查詢所需的實際資料行。 預設情況下,此功能對所有新應用程式都處於開啟狀態。 如要在畫布應用程式上啟用明確欄選取功能,請移至「設定>」,在「即將推出的功能>」下選擇「預覽>」,並啟用「明確欄選取」切換。
Suggestions
若要達成小型資料承載的目標,請考慮下列問題和建議:
目標是讓資源庫或資料表的預設查詢只傳回大約 100 – 200 筆記錄。 如果您使用可委派的查詢,則會自動發生此動作。 如果您要查詢 API 或其他不支援委派的來源,請使用參數來精簡結果。
- 請考慮使用自動篩選資料的資料來源型檢視。 大多數企業級應用程式都會大量使用資料來源上的檢視。
- 請考慮使用預設查閱或篩選值來設定資料範圍。
- 請考慮在顯示資料之前,先在 UI 中要求搜尋引數。
- 請考慮以下有關您的應用程式的問題:
- 預設情況下,指定螢幕上需要哪些內容?
- 最終使用者真正需要哪些資料來採取給定的業務動作?
- 使用者通常不需要在初始畫面上有數千條記錄即可完成任務。
使用資料來源的委派表,開始建置資源庫或表格的查詢。 僅選擇支援您查詢的功能。 如果您的查詢不可委派,您可以採取哪些措施來使其可委派?