Skip to content

Интеграция

Интеграция - это механизм объединения данных ПК Технометр-ЦРМ с системами учета и документооборота, используемого на предприятии. По своей сути интеграция - это непрерывный процесс двухстороннего обмена данными между ПК Технометр-ЦРМ и внешней системой, который обеспечивает единство данных.

Синхронизация и интеграция

Не надо путать интеграцию и синхронизацию. Несмотря на схожесть смысловой нагрузки, синхронизация подразумевает обмен данными между Технометр-ЦРМ (центральный сервер) и узлами Технометр (АРМ Метролога). Интеграция - это обмен данными с внешними по отношению к Технометр ЦРМ системами.

На данный момент поддерживается интеграция в различные системы:

  • SAP
  • 1С:Предприятие

Для обмена данных могут использоваться различные транспортные протоколы и форматы данных.

Поддерживаемые форматы данных:

  • JSON
  • XML
  • Plain text

Поддерживаемые транспортные протоколы:

  • REST API
  • Прямое чтение / запись в БД
  • Файловый обмен

Настройка

Для настройки интеграции перейдите в настройки сервера и переключитесь во вкладку интеграция.

img.png

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

  • Базовые
  • Потоки
  • Поля
  • Тестирование
  • История
  • Аутификация

img.png

Базовые параметры

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

ПараметрТипОписание
СервисОбъектВыбор системы, с которой будет осуществляться интеграция:
1С:Предприятие, SAP
Тип обменаОбъектВыбор типа обмена данными: REST или Обмен файлами
Тип интеграцииОбъектСинхронизация, Входящая, Исходящая, Настраиваемая
ПротоколОбъектТранспортный протокол. Зависит от типа обмена данных.
ПортЧислоПорт обмена данными
СерверСтрокаСервер обмена данными
Сервер загрузки документовСтрокаСервер хранения документов
Часовой пояс сервераОбъектДля преобразования дат. Рекомендуется обмен в UTC
Тип датыОбъектВнутреннее хранение даты. Выбор между указанием формата или Unix Timestamp
Вид датыСтрокаФорматирование даты в соответствии с правилами Java
Объединять однотипные приборыБулевоеПри включении однотипные приборы в заявке будут формировать узел
Проставлять владеющую организациюБулевоеПри включении владеющей организацией будет проставлена текущая организация из настроек
Требуется очищать директориюБулевоеПри включении после успешной интеграции директория обмена будет очищена от всех файлов
Требуется обрабатывать сущности с пустым кодомБулевоеПри включении код интеграции перестанет быть обязательным. Данная опция может привести к дублированию данных.
true и false имеют альтернативные названияБулевоеПри включении можно указать значение для true и false. Актуально для 1С, где они принимают значение Истина и Ложь
Требуется загрузка документовБулевоеСистема будет искать документы и загружать их в систему при интеграции
Частота импорта данныхСтрокаCron выражение для частоты импорта. По-умолчанию раз в два часа (0 0 2 * * ?)
Частота экспорта данныхСтрокаCron выражение для частоты экспорта. По-умолчанию раз в два часа (0 0 2 * * ?)
Тип входящих данныхОбъектЦеликом все данные или Diff (разница с момента последней интеграции)
Тип исходящих данныхОбъектЦеликом все данные или Diff (разница с момента последней интеграции)
Кодировка входящих данныхОбъектКодировка входящего потока. По-умолчанию UTF-8
Кодировка исходящих данныхОбъектКодировка исходящего потока. По-умолчанию UTF-8

Примечания

  • Сервер можно указывать в формате FQDN имени или IP адреса.
  • Подробнее о Cron выражениях можно прочесть на сайте Oracle.

Потоки

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

Основные настройки потоков включают в себя

ПараметрТипОписание
Адрес точки обменаСтрокаУказанием точки обмена: директория (от корня сервера) для обмена файлами и путь (endpoint) для REST запросов.
Требуется извлечение файлов из общего архиваБулевоеЕсли данные запакованы в один архив, то необходимо включить этот параметр. При выборе данной опции, дополнительно потребуется указать тип архива, его название и пароль к нему
Наличие файла чек суммыБулевоеВключить при использовании файла с контрольной суммой. При выборе данной опции, дополнительно потребуется указать алгоритм расчета чек суммы (выбор из доступных опций: MD5, SHA256, SHA1) и имя файла.
Требуется проверка цифровой подписиБулевоеПри наличии цифровой подписи файлов, будет осуществляться ее проверки. При выборе данной опции, дополнительно потребуется задать публичный и приватный ключи.
Сохранять файлы успешной интеграцииБулевоеФайлы, содержимое которых успешно интегрировано, будут сохраняться. При выборе данной опции, дополнительно потребуется указать адрес директории, куда необходимо сохранять файлы.
Сохранять файлы, вызвавшие ошибки интеграцииБулевоеФайлы, содержимое которых не удалось интегрировать, будут сохраняться. При выборе данной опции, дополнительно потребуется указать адрес директории, куда необходимо сохранять файлы.

img.png

Выбор входящих/исходящий данных

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

img.png

Для каждой сущности, используемой при обмене данными необходимо указать следующие параметры:

ПараметрТипОписание
Экспортировать объекты указанного типаБулевоеСущность будет экспортироваться как отдельная самостоятельная сущность в отдельный файл.
ФорматОбъектФормат передаваемых данных XML, JSON, Plain Text.
Имя файла или точкиСтрокаИмя файла в директории или суффикс в пути для REST запросов.
Является директориейБулевоеЕсли при интеграции имя файла для сущности не является строго заданным, то можно указать вместо имени директорию и установить этот флаг. Тогда все файлы в этой директории считаются за файлы с этой сущностью.
Требуется конвертацияБулевоеТребуется ли преобразования из формата Технометр-ЦРМ в формат внешней системы и наоборот. Правила преобразования определяются во вкладке Поля.
Требуется извлечение из архиваБулевоеПри использовании архивов (ZIP, RAR, TAR) система будет их распаковывать перед началом операций.
Требуется использование скрипта при обработке сущностиБулевоеПри обработке сущности будет использован какой-либо скрипт. Язык скрипта - JavaScript.
Тип архиваОбъектПоле требует заполнения, только при необходимости извлечения из архива. Необходимо выбрать тип архива из предложенных опций (ZIP, RAR, TAR).
Название архиваСтрокаПоле требует заполнения, только при необходимости извлечения из архива.
ПарольСтрокаПоле требует заполнения, только при необходимости извлечения из архива.
Тег списка документовСтрокаНазвание тега, который используется для обозначения списка документов.
Тег документаСтрокаНазвание тега, который используется для обозначения конкретного документа.
Название поля имени документаСтрокаНазвание поля, в котором будет указано наименование документа. Так же необходимо указать, является ли данное поле атрибутом.
Название поля пути документаСтрокаНазвание поля, в котором будет указан путь к документу. Так же необходимо указать, является ли данное поле атрибутом.

img.png

img.png

Поля

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

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

img.png

При обмене XML или JSON вам необходимо указать тег или корневой ключ как для сущности, списка сущностей и составной сущности. Пример структуры XML файла:

xml

<devices>
    <device code="111" model="dev1"></device>
    <device code="222" model="dev2"></device>
    <device-kit code="333" model="devkit1">
        <device code="444" model="devkit1-dev1"></device>
        <device code="555" model="devkit1-dev2"></device>
    </device-kit>
</devices>

При такой структуре тег сущности device, тег списка сущности devices, тег составной сущности device-kit. При указании сущности не надо использовать угловые скобки.

Кроме указания тега, необходимо сделать сопоставление параметров преобразования. Для этого выберите поле из древовидной структуры представления сущности в Технометр-ЦРМ и укажите сопоставляемое ему поле. Флаг аттрибут используется только для обмена XML данными и указывает, что данный параметр является аттрибутом тега. В противном случае система будет искать вложенный тег.

Тестирование

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

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

img.png

Обратите внимание

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

История

ПО хранит историю всех интеграций за последние 365 дней.

img.png

Для интеграций, завершенных с ошибками, доступен просмотр списка возникших ошибок.

img.png

Любую интеграцию можно отменить, но делать этого не рекомендуется, т.к. объекты могут остаться с некорректными зависимостями.

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

img.png

Аутификация

Токен аутификации необходим для принудительного запуска интеграции из внешних систем и представляет собой число-буквенную последовательность, которая позволяет защитить процесс интеграции от нежелательных неаутифицированных запросов. Генерация токена осуществляется по нажатию кнопки СГЕНЕРИРОВАТЬ ТОКЕН.

Внимание!

Токен действителен на предъявителя. Он аутифицирует и авторизует действия только на запуск интеграции.

Отменить токен невозможно, поэтому уделите особое внимание его защите. Если токен скомпрометирован измените секретное слово в настройках сервера.

Принудительный запуск

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

Для запуска входящей интеграции отправьте GET запрос следующего вида:

HTTP://SERVER_NAME:SERVER_PORT/api/integration/run/in?token=TOKEN

Для запуска исходящей интеграции отправьте GET запрос следующего вида:

HTTP://SERVER_NAME:SERVER_PORT/api/integration/run/out?token=TOKEN

Замените следующие параметры на рабочие:

  • HTTP - используемый протокол HTTP или HTTPS
  • SERVER_NAME - FQDN имя сервера или IP адрес
  • SERVER_PORT - порт сервера (если отличается от стандартного)
  • TOKEN - полученный токен