基于单请求5条限制,动态生成Salesforce查询日期范围
Salesforce数据分批导出至第三方系统方案(按日期动态拆分)
需求背景
需向第三方系统发送数据,单请求最多可发送5条记录(总数据量达数亿条),数据取自Salesforce。计划通过SOQL查询,基于CreatedDate时间戳筛选日期范围获取数据,需根据每日记录数动态划分查询日期范围。
实现步骤
1. 查询每日记录数
先执行SOQL统计指定日期区间内每天的记录数量:
SELECT COUNT(Id) total, DAY_ONLY(CreatedDate) date FROM Account WHERE CreatedDate >= 2019-10-11T00:00:00Z AND CreatedDate <= 2019-12-03T23:59:59Z GROUP BY DAY_ONLY(CreatedDate) ORDER BY DAY_ONLY(CreatedDate)
2. 动态拆分日期范围
根据上述查询返回的每日记录数,按以下规则拆分日期范围:
- 从起始日期开始累加后续日期的记录数,直到累加总和≤5时,将这段日期作为一个查询区间(确定起止日期)
- 若单日记录数≥5,则该日期单独作为一个查询区间
- 剩余数据重复上述逻辑,最终生成可用于循环生成动态SOQL的日期范围数组
示例
- 输入(每日记录统计结果):
[{"total": "1","date": "2019-10-11"},{"total": "2","date": "2019-10-17"}] - 预期输出(拆分后的日期范围数组):
[{"fromCreatDate" : "2019-10-11","toCreatDate" : "2019-10-17"}]
内容的提问来源于stack exchange,提问作者joono
相关产品推荐
相关产品推荐

