# Массовое изменение записей

## **Введение**

Компонент «Найти записи» в Бипиуме имеет ограничение на максимальное число возвращаемых записей. Максимальное число записей компонента - 1000. Для того, чтобы обойти это ограничение используется механизм массового изменение записей. Примеры использования:&#x20;

* В каталоге с более чем 1000 записями было добавлено новое поле. Это поле нужно заполнить фиксированным значением во всех записях. Например, в каталоге «Клиенты» проставить статус активности значением «Да».
* В каталоге нужно изменить часть записей по фильтру. Количество отфильтрованных записей больше 1000. Например, в каталоге «Клиенты» больше 1000 записей с датой последней активности более года назад. Нужно проставить статус активности значением «Нет».

Сценарий массового изменения перебирает все записи в каталоге и изменяет значение требуемых полей.

## 2. Принцип работы

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FuNUtsvCbNehExoS8jjJT%2F0.jpg?alt=media\&token=51702878-7423-483a-b8b1-72dbe687b9d1)

При обращении к внешнему запросу запускается сценарий на изменение записей в каталоге. Сценарий проходит по всем записям из каталога и меняет необходимое поле/поля, записывая нужное значение.

## **3. Реализация**

### **3.1. Настройка структуры данных**

#### Создание сценария изменения записей

В системном каталоге «Сценарии» создайте новую запись и заполните карточку, согласно скриншоту ниже. В качестве файла сценария необходимо загрузить [следующий файл](https://drive.google.com/file/d/1fEiPcSiiSp6igwBgxudOrn8MfORwsbO_/view?usp=sharing).

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F18ndMvDL9I70AA6ia5Ds%2F1.png?alt=media\&token=7c01dd99-f083-4b9a-9c89-d7d10bdcb298)

#### Создание внешнего запроса для сценария

В системном каталоге «Внешние запросы» создайте новую запись и заполните ее следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F3OEfmbid4dPYutfJbEZw%2F2.png?alt=media\&token=b4f927dd-7b58-4257-8442-d15465259e74)

В качестве сценария внешнего запроса выберите сценарий, созданный ранее.

### **3.2. Настройка сценария автоматизации**

Сценарий для массового изменения записей выглядит следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FIDu5zKfPxpNn4BwhDQ0S%2F3.png?alt=media\&token=0db97a0c-c6f6-472d-a79e-c75012162409)

Сценарий выполняет:

* Циклическую выборку из limit записей нужного каталога компонентом «Получение пачки записей». limit - число записей в одной выборке, задается в компоненте «more & limit & offset» (макс. значение limit - 1000).
* По записям выбранным компонентом «Получение пачки записей» запускается цикл. В цикле по записям из «пачки» для каждой записи изменяется значение требуемого поля компонентом «Изменение i-ой записи в пачке».
* После изменения всех записей из полученной «пачки» (с limit записей) внешний цикл по «пачкам» записей получает новую «пачку» и процесс повторяется до исчерпания всех записей в каталоге.

Подробнее о цикле в сценариях.

В сценарии необходимо отредактировать выделенные компоненты, согласно описанию внутри каждого из них. Компоненты, которые необходимо отредактировать:

* Получение пачки записей
* Изменение i-ой записи в пачке

В каждом из компонентов нужно указать каталог для изменения записей. В компоненте «Получение пачки записей» можно указать фильтры для выборки «пачки» записей.

### 3.3. Запуск сценария из внешнего запроса

Для запуска сценария во внешнем запросе используется HTTP-клиент Postman. Для запуска сценария необходимо отправить асинхронный GET запрос на адрес внешнего запроса, созданного ранее. Пример создания запроса представлен на скриншоте ниже:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FUJF9lXBDwUmbBoIyO47F%2F4.png?alt=media\&token=c5dfa471-3b50-4c02-b5b6-769426d9958c)

Вместо «your» впишите свой домен системы на Бипиуме. После отправки запроса запустится сценарий массового изменения записей в каталоге. Отслеживать статус работы сценария можно из системного каталога «Процессы».

## **4. Тестирование**

### **4.1. Настройка структуры данных**

#### **Создание целевого каталога для тестирования**

Для тестирования процесса массового изменения записи создайте в системе новый тестовый каталог и заполните его следующим образом. Поля создавать нужно в том же порядке:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FCy65jSWoxdTczmbE0JKl%2F5.png?alt=media\&token=bb274b33-417c-44ab-bc27-21da9e89b938)

* **Текстовое поле** (Текст)\
  Описание: Поле для хранения произвольного текста.\
  Настройки: Текст.
* **Число** (Число)\
  Описание: Поле для хранения произвольного числа.
* **Дата** (Дата)\
  Описание: Поле для хранения произвольной даты.
* **Статус** (Статус)\
  Описание: Поле с произвольными статусами.\
  Настройка значения: Раз, Два, Три.
* **Файл** (Файл)\
  Описание: Поле для хранения произвольного файла.

#### Создание сценария заполнения каталога

В системном каталоге «Сценарии» создайте новую запись и заполните карточку следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FClK8yDLnWpk9Bpx2cOVV%2F6.png?alt=media\&token=95429f49-3037-41ca-bf87-11724c972c5f)

В качестве файла сценария приложите [следующий файл](https://drive.google.com/file/d/1mK6jFu3Xid8dZc5U3w8BqrSajQZwDsPW/view?usp=sharing).

#### **Создание внешнего запроса для сценария заполнения каталога**

В системном каталоге «Внешние запросы» создайте новую запись и заполните ее следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FsAsrktiqQDcm6beE5sXC%2F7.png?alt=media\&token=d42baa2b-f307-4f09-b492-01e0b82d8be0)

В качестве сценария запроса выберите созданный на предыдущем шаге сценария заполнения каталога.

### **4.2. Настройка сценария заполнения каталога**

Сценарий для заполнения каталога выглядит следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FZ0GeDJvKWJF9KaCgMDwH%2F8.png?alt=media\&token=d28855b1-0487-4555-a6c7-c8e711d624fc)

Сценарий выполняет:

* Создание length тестовых записей в каталоге тестирования. По умолчанию: length=1200. Изменить количество создаваемых записей можно в переменной length компонента «‎i».&#x20;

В сценарии необходимо отредактировать выделенный компонент «Создать запись». В поле «Каталог» карточки компонента необходимо выбрать созданный ранее тестовый каталог «Массовое изменение записей».

### **4.3. Запуск сценариев**

#### **Запуск сценария заполнения каталога**

Для запуска сценария заполнения каталога через HTTP-клиент Postman отправьте следующий запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FENvE5FxNyPk8k7DLbZm7%2F9.png?alt=media\&token=52604901-da9f-48c0-a3a1-a9e5d2b3c4f7)

Вместо «your» впишите домен вашей системы на Бипиуме. Статус работы сценария можно отслеживать из системного каталога «Процессы».

В процессе работы сценария в тестовом каталоге будут постепенно создаваться 1200 тестовых записей. Результаты работы представлены ниже:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FVGYmDWnGtHSjrJ2zYZLH%2F10.png?alt=media\&token=ee353b24-2130-4b96-b6ad-62f6d024619e)

#### **Запуск сценария массового изменения записей**

Для запуска сценария массового изменения записей в каталоге через HTTP-клиент Postman отправьте следующий запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FUJF9lXBDwUmbBoIyO47F%2F4.png?alt=media\&token=c5dfa471-3b50-4c02-b5b6-769426d9958c)

Вместо «your» впишите домен своей системы на Бипиуме. Статус работы сценария можно отслеживать из системного каталога «Процессы».

### **4.4. Результат**

В результате работы сценария во все файлы каталога был добавлен файл в соответствующее поле. Результат работы представлен на скриншоте ниже:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FWleweODS6edosTQqs8Lx%2F11.png?alt=media\&token=9cf3db3a-0317-47b5-8e77-2de656cbd359)
