Импорт данных с помощью API

Импорт данных с помощью метода Web API состоит из нескольких шагов:

  1. Подготовка файла для импорта
  2. Загрузка файла в систему
  3. Запуск импорта данных
  4. Проверка результата импорта

Рассмотрим каждый шаг подробнее.

Подготовка файла для импорта

Шаблон файла для импорта индивидуален для каждого приложения. Чтобы наполнять его данными для последующей загрузки в систему, достаточно скачать шаблон один раз.

В зависимости от объемов данных и возможностей системы-источника данных, файл заполняется вручную или автоматически. Пример генерации файла на TypeScript можно найти здесь.

Когда файл с данными подготовлен, можно переходить к следующему шагу.

Загрузка файла с данными в систему

Метод загрузки файла в директорию и метод загрузки временного файла подойдут для импорта данных, однако при использовании последнего необходимо учитывать, что время жизни файла составляет 1 час, и импорт данных из такого файла должен завершиться за это время. Таким образом, при импорте больших объемов данных (более 50000 записей за раз) рекомендуется использовать метод загрузки файла в директорию.

Важно. Одним из обязательных параметров обоих методов является hash, который в дальнейшем понадобится для вызова метода импорта данных. Сгенерированный hash необходимо сохранить, т.к. в ответе он не возвращается. Пример запроса для загрузки файла в директорию находится здесь.

После успешной загрузки файла в систему, переходим к импорту данных.

Запуск импорта данных

Для запуска импорта данных необходимо использовать hash ранее загруженного файла. Также в теле запроса передаем формат файла – .xlsx или .csv – и игнорируем обработчики событий – withEventHandlers: false. Рекомендуется игнорировать обработчики событий при импорте больших объемов данных, т.к. обработчики могут создавать высокую нагрузку на систему и влиять на ее работоспособность.

Если бизнес-логика все же требует использовать обработчики событий при импорте, рекомендуется импортировать данные небольшими частями (до 1000) и делать паузу между пачками, чтобы система завершила обработку очереди сообщений.

В случае успешного запуска импорта, в ответе запроса приходит информация о количестве импортированных на данный момент элементов, статус и id текущего импорта, который используется для получения статуса импорта.

Важно. Если импорт данных в приложение уже запущен, запустить еще одну процедуру импорта будет невозможно, запрос вернет статус blocked.

Проверка результата импорта

Метод получения результата импорта возвращает такой же ответ, как и метод запуска импорта. Таким образом, отправляя этот запрос с заданной периодичностью, можно получать актуальную информацию о количестве импортированных элементов и определить, когда импорт завершится. Рекомендуется запрашивать статус импорта не чаще чем раз в секунду.