You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何限制Workday自定义报表REST API响应大小或实现分页?

Workday自定义报表API响应大小超限的解决办法

首先明确:脚本限制响应大小无法解决这个问题,因为「Maximum response size reached」是Workday服务端因返回数据量超出阈值主动抛出的错误,客户端脚本无法在服务端返回数据前限制响应体积。而分页机制是官方支持的可靠解决方案,具体实现如下:

分页参数说明

Workday自定义报表API支持通过page(页码,从1开始)和pagesize(每页数据条数,最大可设为1000,默认100)参数实现分页。

具体操作步骤

  1. 构造分页请求URL
    在原API地址基础上添加分页参数,示例:

    https://wd3-impl-services1.workday.com/ccx/service/customreport2/<Tenant_name>/<report_name>?format=json&page=1&pagesize=500
    

    替换<Tenant_name>和<report_name>为实际值,pagesize可根据需求调整(不超过1000)。

  2. 获取总数据量
    先调用一次分页请求(比如page=1&pagesize=1),从响应体中提取totalResults字段(Workday会返回总数据条数),以此计算总页数:总页数 = 向上取整(总数据条数 / 每页条数)。

  3. Postman中实现自动分页
    利用Postman的环境变量和Test脚本实现自动遍历所有页面:

    • 先设置两个环境变量:currentPage(初始值1)、pageSize(比如500)。
    • 请求URL改为引用变量:
      https://wd3-impl-services1.workday.com/ccx/service/customreport2/<Tenant_name>/<report_name>?format=json&page={{currentPage}}&pagesize={{pageSize}}
      
    • 添加Test脚本自动更新页码:
      const currentPage = parseInt(pm.environment.get("currentPage"));
      const pageSize = parseInt(pm.environment.get("pageSize"));
      const totalResults = pm.response.json().totalResults;
      const totalPages = Math.ceil(totalResults / pageSize);
      
      if (currentPage < totalPages) {
          pm.environment.set("currentPage", currentPage + 1);
      }
      
    • 使用Collection Runner运行该请求,设置循环次数为总页数,即可自动获取所有分页数据。

注意事项

  • pagesize最大值为1000,超过会被Workday自动调整为默认值。
  • 若响应体中未找到totalResults,可检查报表配置是否开启了返回统计信息,或在响应头中查找相关字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 21:17:39