如何在C#中调用Salesforce服务批量删除5000条Account记录?
解决Salesforce批量删除5000+ Account记录的C#实现方案
错误原因
Salesforce的delete API接口单次请求最多允许传入200个ID,直接传入5000个ID会触发EXCEEDED_ID_LIMIT错误,必须通过分批处理完成批量删除。
实现步骤
将ID数组拆分为每批200个的子数组,循环调用delete接口处理每一批,同时可按需处理每批的删除结果。
代码示例
// 假设ids是包含5000+个Account ID的string数组 int batchSize = 200; for (int i = 0; i < ids.Length; i += batchSize) { // 截取当前批次的ID,最后一批可能不足200个 string[] batchIds = ids.Skip(i).Take(batchSize).ToArray(); // 调用Salesforce delete接口 SalesForceEnterpriseService.DeleteResult[] delResult = _service.delete(batchIds); // 可选:处理当前批次的删除结果,记录成功/失败信息 foreach (var result in delResult) { if (result.success) { // 可替换为日志记录等逻辑 Console.WriteLine($"Account {result.id} 删除成功"); } else { // 遍历错误信息并记录 foreach (var error in result.errors) { Console.WriteLine($"Account {result.id} 删除失败:{error.message}"); } } } }
注意事项
- API限额:5000条记录分25批处理,远低于Salesforce默认的每日API调用限额(通常15000次),但若有其他API操作需注意总和。
- 环境测试:生产环境操作前,建议先在沙盒环境验证分批逻辑,避免误删数据。
- 异常处理:可添加
try-catch块捕获API调用异常,防止单批失败导致整个流程中断。
内容的提问来源于stack exchange,提问作者Kristy
相关产品推荐
相关产品推荐

