我自己在尝试进行 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,例如 [{"Id":"00U5I00000145XcUAI"},{"Id":"00U5I00000145XdUAI"},{"Id":"00U5I00000145XeUAI"},{"Id":"00U5I00000145XgUAI"},{"Id":"00U5I00000145XhUAI"}]。
批处理完成并且失败或成功完成后,您可以通过发送通常的请求来获取结果 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" : [ ]
} ]
缺乏关于这些操作的官方指南很可能让我感到惊讶,但这里希望有人可以对你的问题的这个迟来的答复有所帮助。