Для работы метода текущему пользователю должны быть выданы права на импорт данных в приложении.
Пример создания или обновления множества элементов. Наиболее привычный способ, при котором в памяти создаётся
массив элементов и передаётся в функцию сохранения.
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();
Объект массовых действий в приложении
Type parameters
T: ItemData
P: ItemData
Hierarchy
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>
Ваш отзыв успешно отправлен!
Спасибо за обратную связь.