Разница между jsforce массовыми параметрами API - PullRequest
0 голосов
/ 06 июня 2018

Я использую jsforce для доступа к Salesforce с помощью API.У него есть два способа обновления и удаления записей.Один использует обычный массовый 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
    });

Второй способ, безусловно,кажется проще, но я не могу заставить его обновлять или удалять более 10000 записей за раз, что, по-видимому, является пределом продаж для всех * api размера пакета .Обратите внимание, что использование свойства maxFetch из jsforce, по-видимому, не имеет никакого эффекта в этом случае.

Так можно ли предположить, что интерфейс стиля запроса создает только один пакет?Документация jsforce не совсем ясна по этому вопросу.

1 Ответ

0 голосов
/ 08 июня 2018

В настоящее время метод bulk.load () в массиве API JSforce создает задание с одним пакетом, поэтому будет применяться ограничение в 10 000 на пакет.Это также справедливо при использовании интерфейса поиска и уничтожения, который внутренне использует объем.Чтобы избежать этого ограничения, вы можете создать задание с помощью bulk.createJob () и создать несколько пакетов с помощью job.createBatch (), а затем отправить записи для удаления в эти пакеты, чтобы каждая запись не превышала ограничение.

...