Appearance
Интеграция
Интеграция - это механизм объединения данных ПК Технометр-ЦРМ с системами учета и документооборота, используемого на предприятии. По своей сути интеграция - это непрерывный процесс двухстороннего обмена данными между ПК Технометр-ЦРМ и внешней системой, который обеспечивает единство данных.
Синхронизация и интеграция
Не надо путать интеграцию и синхронизацию. Несмотря на схожесть смысловой нагрузки, синхронизация подразумевает обмен данными между Технометр-ЦРМ (центральный сервер) и узлами Технометр (АРМ Метролога). Интеграция - это обмен данными с внешними по отношению к Технометр ЦРМ системами.
На данный момент поддерживается интеграция в различные системы:
- SAP
- 1С:Предприятие
Для обмена данных могут использоваться различные транспортные протоколы и форматы данных.
Поддерживаемые форматы данных:
- JSON
- XML
- Plain text
Поддерживаемые транспортные протоколы:
- REST API
- Прямое чтение / запись в БД
- Файловый обмен
Настройка
Для настройки интеграции перейдите в настройки сервера и переключитесь во вкладку интеграция.
Настройки интеграции включают в себя следующие пункты, каждый из которых описан в соответствующем разделе:
- Базовые
- Потоки
- Поля
- Тестирование
- История
- Аутификация
Базовые параметры
В базовой секции расположились параметры, в которых определяются формат данных, транспортные протоколы, а также настройки точек обмена. Все параметры, кроме булевых являются обязательными.
Параметр | Тип | Описание |
---|---|---|
Сервис | Объект | Выбор системы, с которой будет осуществляться интеграция: 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) и имя файла. |
Требуется проверка цифровой подписи | Булевое | При наличии цифровой подписи файлов, будет осуществляться ее проверки. При выборе данной опции, дополнительно потребуется задать публичный и приватный ключи. |
Сохранять файлы успешной интеграции | Булевое | Файлы, содержимое которых успешно интегрировано, будут сохраняться. При выборе данной опции, дополнительно потребуется указать адрес директории, куда необходимо сохранять файлы. |
Сохранять файлы, вызвавшие ошибки интеграции | Булевое | Файлы, содержимое которых не удалось интегрировать, будут сохраняться. При выборе данной опции, дополнительно потребуется указать адрес директории, куда необходимо сохранять файлы. |
Выбор входящих/исходящий данных
В разделе представлен список сущностей, доступных для интеграции, необходимо выбрать сущности и задать им настройки.
Для каждой сущности, используемой при обмене данными необходимо указать следующие параметры:
Параметр | Тип | Описание |
---|---|---|
Экспортировать объекты указанного типа | Булевое | Сущность будет экспортироваться как отдельная самостоятельная сущность в отдельный файл. |
Формат | Объект | Формат передаваемых данных XML, JSON, Plain Text. |
Имя файла или точки | Строка | Имя файла в директории или суффикс в пути для REST запросов. |
Является директорией | Булевое | Если при интеграции имя файла для сущности не является строго заданным, то можно указать вместо имени директорию и установить этот флаг. Тогда все файлы в этой директории считаются за файлы с этой сущностью. |
Требуется конвертация | Булевое | Требуется ли преобразования из формата Технометр-ЦРМ в формат внешней системы и наоборот. Правила преобразования определяются во вкладке Поля. |
Требуется извлечение из архива | Булевое | При использовании архивов (ZIP, RAR, TAR) система будет их распаковывать перед началом операций. |
Требуется использование скрипта при обработке сущности | Булевое | При обработке сущности будет использован какой-либо скрипт. Язык скрипта - JavaScript. |
Тип архива | Объект | Поле требует заполнения, только при необходимости извлечения из архива. Необходимо выбрать тип архива из предложенных опций (ZIP, RAR, TAR). |
Название архива | Строка | Поле требует заполнения, только при необходимости извлечения из архива. |
Пароль | Строка | Поле требует заполнения, только при необходимости извлечения из архива. |
Тег списка документов | Строка | Название тега, который используется для обозначения списка документов. |
Тег документа | Строка | Название тега, который используется для обозначения конкретного документа. |
Название поля имени документа | Строка | Название поля, в котором будет указано наименование документа. Так же необходимо указать, является ли данное поле атрибутом. |
Название поля пути документа | Строка | Название поля, в котором будет указан путь к документу. Так же необходимо указать, является ли данное поле атрибутом. |
Поля
Данная вкладка позволяет настроить правила конвертации между сущностями Технометр-ЦРМ и внешней системы. Каждая система имеет свою структуру представления сущностей, которая может отличаться от принятой внутри Технометр-ЦРМ. Чтобы не программировать каждый раз скрипт преобразования данных, можно воспользоваться графическим интерфейсом для сопоставления структуры данных внешней системы со структурой данной Технометр-ЦРМ.
Для каждой из сущностей, участвующей в обмене данными вы можете настроить индивидуальные параметры преобразования данных для входящей и исходящей интеграции.
При обмене 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 данными и указывает, что данный параметр является аттрибутом тега. В противном случае система будет искать вложенный тег.
Тестирование
В данном разделе вы можете провести ручное тестирование входящей и исходящей интеграций. При тестировании входящей интеграции используется готовый файл с набором данных, который необходимо загрузить на сервер. При этом тестируется сам механизм преобразования данных и корректность их импорта. Для тестирования точки обмена данных необходимо запустить принудительную интеграцию, описанную в разделе Аутификация.
При запуске тестовой исходящей интеграции будет сформирован файл с выходными данными, который можно будет скачать и проверить на корректность содержания.
Обратите внимание
Если включена дифференциальная интеграция (обмен только новыми данными), то файл исходящей интеграции может быть пустым, сделайте изменения с сущностями, чтобы сформировать необходимый пул данных для исходящей интеграции.
История
ПО хранит историю всех интеграций за последние 365 дней.
Для интеграций, завершенных с ошибками, доступен просмотр списка возникших ошибок.
Любую интеграцию можно отменить, но делать этого не рекомендуется, т.к. объекты могут остаться с некорректными зависимостями.
Если интеграция все же была отменена, необходимо реинициализировать фильтры для сущностей. Сделать это можно в разделе "Сервис", с помощью соответствующей кнопки.
Аутификация
Токен аутификации необходим для принудительного запуска интеграции из внешних систем и представляет собой число-буквенную последовательность, которая позволяет защитить процесс интеграции от нежелательных неаутифицированных запросов. Генерация токена осуществляется по нажатию кнопки СГЕНЕРИРОВАТЬ ТОКЕН.
Внимание!
Токен действителен на предъявителя. Он аутифицирует и авторизует действия только на запуск интеграции.
Отменить токен невозможно, поэтому уделите особое внимание его защите. Если токен скомпрометирован измените секретное слово в настройках сервера.
Принудительный запуск
Интеграцию (входящую и исходящую) можно принудительно запускать из внешних систем. Данный механизм позволяет оперативно передавать или получать данные их внешних систем в Технометр-ЦРМ. Для принудительного запуска потребуется токен аутификации.
Для запуска входящей интеграции отправьте 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 - полученный токен