0

我正在尝试使用 PowerApps 从 SQL Server 中的视图中获取数据。但是,画廊没有显示超过 100 行,而我的视图有近 100000 行。我发现画廊使用延迟加载,因此一次只能加载几个项目。我需要库中的所有这些数据将其写入 csv 文件并将其存储在 Azure blob 存储中。

有谁知道如何将大量数据提取到我的画廊并写入文件?提前致谢。

4

2 回答 2

1

我不会使用 PowerApps 作为此类工作的代理。Power Automate是一个更好的选择。PowerApps 库是一个很棒的 UX 工具,但不适合显示大数据。Power Automate 有一个移动应用程序,因此您的用户仍然可以提供某种输入(选择要运行的作业等)。

如果您坚持使用 PowerApps,您可能仍需要 Power Automate 来创建 .csv 文件。

Flow 的伪代码来处理这个问题:

  • 触发器:带选项的按钮
    • 选项:SQL 存储过程/查询的用户友好关键字,例如“打印所有用户”等
  • 动作1:切换
    • 如果用户选择选项“X”,如果用户选择选项“Y”等。
  • Switch1: SQL 获取行
    • 输入查询参数
  • 动作 2:选择
    • 将 SQL Get Rows 中的响应值映射到单个键/值对
  • Action3:创建 CSV 表
    • 使用上面选择操作的输出作为输入
    • 自动标题
  • 操作 4:从 .csv 创建 Azure Blob
  • 为其他 Switch 机箱复制类似的功能

在此处输入图像描述

于 2020-05-08T04:46:47.870 回答
0

如果您一心想要将所有数据导入 PowerApps,请执行此操作。注意:您的用户不会喜欢滚动 10 万条记录。理想情况下完全省略图库,或者只是给他们一个数据预览。

OnSelect“导出”按钮或您拥有的任何东西:

Concurrent(
    ClearCollect(col1, Filter(dbo.sqlDB, And(ID >= 1, ID<=2000))),
    ClearCollect(col2, Filter(dbo.sqlDB, And(ID >=2001, ID<=4000))),
    ClearCollect(col3, Filter(dbo.sqlDB, And(ID >=4001, ID<=6000))),
    ClearCollect(col4, Filter(dbo.sqlDB, And(ID >=6001, ID<=8000)))
);
ClearCollect(colCombined, col1, col2, col3, col4)

将 Gallery.Items 属性设置为 colCombined。

还有其他方法可以获取最后一个 ID 和第一个 ID,确定迭代次数,然后一次分批循环 2k 条记录。

请参阅过去我们讨论过这样一个用例的这篇文章。

于 2020-05-08T05:06:23.613 回答