本文介紹:數據庫
Power Apps 中的委派函數和非可委派函數。canvas
現象:服務器
在Power Apps中顯示某些數據源時,若是數據量超過 500,則可能遇到現實不全的狀況,實際上大部分是因爲 委派函數 和 非可委派函數 使用不合適致使的。微信
所謂委派函數,是指實際的數據查詢是由數據源完成的,好比 power apps 調用 filter 函數 查詢了 SQL數據庫或者 Share Point,實際的查詢是在數據源側也就是SQL或Share Point 執行的。這時候的返回值能夠是超過500條數據的。app
爲何提到500這個數字,是由於Power Apps畫布應用的一個默認配置:函數
打開某個Power Apps的編輯模式,文件菜單-設置-數據行限制,該值默認是500,最大能夠調整到2000。工具
注意,該值的配置是針對非可委派函數的,好比下方的函數,均爲非可委派函數:post
全部其餘函數都不支持委派,包括如下重要函數:性能
使用這些函數從SQL或Share Point List查詢數據,則會受 500 這個值的限制。測試
官網中對此限制的描述以下:
顯然,使用此工具時必須當心,由於這可能會讓用戶感到困惑。 例如,假設有一個 Filter 函數,其選擇公式不能委派,須要對有一百萬條記錄的數據源應用該函數。 因爲本地進行篩選,所以僅掃描了前 500 條記錄。 若是所需記錄是第 501 或第 500,001 個記錄,則 Filter 不會考慮或返回該記錄。
即數據庫中明明有幾千條數據,但使用了上述非可委派函數,致使數據只查出了 500條,致使業務邏輯混亂。
這個值能夠改爲最大2000,但官網也給出了說明:
在某些狀況下,您會發現 2,000(或者 1,000 或 1,500)便可知足方案的需求。 能夠謹慎增大此數字以適應您的方案。 增大此數字,應用的性能可能會下降,特別是對於具備大量列的寬表。 儘管如此,還是委派越多越好。
即雖然能夠改爲2000,但也要悠着點,改太大可能形成性能問題。
可委派函數則不受上述影響:
Filter、Search 和 LookUp 能夠委派,不受500的限制。
針對以上描述,咱們作了測試,在Share Point中導入了一個excel,內容以下:
RT20170001-RT20172210,共計2210行數據。
在Power Apps中使用Share point 鏈接建立畫布應用:
設置 Gallery1 控件的:
Items =Filter([@'test-excel'], StartsWith(Title, TextSearchBox1.Text))
因爲Filter是 可委派函數,因此以下圖是能夠顯示超過 2000條數據的。
緊接着設置一個按鈕,而後設置一個 gallery 2,按鈕的onselect 設置爲:
OnSelect=ClearCollect(Collect01,Filter([@'test-excel'], StartsWith(Title, TextSearchBox1.Text)));
使用ClearCollect 非可委派函數,故而Collect01中的數據其實是受到 默認值 500的限制的,本例子中咱們已經講該值改成2000。
Gallery2 的 ITems 設置爲
Items=Collect01
運行程序,點擊按鈕,查看 Gallery2的數據:
因爲ClearCollect是 非可委派函數,則最多顯示了 2000條數據。
針對這一現象,官網給出:
官網中明確規定:處理大型數據集須要使用數據源和可以委派的公式, 若要讓應用始終運行良好,同時要確保用戶可以訪問所需的所有信息,這是惟一的方式。 請注意,標識不可能委派的位置的委派警告。 若是處理的是小型數據集(不到 500 條記錄),則可以使用任何數據源和公式,由於當不能委派公式時,應用能夠在本地處理數據 。
另外當 Share Point List中數據超過 5000,則Power Apps還會報錯:
請求的操做無效,服務器響應 失敗,已禁止嘗試的操做,由於它超過了列表視圖閾值。
需修改Share Point List 列表體驗 爲 新體驗 以支持超過5000行的share point list ,步驟以下:
點擊可查閱本站文章目錄 《文章分類目錄》
本站全部內容僅表明我的觀點,如與官文檔衝突,請以官方文檔爲準。
可在本頁面下方留言或經過下方聯繫方式聯繫我:
微信:wxyusz;郵箱:shuzhen.yu@foxmail.com
歡迎關注公衆號「雲計算實戰」,接收最新文章推送。