在 Salesforce 批量 API 中 documentation有一些示例说明如何执行插入、更新插入、更新和查询操作。但是没有关于删除操作的例子。
在批量 API 文档中它说;
Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query, queryAll, insert, update, upsert, or delete many records asynchronously by submitting batches. Salesforce processes batches in the background.
但是delete和query都缺少文档和例子。有人可以提供有关删除操作的示例吗?
最佳答案
我自己在尝试进行 API 集成以维护 Salesforce 中的事件条目时一直面临这个问题。
所有这些示例都在 json 中,但它们应该很容易分别转换为 csv 和 xml。
从事件对象中删除需要一个作业,就像所有操作一样,以及我一直在使用并发送到 <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" : [ ]
} ]
缺少关于这些很有可能执行的操作的官方指南让我感到惊讶,但我希望有人可以利用这个对您问题的迟来回复。
关于Salesforce 批量 API 删除运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56969396/