Выгрузка данных выбирает данные из информационной базы, преобразует их в формат данных ST-Mobi.com, и передает их на сервер согласно настроек транспорта. состав выгружаемых данных (набор правил) определяется при запуске выгрузке:
- в ручном режиме обмена - все отмеченные флажком правила выгрузки (на закладке "Настройка выгрузки")
- в автоматическом режиме обмена - все правила выгрузки для которых наступило время согласно заданному расписанию автообмена (на закладке "Настройка выгрузки")
Запуск выгрузки данных осуществляется по нажатию кнопки "Выгрузка данных" или вызову команды объекта "Выгрузка данных в ST-МобиКом" (Объект.ВыполнитьКоманду("ВыгрузкаДанных")) или "Обмен данными с ST-МобиКом" (Объект.ВыполнитьКоманду("ОбменДанными")). В последнем случае, выгрузка данных выполняется после загрузки данных.
Реализация функционала
Выгрузка данных выполняется в три этапа:
- Подготовка выгрузки
- Получение данных
- Выгрузка файлов в ST-Drive
- Отправка данных в сервис
Перед запуском выгрузки и после её выполнения из правил вызываются обработчики событий "ПередВыгрузкой" и "ПослеВыгрузки"
Подготовка выгрузки
При подготовке выгрузки для каждого правила подготавливаются служебные структуры.
Если на текущее правило выгрузки есть ссылки из правил выгрузки ST-Drive, то происходит и подготовка правил ST-Drive.
Выполняется обработчик события "ПередВыгрузкойОбъектов".
Получение данных
Данные выбираются из базы запросом указанным в правилах. После выполнения запроса его результат помещается в ДеревоЗначений.
Выгрузка файлов в ST-Drive
Для каждого правила выгрузки ST-Drive который ссылается на текущее правило, выполняется формирование имени файла, отправка файла в сервис с присвоением сформированного имени файла, и установкой сформированного имени файла в соответствующую строку и колонку полученных данных выгрузки.
За один запуск процедуры выгрузки на сервер ST-Drive отправляется не более указанного количества файлов (по умолчанию 100).
Выполняется обработчик события "ПослеВыгрузкиОбъектов".
Если после выполнения обработчика события ДеревоЗначений не содержит строк, то обработка записывает предупреждение "Нет данных в выборке", и дальнейшая обработка правила не выполняется.
Отправка данных в сервис
После получения данных, начинается формирование файла (файлов) для выгрузки в сервис с использованием указанного в настройках транспорта.
В целях оптимизации нагрузки на сервис, обработка разбивает выгружаемые данные по файлам, с учетом максимального количества файлов в объектах (по умолчанию 100500).
При подсчете количества объектов в файле учитываются и вложенные объекты (например строки документов).
Если в правиле указан режим замещения объектов при выгрузке (флаг "Замещать объекты"), то этот флаг будет установлен только для первого файла данных, для всех последующих файлов данных этого правила флаг будет сброшен.