You need to enable JavaScript to run this app. 如何在Power Automate的SharePoint GetItems中使用ODATA的skip和top参数
优惠活动
大模型
产品
解决方案
定价
更多

如何在Power Automate的SharePoint GetItems中使用ODATA的skip和top参数

错误原因说明

  • $skip 属于OData协议的分页参数,不是SharePoint列表的自有字段,不能填写在Filter Query配置项中。该配置项仅用于对列表自带/自定义字段做过滤匹配,因此系统会抛出「skip列不存在」的报错。
  • 直接将单次返回条目上限设置为过大数值,会触发SharePoint默认的5000条列表视图阈值限制,这是SharePoint的官方规则,无法通过调整单次返回条数直接绕过。

分批拉取全量数据的实现方案

推荐使用列表自带的自增ID字段作为分页依据,ID字段为SharePoint默认加了索引的字段,用它做过滤条件不会触发视图阈值,每批拉350条的操作步骤如下:

  1. 提前初始化两个变量:
    • last_id:整数类型,初始值设为0,用来记录上一批次最后一条数据的ID
    • all_items:数组类型,初始值设为空,用来存储所有拉取到的条目
  2. 添加Do until循环,循环终止条件设置为 length(outputs('Get_items')?['body/value']) < 350,即当次拉取的条目数不足350时,说明已经拉完所有数据
  3. 在循环内部添加Get items操作,配置如下:
    • 「Top Count」项填写350,即单次最多拉350条
    • Filter Query项填写 ID gt @{variables('last_id')},代表只拉取ID大于上一批次最后ID的条目
    • 「Order By」项填写 ID asc,必须设置按ID升序排列,保证每次拉取的都是连续的递增数据
  4. 在Get items操作后添加Apply to each循环,遍历当前批次拉到的所有条目,逐个追加到all_items数组中
  5. 追加完成后更新last_id变量,值设置为当前批次最后一条条目的ID:
    outputs('Get_items')?['body/value']?[sub(length(outputs('Get_items')?['body/value']),1)]?['ID']
    
  6. Do until循环完全结束后,all_items数组就是全量的列表条目,直接转换为JSON格式即可输出使用。

轻量替代方案(仅适用列表总条数≤10万的场景)

如果不想手动编写分页逻辑,可以直接开启Get items操作的内置分页功能,系统会自动完成分批拉取:

  1. 点击Get items操作右上角的三个点,选择「设置」
  2. 打开「分页」开关,在阈值输入框中填写列表的实际总条数(最大支持10万)
  3. 保存设置后运行流即可,不需要额外配置分页逻辑。

内容的提问来源于stack exchange,提问作者Tony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 20:36:04