api.advimport Работа с импортом
Остановка импорта
-
api.advimport.stop(advimportConfig)
Остановка выполнения активной конфигурации импорта.
Используется в консольном скрипте, который может быть запущен в любой момент выполнения импорта, см. Скрипты, выполняемые в консоли.
Параметр метода:
-
advimportConfig — идентификатор конфигурации импорта. Идентификатор импорта указывается в адресной строке карточки конфигурации:
../sd/admin/#advImportConfig:f0e05190-145d-0247-0000-00007388e0bf
Результат выполнения: Импорт остановлен — в лог системы и лог импорта записывается сообщение, создание и модификация объектов, выполненные до момента остановки импорта, не отменяются. Если конфигурация импорта с указанным идентификатором отсутствует или не запущена, выводится сообщение об ошибке.
Пример: Остановка активной конфигурации импорта (идентификатор конфигурации импорта — f0e05190-145d-0247-0000-00007388e0bf):
api.advimport.stop('f0e05190-145d-0247-0000-00007388e0bf')
-
-
api.advimport.stopAll()
Остановка обработки всех активных конфигураций импорта.
Результат выполнения: список сообщений об ошибках, полученных при остановке.
Запуск импорта
-
api.advimport.start(advimportConfig, parameters)
Метод позволяет запустить определенную конфигурацию импорта с заполнением ее параметров запуска (gui-parameter).
Параметры метода:
-
advimportConfig — идентификатор конфигурации импорта. Идентификатор импорта указывается в адресной строке карточки конфигурации:
../sd/admin/#advImportConfig:f0e05190-145d-0247-0000-00007388e0bf
-
parameters —параметры запуска импорта (<gui-parameter> конфигурации импорта)
Допустимые типы значения параметров:
-
STRING — используется для передачи:
- строки для заполнения строковых параметров;
- UUID файла источника данных для импорта (file$1234);
- содержимого файла источника данных для импорта.
- byte[] и InputStream — используется для передачи содержимого файла источника данных для импорта.
-
Результат выполнения: Запуск конфигурации импорта.
Пример 1: Запуск конфигурации импорта без параметров (f0e05190-145d-0247-0000-00007388e0bf — идентификатор конфигурации импорта, [:] — пустые параметры запуска):
api.advimport.start('f0e05190-145d-0247-0000-00007388e0bf', [:]);
Пример 2: Запуск конфигурации импорта с использованием UUID файла в качестве источника импорта и строкового параметра:
api.advimport.start('f0e05190-145d-0247-0000-00007388e0bf', [ 'fileForProcess' : 'file$1234', 'defaultValue' : 'defaultString' ]);
Пример 3: Запуск конфигурации импорта с использованием вложения письма в качестве источника импорта (byte[]):
api.advimport.start('f0e05190-145d-0247-0000-00007388e0bf', [ 'fileForProcess' : message.getAttachments()[0].getData() ]);
Из скрипта обработки почты:
def startImport(def message) { for (def attachment : message.getAttachments()) { logger.debug("Filename is: " + attachment.getFilename() + " content type is : " + attachment.getContentType()); try { api.advimport.start('advImportConfig:f9157637-14c7-0d65-0000-00005e6f5b10', [ 'fileForProcess' : attachment.getData() ]); } catch(e) { logger.error("Error ${e.message}"); } } } -
Запуск импорта без изменения метаинформации с пользовательским файлом конфигурации
-
api.advimport.importByXmlConfiguration(fileXmlConfiguration, objectForLogAttachUuid, parameters)
api.advimport.importByXmlConfiguration(fileXmlConfiguration, objectForLogAttachUuid, attribute, parameters)
api.advimport.importByXmlConfiguration(fileXmlConfiguration, objectForLogAttachUuid, parameters, customUuid)
Метод позволяет создать любую произвольную конфигурацию импорта, прикрепить это в виде файла и запустить импорт с параметрами.
Параметры метода:
- fileXmlConfiguration — файл конфигурации импорта (xml) или его UUID;
- objectForLogAttachUuid — UUID объекта, к которому необходимо прикрепить лог импорта;
- attribute — код атрибута файла к которому нужно прикрепить лог;
- parameters — параметры импорта (в качестве значения может передаваться String/byte[]/InputStream);
- customUuid — желаемый UUID для конфигурации импорта.
В данных методах в аргументе parameters необходимо передать Map с информацией обо всех gui-параметрах импорта.
В качестве ключа элемента Map указывается имя параметра name, в качестве значения элемента Map — значение параметра.
При отсутствии передаваемых параметров необходимо указать пустой Map (в формате [:]).
-
api.advimport.getActiveImports()
Метод позволяет получить uuid всех активных конфигураций импорта (активная конфигурация импорта — это конфигурация импорта/синхронизации в статусе started).
Метод возвращает одно значение или 0, так как очередь импорта разбирается последовательно по одному.
-
api.advimport.getImportInfo(uuid)
Метод позволяет получить Map с информацией о конфигурации импорта с заданным uuid, а именно время начала импорта, продолжительность импорта в секундах, количество объектов в файле, количество строк в файле, количество пойманных ошибок, количество импортированных объектов, количество измененных объектов, количество пропущенных объектов, статус импорта.
Параметр метода:
- uuid — UUID конфигурации импорта.
Метод возвращает Map с информацией о конфигурации импорта, где:
- importStartTime — Время начала импорта;
- importDuration — Продолжительность импорта;
- itemsCount — Количество объектов для импорта;
- totalLines — Количество строк в файле импорта;
- totalErrors — Количество ошибок при импорте;
- importedObjects - Количество импортированных объектов;
- updatedObjects — Количество измененных объектов;
- skippedObjects — Количество пропущенных объектов;
-
status — Статус импорта.
Возможные статусы:
- queued — Поставлен в очередь;
- started — Начат;
- ended — Закончен;
- absent — Отсутствует;
- error — Завершен с ошибкой.