# Перенос данных между системами Бипиума

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FPKeC1e1ax1ejRVsITWNV%2F0.jpg?alt=media\&token=c34b212c-5b84-4142-84ac-5e9f6cdc328c)

Процесс переноса системы представляет из себя комбинацию из нескольких внешних запросов, запускающих сценарии по переносу архитектуры и данных между системами. Обращение к внешним запросам должно происходить строго последовательно по следующей схеме: перенос секций -> перенос каталогов в секциях -> перенос полей каталогов -> перенос записей без заполненных связанных полей -> заполнение перенесенных записей связанными полями. Каждый из внешних запросов в вышеописанной схеме запускает сценарий, который обращается в экспортируемую систему Бипиума и переносит в импортируемую систему соответствующие данные. Каждый из сценариев переноса обращается к каталогу «Сопоставление ID», находящемуся в импортируемой системе, для записи или чтения сопоставлений между каталогами экспорта и импорта.

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

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

#### 2.1.1. Настройка каталога «Сопоставление ID»

В импортируемой системе создайте каталог «Сопоставление ID». Данный каталог необходим для сопоставления идентификатора сущностей экспортируемой системы с аналогичными сущностями в импортируемой системе. Обратите внимание, что все поля должны создаваться в том же порядке, в каком они созданы на скриншоте ниже, это необходимо для корректного обращения к полям каталога из сценариев. После переноса всех необходимых данных, данный каталог можно удалить из системы. При создании каталога нужно добавить и настроить поля следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FJAnhWaxIYEG4ZPfRmgQH%2F2.png?alt=media\&token=062fabed-059e-4fc5-b120-c31d6c96bb00)

* **Статус** (Статус)\
  Описание: Конкретизирует перенесенную сущность.
* **ID секции (ориг)** (Число)\
  Описание: Хранит ID секции в экспортируемой системе.\
  Настройки: Задайте видимость при значениях статуса «Секция» и «Каталог».
* **ID секции (конеч)** (Число)\
  Описание: Хранит ID перенесенной секции в импортируемой системе.\
  Настройки: Задайте видимость при значениях статуса «Секция» и «Каталог».
* **ID каталога (ориг)** (Число)\
  Описание: Хранит ID каталога в экспортируемой системе.\
  Настройки: Задайте видимость при значениях статуса «Каталог», «Поле», «Запись».
* **ID каталога (конеч)** (Число)\
  Описание: Хранит ID перенесенного каталога в импортируемой системе.\
  Настройки: Задайте видимость при значениях статуса «Каталог», «Поле», «Запись».
* **ID поля (ориг)** (Число)\
  Описание: Хранит ID поля каталога в экспортируемой системе.\
  Настройки: Задайте видимость при значении статуса «Поле».
* **ID поля (конеч)** (Число)\
  Описание: Хранит ID перенесенного поля в импортируемой системе.\
  Настройки: Задайте видимость при значении статуса «Поле».

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F86xqwACDWeiCKFGvyUQt%2F3.png?alt=media\&token=09ac50ed-210e-459e-9bb0-88bec58a895a)

* **ID записи (ориг)** (Число)\
  Описание: Хранит ID записи в экспортируемой системе.\
  Настройки: Задайте видимость при значении статуса «Запись».
* **ID записи (конеч)** (Число)\
  Описание: Хранит ID перенесенной записи в импортируемой системе.\
  Настройки: Задайте видимость при значении статуса «Запись».

**2.1.2. Создание внешних запросов для переноса**

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FZtX0x0cNtuLXhD0rjJV9%2F1.png?alt=media\&token=b21e4e12-4e58-4983-831a-3873f8e05c35)

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

* [**Внешний запрос для переноса секций**](https://drive.google.com/file/d/1guoZ5gOzWp8E9btFG8StqXbZyHkRlmP9/view?usp=sharing)
* [**Внешний запрос для переноса каталогов**](https://drive.google.com/file/d/1ZkYQ8-FNHi6YTD17aTMui8gTmiDh-Du1/view?usp=sharing)
* [**Внешний запрос для переноса полей**](https://drive.google.com/file/d/1vOv3hsuGI50WQML69MhtBfFiRG1VHWJ1/view?usp=sharing)
* [**Внешний запрос для переноса записей без связанных полей**](https://drive.google.com/file/d/1OA4R3tYEx8mXZc8pOnSCxNMp8UxXqirE/view?usp=sharing)
* [**Внешний запрос для переноса связанных полей в записи**](https://drive.google.com/file/d/1knQZZV3_c_fWslkwwyNKo57nhaHIRdIr/view?usp=sharing)

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

#### 2.2.1. Настройка сценария по переносу секций

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FUJipw5hJUzsURcwIBgNe%2F1%20\(1\).png?alt=media\&token=39f59d96-2111-490a-9f5a-fd1703a9e832)

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

* Найти сопоставление по этой секции
* Создание записи на сопоставление ID

#### **2.2.2. Настройка сценария по переносу каталогов**

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FE9hbgZvkHGTj5fQaM0EL%2F2%20\(1\).png?alt=media\&token=2c5fc67e-de0b-42e1-9927-cf9d136010e5)

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

* Найти сопоставление по этому каталогу
* Получение сопоставления по секции
* Создание записи на сопоставление ID

#### **2.2.3. Настройка сценария по переносу полей каталогов**

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FiEnDqdoyu1Bpk7sIdrh3%2F3%20\(1\).png?alt=media\&token=231e44a5-4d2c-48ef-8fab-2c3e53e36e5e)

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

* Получить все сопоставления по каталогам
* Получение маппинга каталога
* fieldMapping
* Создание записи в сопоставлении

#### **2.2.4. Настройка сценария по переносу записей**

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FpQ7IFqrSqZZMXV7uZvSH%2F4.png?alt=media\&token=e1058d66-0158-49df-a724-29ee3a299012)

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

* Найти сопоставление каталога
* Получить сопоставление полей по обрабатываемому каталогу
* Получение сопоставления записи из импортируемой системы
* Создание записи сопоставления записи

#### **2.2.5. Настройка сценария по переносу связанных записей в записи**

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FwKvjjqYP1f6AfPWfgjaX%2F5.png?alt=media\&token=1e8f9296-e478-46b5-889d-f519333abe46)

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F4hjR0GogYhbPloL1FRJ9%2F6.png?alt=media\&token=a8d8e9fb-27f3-46c1-815d-9a1be0b9070f)

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

* Получение сопоставления каталога в импортируемой системе
* Получение сопоставлений полей для каталогов
* Получение сопоставления записи в импортируемой системе
* Получение сопоставления записи

### **2.3. Отправка запросов по адресам внешних запросов**

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

#### 2.3.1. Параметры body для внешнего запроса на перенос секций

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

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F1zds9XhOsa1xS8aDnTvn%2F15.png?alt=media\&token=7b3caa41-2e4c-425c-98bc-a31d7c277f3e)

Поля, которые необходимо изменить:

**Объект «export»:**

* В поле «domain» замените «export» на домен системы Бипиума, из которой необходимо экспортировать секции.
* В поле «login» замените «user» на адрес электронной почты сотрудника с доступом в экспортируемую систему Бипиума.
* В поле «password» замените «password» на пароль сотрудника с доступом в экспортируемую систему Бипиума.

**Объект «import»:**

* В поле «domain» замените «import» на домен системы Бипиума, в которую необходимо импортировать секции.
* В поле «login» замените «user» на адрес электронной почты сотрудника с доступом в импортируемую систему Бипиума.
* В поле «password» замените «password» на пароль сотрудника с доступом в импортируемую систему Бипиума.

**Объект «sections»:**

* Заполните массив идентификаторами секций (id) из экспортируемой системы. Узнать id секции, как и id каталога, можно из адресной строки браузера в системе:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FLQ5cb5v1utDpOncjo3ry%2F32.png?alt=media\&token=377e82a2-bee7-4115-b83c-f813ffd0b67a)

#### **2.3.2. Параметры body для остальных внешних запросов**

Параметры в body для внешнего запроса на перенос всех остальных сущностей одинаковы и выглядят следующим образом:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2Fy5HOAVcLJVprFwwGngvj%2F33.png?alt=media\&token=5f79e8e8-516d-4c1e-b6a7-bd1e767c4ca3)

Поля, которые необходимо изменить:

**Объект «export»:**

* В поле «domain» замените «export» на домен системы Бипиума, из которой необходимо экспортировать секции.
* В поле «login» замените «user» на адрес электронной почты сотрудника с доступом в экспортируемую систему Бипиума.
* В поле «password» замените «password» на пароль сотрудника с доступом в экспортируемую систему Бипиума.

**Объект «import»:**

* В поле «domain» замените «import» на домен системы Бипиума, в которую необходимо импортировать секции.
* В поле «login» замените «user» на адрес электронной почты сотрудника с доступом в импортируемую систему Бипиума.
* В поле «password» замените «password» на пароль сотрудника с доступом в импортируемую систему Бипиума.

**Объект «catalogs»:**

* Заполните массив идентификаторами каталогов (id) из экспортируемой системы. Узнать id секции, как и id каталога, можно из адресной строки браузера в системе:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FLQ5cb5v1utDpOncjo3ry%2F32.png?alt=media\&token=377e82a2-bee7-4115-b83c-f813ffd0b67a)

Важно! Порядок следования в массиве каталогов имеет значение при переносе полей каталогов. В первую должны переноситься каталоги без связанных полей, являющиеся значениями связанных полей для остальных каталогов. Например, если Каталог А имеет поле связанной записи с Каталогом Б, то в первую очередь необходимо перенести каталог Б для корректной записи связанного поля в каталоге А. В случае же если это правило не будет соблюдаться, перенесенные поля со связанными записями не будет ссылаться на нужные каталоги и их придется связывать в структуре вручную.

#### **2.3.3. Адреса для отправки запросов**

Сформированный POST-запрос с заполненным телом сообщения необходимо отправить на адреса внешних запросов с заданными ранее URL-идентификаторами. Адреса для отправки внешних запросов выглядят следующим образом:

* **Перенос секций:**\
  [**https://import.bpium.ru/api/webrequest/sections/?async=true**](https://import.bpium.ru/api/webrequest/sections/?async=true)
* Перенос каталогов:[ <br>](https://import.bpium.ru/api/webrequest/sections/?async=true)[**https://import.bpium.ru/api/webrequest/catalogs/?async=true**  ](https://import.bpium.ru/api/webrequest/catalogs/?async=true)
* **Перенос полей каталогов:**\
  [**https://import.bpium.ru/api/webrequest/fields/?async=true**](https://import.bpium.ru/api/webrequest/fields/?async=true)
* **Перенос записей без связанных полей:**\
  [**https://import.bpium.ru/api/webrequest/records/?async=true**](https://import.bpium.ru/api/webrequest/records/?async=true)
* **Перенос связанных полей в записи:**\
  [**https://import.bpium.ru/api/webrequest/records/obj/?async=true**](https://import.bpium.ru/api/webrequest/records/obj/?async=true)

Вместо «import» необходимо вписать домен системы на Бипиуме в которую предполагается импорт.&#x20;

Обратите внимание, что запросы отправляются асинхронно, так как работа сценариев по переносу сущностей может занимать различное время в зависимости от количества переносимых сущностей. Сценарии по переносу секций и каталогов занимают меньше времени чем сценарии по переносу полей, записей и связанных записей. Сценарий Бипиума, запущенный синхронно, ограничен временем работы в 1 минуту, этого времени может не хватить для переноса требуемых сущностей, и Бипиум принудительно остановит выполнение такого сценария. Для сценария, запущенного асинхронно, такого ограничения нет.

### **2.4. Нюансы переноса**

Сценарии переноса записей переносят записи из экспортируемой системы в полном объеме за исключением заполнения полей типа «Сотрудник». Полный перенос каталога «Сотрудники» из экспортируемой системы нецелесообразен и небезопасен. Во всех записях каталогов с типом поля «Сотрудник» сотрудник не будет заполнен. При необходимости самостоятельно введите сотрудников в новую систему или перенесите их из экспортируемой системы вышеописанным способом. Во всех необходимых записях проставьте сотрудников вручную.

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

В системном каталоге «Внешние запросы» в импортируемой системе должны быть созданы записи с каждой сущностью к переносу: перенос секций, перенос каталогов, перенос полей каталогов, перенос записей без связанных полей, перенос связанных полей в записи. Статусы записей должны находится в состоянии «Активно».

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FZtX0x0cNtuLXhD0rjJV9%2F1.png?alt=media\&token=b21e4e12-4e58-4983-831a-3873f8e05c35)

Далее в HTTP-клиенте необходимо сформировать POST запрос с определенным телом сообщения для каждого запроса и отправить его.

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

* Исполняется — сценарий еще не завершил работу.
* Готово — сценарий завершил работу.
* Ошибка — произошла ошибка в процессе работы сценария.

Контролировать работу сценария также можно из созданного ранее каталога «Сопоставления ID». В процессе работы сценария на перенос конкретной сущности в каталоге в реальном времени создаются записи о перенесенных на данный момент сущностях. Например, так выглядят записи, созданные в результате работы сценария на перенос двух секций:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FBqUAb4xqB3uaR5e7Izic%2F17.png?alt=media\&token=ee47ef63-546e-4bcb-8bee-dc4803317213)

### **3.1. Формирование данных к переносу**

В экспортируемой системе для переноса были сформирована структура данных, состоящая их двух секций по два каталога в каждой и некоторым количеством записей внутри этих каталогов. Секции для переноса в импортируемую систем**у** представлены ниже:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FzOZdUJZC2w9n6fDYnYFy%2F4%20\(1\).png?alt=media\&token=c68670b4-f198-4f33-9b0d-45a9c5385892)

Каталоги для переноса в импортируемую систему внутри секции «Секция с людьми»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2Fq5UFxanVS6ivr9Qatuxt%2F5%20\(1\).png?alt=media\&token=2cdffa8e-b56f-4190-aa93-e64a1ae5f827)

Структура переносимого каталога «Люди»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FA0StpKg65zpEZckvr2Rk%2F34.png?alt=media\&token=db62c426-5f68-457c-906e-2d17243f2c87)

Записи в переносимом каталоге «Люди»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FvZEOiD7AkvaKMoiMRQZH%2F7.png?alt=media\&token=022a4f3c-514a-48f8-b126-d005bb5ef5e8)

Структура переносимого каталога «Группы людей»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FUE41HXYcKiiUtPiIuC4r%2F35.png?alt=media\&token=acb674b3-3a4b-4228-bbae-41563068eb4a)

Записи в переносимом каталоге «Группы людей»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2Fzm2ITGqSnlQm1mrT16tz%2F30.png?alt=media\&token=22030eef-8620-440f-a665-27b6e5877efb)

Каталоги для переноса в импортируемую систему внутри секции «Секция с товарами»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FZDpnCzXgIvgsLGzICUAU%2F10.png?alt=media\&token=6ad371b0-6b63-40dd-b5d8-6f9b60e727d6)

Структура переносимого каталога «Товары»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F95xptxS2lXpM53FrJAwX%2F36.png?alt=media\&token=2824cb5f-8108-4c1f-8e0d-bfda5c99de6d)

Записи в переносимом каталоге «Товары»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FbfoekDUYAvyAqYQSrmmF%2F12.png?alt=media\&token=105b3060-76eb-4eab-b376-28ef77276ea9)

Структура переносимого каталога «Товары на складе»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FqVRMDDGBYlsGpCHx8CJN%2F37.png?alt=media\&token=b3ff9fc1-17da-4238-bb65-3b7e7045cf39)

Записи в переносимом каталоге «Товары на складе»:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FsqCIfPYUielnBtc4Y72q%2F31.png?alt=media\&token=603b26bb-c1f7-41ae-975f-7f880106cc9f)

### **3.2. Перенос секций**

Для переноса секций в импортируемую систему в HTTP-клиенте «Postman» был сформирован и отправлен следующий POST-запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F1zds9XhOsa1xS8aDnTvn%2F15.png?alt=media\&token=7b3caa41-2e4c-425c-98bc-a31d7c277f3e)

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

* ID секции в экспортируемой системе.
* ID секции в импортируемой системе.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FIZZh58pNHkk5KnQGuGHX%2F17.png?alt=media\&token=2dd3e99b-8ad4-4a0b-a8b0-5c59937e8bfb)

Секции успешно перенеслись в импортируемую систему и аналогичные секциям из экспортируемой системы.

### **3.3. Перенос каталогов**

Для переноса каталогов в импортируемую систему в HTTP-клиенте «Postman» был сформирован и отправлен следующий POST-запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FfWuSApXItBnCsiR3XlBI%2F39.png?alt=media\&token=340d4228-2e32-46b3-aa52-5c779c43b115)

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

* ID секции каталога в экспортируемой системе.
* ID секции каталога в импортируемой системе.
* ID каталога в экспортируемой системе.
* ID каталога в импортируемой системе.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FhtQYyYlrgI2m4pRvf3nW%2F21.png?alt=media\&token=11f52e46-cc71-47d6-ac8f-1ca7ca83136d)

Каталоги успешно перенеслись в импортируемую систему и аналогичны каталогам из экспортируемой системы.

### 3.4. Перенос полей каталогов

Для переноса каталогов в импортируемую систему в HTTP-клиенте «Postman» был сформирован и отправлен следующий POST-запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2F96x3Aq3pCLWtgssXHdig%2F33%20\(1\).png?alt=media\&token=99864a13-39b0-489b-a588-5dfed1b4d630)

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

* ID каталога в экспортируемой системе.
* ID каталога в импортируемой системе.
* ID поля каталога в экспортируемой системе.
* ID поля каталога в импортируемой системе.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FHsvzhdb4gYATyCnrbs8o%2F24.png?alt=media\&token=703bac50-bddf-4033-9eb2-408f7cae8e21)

Поля каталогов успешно перенеслись в импортируемую систему и аналогичны полям каталогов из экспортируемой системы.

### 3.5. Перенос записей без связанных полей

Для переноса записей из каталогов в импортируемую систему в HTTP-клиенте «Postman» был сформирован и отправлен следующий POST-запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FYNx0MY8qEsKP876S6xz4%2F38.png?alt=media\&token=897905e5-8f4e-48a3-bcd8-d746da39383e)

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

* ID каталога записи в экспортируемой системе.
* ID каталога записи в импортируемой системе.
* ID записи в экспортируемой системе.
* ID записи в импортируемой системе.

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FW40nP2hI91yXJmjUrPQ5%2F28.png?alt=media\&token=252b5eb4-2305-4d34-a71b-6588201a6320)

Записи из каталогов успешно перенеслись в импортируемую систему и аналогичны полям каталогов из экспортируемой системы, за исключением наличия связанных записей.

### 3.6. Перенос связанных записей

Для переноса связанных записей в ранее перенесенные записи в импортируемую систему в HTTP-клиенте «Postman» был сформирован и отправлен следующий POST-запрос:

![](https://1283378397-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LACZmmM2xUWbZxyRr4s%2Fuploads%2FfWuSApXItBnCsiR3XlBI%2F39.png?alt=media\&token=340d4228-2e32-46b3-aa52-5c779c43b115)

В результате работы внешнего запроса в перенесенные ранее записи в соответствующие поля проставились корректные связанные записи.
