【发布时间】:2020-08-01 08:58:09
【问题描述】:
我正在尝试使用所有文档的文档 ID 从 sharepoint rest API 导入数据。我的目标是从最小的文档 id 开始,直到没有更多文档为止。 我设计了一个自定义函数,我通过传递从 0 开始的文档 ID 来调用它。这个函数返回一个包含 500 个文档的表,这些文档的文档 ID 大于我传递的文档 ID。
#"Output" =Table.AddColumn(Termset,"c", each GetList( try List.Max(Output[c.DocId]) otherwise LastDocID))
所以我的数据在输出表中更新。我的问题是它一次又一次地返回相同的 500 条记录。这可能是因为 List.Max(Output[c.DocId] 的值没有改变(我希望这个值是从 GetList 函数返回的最后一个文档 id)。我在这里尝试做一些类似于 do while循环。
do{
Output=GetList(LastDocID)
LastDocId=List.Max(Output[DocId])
}while(there_are_no_more_docs)
Power Query 中有什么方法可以动态更改我传递给 GetList 函数的 LastDocId 的值。我在下面尝试的方法似乎不起作用,因为它无法在每次函数调用后读取输出表的内容。 注意:我使用术语集作为页面来检查正在阅读的文档总数。它是一个列表,其值从 0 开始,递增 500,直到小于 Sharepoint 中的文档总数。
如果有人可以在这里帮助我,我将不胜感激。
【问题讨论】:
-
Power Query 是一种函数式语言,没有循环。只需阅读所有 id 或者在您的情况下创建它们,对它们进行排序,然后使用 Table.AddColumn(#"Changed Type", "GetList", each GetList([DocId]))等函数添加一列
标签: powerbi powerquery powerbi-desktop m powerbi-datasource