Salesforce Flow如何从第10条记录开始收集实现分页?
Salesforce Flow + Einstein Bot 实现Case记录分页展示
核心逻辑
通过会话级偏移量变量控制SOQL查询的起始位置,结合LIMIT 10和OFFSET子句实现分页,每次查询返回10条记录,完成后更新偏移量。
具体实现步骤
1. 在Einstein Bot中创建会话变量
创建一个数值型会话变量currentOffset,初始值设为0,用于记录当前查询的起始位置(会话级变量会在整个对话过程中保留值)。2. 配置Flow的Get Records元素
在返回Case记录的Flow中,修改Get Records的查询逻辑:- 如果是使用SOQL模式,直接编写带分页的查询语句:
SELECT Id, CaseNumber, Subject, Status FROM Case WHERE [你的过滤条件] ORDER BY CreatedDate DESC LIMIT 10 OFFSET {!$Flow.CurrentVariable.currentOffset} - 如果是使用可视化配置,先在Flow中定义一个输入变量(比如
inputOffset)接收Bot传来的偏移量,然后在Get Records的「高级」选项中设置「记录数量」为10,再在「SOQL查询附加条件」中添加OFFSET {!inputOffset}。
- 如果是使用SOQL模式,直接编写带分页的查询语句:
3. Bot与Flow的参数传递
- Bot调用Flow时,将
currentOffset作为输入参数传入Flow; - Flow返回查询到的Case集合后,Bot将
currentOffset的值累加10,为下一次查询准备起始位置。
- Bot调用Flow时,将
4. 处理分页边界
在Bot中判断Flow返回的Case集合长度:- 如果集合长度小于10,说明已加载完所有记录,隐藏「下一页」按钮或提示用户「已显示所有记录」;
- 如果集合长度等于10,保留「下一页」按钮,允许用户触发下一轮查询。
注意事项
- OFFSET的最大值为2000,若需处理超过2000条Case记录,建议结合
WHERE条件(比如按创建时间分段)规避此限制; - 务必给Case查询添加明确的
ORDER BY子句,避免分页返回的记录顺序混乱。
内容的提问来源于stack exchange,提问作者juan ventura rivas
相关产品推荐
相关产品推荐

