ApplicationBatcher

Type parameters

Hierarchy

  • ApplicationBatcher

Methods

delete

  • Метод позволяет выполнить массовое мягкое удаление.

    Для работы метода текущему пользователю должны быть выданы права на импорт данных в приложении.

    Пример удаления элементов приложения:

    var rows = await Application.batch()
        .delete()
        .where(f => f.number.gte(10))
        .size(100)
        .all();
    

    Returns ApplicationBatchDeleteBuilder<T>

hardDelete

  • Метод позволяет безвозвратно удалить элемент приложения.

    Операция доступна только для мягко удалённого элемента (с __deletedAt !== null). При попытке удалить активный элемент метод вернёт ошибку:

    fail to hard delete items: cannot hard delete item with id «019db3d5-6e26-7128-bde8-f0bd222018ba» reason: __deletedAt === null.
    

    Если функция безвозвратного удаления выключена в вашей компании, метод вернёт ошибку: method not available.

    Пример безвозвратного удаления элементов приложения:

    const limit = 5;
    let offset = 0;
    let countDeleteItems = 0;
    do {
     const countDeleteItems = await Application.batch()
         .hardDelete()
         .where((f,c) => c.and(f.__deletedAt.neq(null), f.__name.like('End'))))
         .size(limit)
         .from(offset)
         .all();
     offset = offset + limit;
    }
    while (countDeleteItems === limit)
    

    Returns ApplicationBatchHardDeleteBuilder<T>

save

  • Метод позволяет выполнить массовое сохранение.

    Для работы метода текущему пользователю должны быть выданы права на импорт данных в приложении.

    Пример создания или обновления множества элементов. Наиболее привычный способ, при котором в памяти создаётся массив элементов и передаётся в функцию сохранения.

    var items = [];
    for (var i = 0; i < 500; i++) {
        var item = Application.create();
        items.push(item)
    }
    await Application.batch().save().items(items).all();
    

    Пример создания или обновления элементов с использованием генераторов. Основное отличие от предыдущего способа — в памяти не хранится целый массив. Элементы формируются по одному, что позволяет экономить память.

    await Application.batch().save().items((function*(){
        for (var i = 0; i < 500; i++) {
            var item = Application.create();
            yield item
        }
    })()).all();
    

    Returns ApplicationBatchSaveBuilder<T, P>

setStatus

  • Метод позволяет выполнить массовую смену статуса элементов приложения.

    Parameters

    • status: TStatus<any, any>
    • Optional comment: undefined | string

    Returns ApplicationBatchSetStatusBuilder<T>

update

  • Метод позволяет выполнить массовое обновление.

    Для работы метода текущему пользователю должны быть выданы права на импорт данных в приложении.

    Пример обновления элементов приложения:

    var rows = await Application.batch()
        .update()
        .set('number', (f, op) => 1)
        .set('number1' (f, op) => f.number1)
        .set('number2', (f, op) => op.inc(f.number, 10)
        .where(f => f.number.gte(10))
        .size(100)
        .all();
    

    Returns ApplicationBatchUpdateBuilder<T, T, P>