1

我正在使用jsforce使用批量 api 访问 salesforce。它有两种更新和删除记录的方式。一种是使用普通的批量 API,这意味着创建一个作业和批次:

var job = conn.bulk.createJob("Account", "delete");
var batch = job.createBatch();
var accounts = getAccountsByDate(jsforce.Date.TODAY);
batch.execute(accounts);

batch.on('response', function(rets) {
    // do things
});

另一种方法是这样的“查询”界面:

conn.sobject('Account')
    .find({ CreatedDate: jsforce.Date.TODAY })
    .destroy(function(err, rets) {
        // do things
    });

第二种方法当然看起来更容易,但我无法一次更新或删除超过 10,000 条记录,这似乎是 salesforce api对批量大小的限制。请注意,在这种情况下,使用maxFetch属性 fromjsforce似乎没有效果。

那么假设查询样式界面只创建一个批次是否安全?jsforce文档在这一点上并不清楚。

4

1 回答 1

2

目前 JSforce 批量 api 中的 bulk.load() 方法生成一个批次的作业,因此将应用每批次 10,000 个的限制。使用 find-and-destroy 接口时也是如此,该接口在内部使用 bulk.load()。为避免此限制,您可以通过 bulk.createJob() 创建一个作业并通过 job.createBatch() 创建多个批次,然后将要删除的记录分派到这些批次中,这样每个记录就不会超过限制。

于 2018-06-08T05:10:46.997 回答