在Salesforce批量API documentation中,有一些有关如何执行插入,向上插入,更新和查询操作的示例。但是有关删除操作的示例不可用。
在批量API文档中说;
批量API基于REST原理,并针对加载或删除大量数据进行了优化。您可以使用它通过提交批处理来异步地查询,queryAll,插入,更新,upsert或删除许多记录。 Salesforce在后台处理批次。
但是删除和查询缺少所有文档和示例。有人可以提供有关删除操作的示例吗?
答案 0 :(得分:1)
批量API删除的语义与插入或更新的语义基本相同:您创建一个作业,并将其操作设置为"delete"
或"hardDelete"
,然后针对该作业发布一批记录数据。对于删除,您仅在批次中包括记录ID,而不是可更新或可插入的记录内容。
由于这个原因,批量API删除的实现通常只会折叠到同一基础体系结构的不同参数。查看您选择的Salesforce连接器库中的示例,例如
批量API 2.0使用不同的模型,但是在摄取数据时,删除操作类似地折叠为不同的参数。参见
中的实现答案 1 :(得分:1)
我自己在尝试进行API集成以维护Salesforce中的事件条目时就遇到了这个问题。
所有这些示例都在json中,但是应该可以轻松地分别转换为csv和xml。
与所有操作一样,从Event对象中删除需要一个作业,并且我一直在使用并发送到<your salesforce site>/services/async/48.0/job/
的示例作业请求如下所示:
{
"operation": "delete",
"object": "Event",
"concurrencyMode": "Parallel",
"contentType": "JSON"
}
然后,服务器根据以下内容进行答复(为简洁起见,省略了某些项目)
{
"apexProcessingTime": 0,
"apiActiveProcessingTime": 0,
"apiVersion": 48.0,
"assignmentRuleId": null,
"concurrencyMode": "Parallel",
"contentType": "JSON",
...
"numberRetries": 0,
"object": "Event",
"operation": "delete",
"state": "Open",
"systemModstamp": "2020-04-08T15:13:42.000+0000",
"totalProcessingTime": 0
}
然后,您按照<your salesforce>/services/async/48.0/job/<jobId>/batch/
的规范创建批次,但删除批次只能包含要删除的项目(例如[{"Id":"00U5I00000145XcUAI"},{"Id":"00U5I00000145XdUAI"},{"Id":"00U5I00000145XeUAI"},{"Id":"00U5I00000145XgUAI"},{"Id":"00U5I00000145XhUAI"}]
)的ID。
批处理完成且失败或成功完成后,您可以通过发送通常的请求来获取结果ID,然后从这些结果ID中获取结果,以检索结果。我对Bulk API的查询操作没有做任何其他事情。
在我的情况下,服务器回应
[ {
"success" : true,
"created" : false,
"id" : "00U5I00000145XcUAI",
"errors" : [ ]
}, {
"success" : true,
"created" : false,
"id" : "00U5I00000145XdUAI",
"errors" : [ ]
}, {
"success" : true,
"created" : false,
"id" : "00U5I00000145XeUAI",
"errors" : [ ]
}, {
"success" : true,
"created" : false,
"id" : "00U5I00000145XgUAI",
"errors" : [ ]
}, {
"success" : true,
"created" : false,
"id" : "00U5I00000145XhUAI",
"errors" : [ ]
} ]
缺少关于这些操作的官方指南,这很可能使我感到惊讶,但是,希望有人能从这份对您问题的最新答复中获得一些利用。