Импорт данных с помощью API
Импорт данных с помощью метода Web API состоит из нескольких шагов:
- Подготовка файла для импорта
- Загрузка файла в систему
- Запуск импорта данных
- Проверка результата импорта
Рассмотрим каждый шаг подробнее.
Подготовка файла для импорта
Шаблон файла для импорта индивидуален для каждого приложения. Чтобы наполнять его данными для последующей загрузки в систему, достаточно скачать шаблон один раз.
В зависимости от объемов данных и возможностей системы-источника данных, файл заполняется вручную или автоматически. Пример генерации файла на TypeScript можно найти здесь.
Когда файл с данными подготовлен, можно переходить к следующему шагу.
Загрузка файла с данными в систему
Метод загрузки файла в директорию и метод загрузки временного файла подойдут для импорта данных, однако при использовании последнего необходимо учитывать, что время жизни файла составляет 1 час, и импорт данных из такого файла должен завершиться за это время. Таким образом, при импорте больших объемов данных (более 50000 записей за раз) рекомендуется использовать метод загрузки файла в директорию.
Важно. Одним из обязательных параметров обоих методов является hash, который в дальнейшем понадобится для вызова метода импорта данных. Сгенерированный hash необходимо сохранить, т.к. в ответе он не возвращается. Пример запроса для загрузки файла в директорию находится здесь.
После успешной загрузки файла в систему, переходим к импорту данных.
Запуск импорта данных
Для запуска импорта данных необходимо использовать hash ранее загруженного файла. Также в теле запроса передаем формат файла – .xlsx или .csv – и игнорируем обработчики событий – withEventHandlers: false. Рекомендуется игнорировать обработчики событий при импорте больших объемов данных, т.к. обработчики могут создавать высокую нагрузку на систему и влиять на ее работоспособность.
Если бизнес-логика все же требует использовать обработчики событий при импорте, рекомендуется импортировать данные небольшими частями (до 1000) и делать паузу между пачками, чтобы система завершила обработку очереди сообщений.
В случае успешного запуска импорта, в ответе запроса приходит информация о количестве импортированных на данный момент элементов, статус и id текущего импорта, который используется для получения статуса импорта.
Важно. Если импорт данных в приложение уже запущен, запустить еще одну процедуру импорта будет невозможно, запрос вернет статус blocked.
Проверка результата импорта
Метод получения результата импорта возвращает такой же ответ, как и метод запуска импорта. Таким образом, отправляя этот запрос с заданной периодичностью, можно получать актуальную информацию о количестве импортированных элементов и определить, когда импорт завершится. Рекомендуется запрашивать статус импорта не чаще чем раз в секунду.