本文介绍:数据库
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
欢迎关注公众号“云计算实战”,接收最新文章推送。