如何在SSJS中实现ContinueRequest以突破2500条数据检索限制
SSJS实现ContinueRequest拉取全量数据扩展方案
Salesforce Marketing Cloud 中SSJS的Rows.Retrieve()接口默认单次请求最多返回2500条数据,你可以通过循环调用ContinueRequest方法继承请求上下文分页拉取,即可突破单页上限拿到全量数据,修改后的完整代码如下:
<script runat="server"> Platform.Load("Core","1"); try { var DEkey = Request.GetQueryStringParameter("DEkey"); var myDE = DataExtension.Init(DEkey); var allData = []; // 存储全量检索结果 var maxPageLimit = 2500; // SSJS单次检索默认上限 var tempPage = myDE.Rows.Retrieve(); // 存入首次检索结果 for (var i = 0; i < tempPage.length; i++) { allData.push(tempPage[i]); } // 单页返回满2500条时说明存在后续数据,持续拉取 while (tempPage.length === maxPageLimit) { tempPage = Platform.Function.ContinueRequest(); for (var j = 0; j < tempPage.length; j++) { allData.push(tempPage[j]); } } Write("全量数据条数:" + allData.length); } catch (error) { Write("<br>error: " + Stringify(error)); } </script>
注意事项
ContinueRequest会自动继承上一次检索的上下文,无需手动配置分页参数、筛选条件,如果你需要带条件检索,只需要修改首次Rows.Retrieve的入参即可- SSJS默认脚本执行超时时间为30秒,如果目标数据扩展的数据量超过30万条,建议拆分筛选条件分批拉取,避免执行超时
内容的提问来源于stack exchange,提问作者Dyllan Andrews
相关产品推荐
相关产品推荐

