在Salesforce大容量API 文档中,有如何进行插入、插入、更新和查询操作的示例。但是关于删除操作的例子是不可用的。
在大量的API文档中,它说;
Bulk API基于REST原则,并对加载或删除大量数据集进行了优化。您可以通过提交批处理异步地使用它来查询、queryAll、插入、更新、插入或删除许多记录。Salesforce在后台处理批处理。
但是,delete和queryAll文档和示例都缺失了。有人能提供一个关于删除操作的例子吗?
发布于 2019-07-10 11:26:27
大容量API删除的语义本质上与插入或更新相同:创建作业,将操作设置为"delete"或"hardDelete",然后对其发布批量记录数据。对于删除,只在批处理中包含记录Id,而不是可更新或可插入的记录内容。
由于这个原因,批量API delete的实现通常只是缩成同一底层体系结构的不同参数。参见选择的Salesforce连接器库中的示例,如
BULKAPI2.0使用的是不同的模型,但在摄取数据时,删除类似地折叠为不同的参数。见
发布于 2020-04-08 16:00:26
我自己也一直面临着这个问题,试图通过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/的规范创建批处理,但删除批只能包含要删除的项的Ids,例如[{"Id":"00U5I00000145XcUAI"},{"Id":"00U5I00000145XdUAI"},{"Id":"00U5I00000145XeUAI"},{"Id":"00U5I00000145XgUAI"},{"Id":"00U5I00000145XhUAI"}]。
在批处理完成并失败或成功完成之后,您可以通过发送通常的请求来获取结果ids,然后从这些结果ids获得结果,从而检索结果。我没有做任何与批量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" : [ ]
} ]关于这些操作的官方指南的缺乏让我感到惊讶,但我希望有人能利用这个迟来的回答来回答你的问题。
https://stackoverflow.com/questions/56969396
复制相似问题