Действует с 07.09.2022
Руководство по
интеграции со
смежными
информационными
системами
MD 011-003-F
Москва, 2022
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Оглавление
Перечень сокращений и условных обозначений ........................................................................... 5
Термины и определения .................................................................................................................. 6
1.
Общие сведения ...................................................................................................................... 8
2.
Концепция интеграции Оптимакрос ...................................................................................... 9
3.
Типы интеграций ...................................................................................................................13
3.1
«Простая интеграция». Экспорт/импорт через файлы ..................................................13
3.2
Обмен данными через плоские файлы ...........................................................................18
3.2.1
Требования к файлу...................................................................................................18
3.2.2
Требования к сетевой папке .....................................................................................19
3.2.3
Настройка скрипта .....................................................................................................19
3.3
Готовые интеграции (коннекторы) ..................................................................................20
3.4
Интеграционные скрипты .................................................................................................23
3.5
WebAPI сервисы на базе скрипта экспорта/импорта .....................................................24
3.5.1
Аутентификация .........................................................................................................24
3.5.2
Запрос данных ...........................................................................................................25
3.5.3
Получение данных.....................................................................................................26
3.5.4
Загрузка данных.........................................................................................................31
4.
Примеры интеграций ............................................................................................................34
4.1
Интеграции между моделями Оптимакрос ....................................................................34
4.1.1
Оптимакрос OLAP ......................................................................................................34
4.1.2
Импорт из справочника ............................................................................................35
4.2
Пример интеграций с БД в Оптимакрос OLTP .................................................................36
4.3
Пример интеграции с mySQL/MariaDB ............................................................................38
4.3.1
mySQL..........................................................................................................................38
4.3.2
MariaDB .......................................................................................................................39
4.4
Пример интеграции с MS SQL Server/ Analysis Services ..................................................40
4.4.1
MS SQL Server .............................................................................................................40
4.4.2
Analysis Services ..........................................................................................................42
2
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4.5
Пример интеграции с PostgreSQL .....................................................................................43
4.6
Пример интеграции с Oracle Database .............................................................................44
4.7
Пример интеграции с Mongo DB ......................................................................................45
4.8
Пример интеграции с шиной данных ..............................................................................46
4.9
Пример интеграции через файл на FTP/SMB ..................................................................47
4.10
Пример интеграции с открытыми Веб-источниками .................................................48
4.10.1 Открытые Веб-источники .........................................................................................48
4.10.2 Сервисы Яндекс .........................................................................................................48
4.11
Примеры интеграций с учетными системами ............................................................49
4.11.1 SAP ERP .......................................................................................................................49
4.11.2 1С ERP .........................................................................................................................50
4.12
Примеры прочих интеграций .......................................................................................50
4.12.1 1C СЭД ........................................................................................................................50
4.12.2 Пример интеграции с Power BI ................................................................................51
4.13
Примеры интеграции через WebAPI сервисы на базе скрипта экспорта/импорта .51
4.13.1 Запрос данных через GET-запрос ............................................................................51
4.13.2 Запрос данных через POST-запрос ..........................................................................52
4.13.3 Загрузка данных с использованием объекта POST_TEMPLATE .............................53
5.
Порядок внедрения ...............................................................................................................56
5.1
«Простая интеграция» через excel/csv файлы ................................................................56
5.2
Прямая автоматическая интеграция ................................................................................57
Приложение А Примеры запросов ................................................................................................58
Приложение Б Поддерживаемые БД ............................................................................................60
Приложение В Требования к приемнику/источнику данных нА стороне ОПТИМАКРОС ........61
3
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ИСТОРИЯ ИЗМЕНЕНИЙ
№
Дата
Автор
1.0
05.08.2021
Афанасьева И.
Документ создан
2.0
25.08.2022
Головкина М.
Добавлены разделы по WebAPI сервисам
версии
Описание
4
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ПЕРЕЧЕНЬ СОКРАЩЕНИЙ И УСЛОВНЫХ ОБОЗНАЧЕНИЙ
API
application programming interface программный интерфейс
приложения)
ETL
Extract, Transform, Load
FTP
File Transfer Protocol
JDBC
Java DataBase Connectivity
ODBC
Open Database Connectivity
OLAP
Online analytical processing
OLEDB
Object Linking and Embedding, Database
OLTP
Online Transaction Processing
SMB
Server Message Block
SFDC
Salesforce.com
UAT
User Acceptance Testing
БД
база данных
ИС, система, ОМ
информационная система «Оптимакрос» или
сконфигурированная на платформе ИС «Оптимакрос»
ППО
прикладное программное обеспечение
Логин-центр, ЛЦ ОМ
ППО «Платформа безопасности «Логин-центр Оптимакрос»
система
5
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
Термин
Значение\описание
API
описание способов, которыми одна информационная система может
взаимодействовать с другой программой. Обычно входит в описание
какого-либо интернет-протокола, программного каркаса или стандарта
вызовов функций операционной системы.
Boolean cube
логический куб мультикуба, который имеет два возможных варианта
отображения: да или нет (true/false).
Drill
Down
Transaction
to углубление в данные до транзакции, т.е. детализация данных,
позволяющая определить из чего сложилось агрегированное значение.
ETL
один из основных процессов в управлении массивами данных, который
включает в себя: извлечение данных из внешних источников; их
трансформация и очистка, чтобы они соответствовали потребностям
бизнес-модели; и загрузка их в хранилище данных. Используется в
хранилищах данных.
OLAP
набор технологий для оперативной обработки информации, включающих
динамическое построение отчётов в различных разрезах, анализ данных,
мониторинг и прогнозирование ключевых показателей бизнеса.
OLTP
реляционные базы данных, которые используются везде и повсеместно.
Их основная цель – ввод/редактирование/удаление данных в режиме
онлайн
On-premise модель
модель размещения программного обеспечения с использованием
собственных ресурсов предприятия
Staging area
Область временного хранения данных
Аналитика
это атрибут, описывающий данные и необходимый для распознавания
данных, формирования отчетности и дальнейшего анализа
Дашборд
рабочая область, на которой может быть размещено представление
таблицы, кнопка, график и др. объекты системы
Импорт
это загрузка данных в систему через файл формата XLSX (CSV
Интеграция
обмен данными между системами и платформой Optimacros, который
может быть осуществлен различными способами с применением ETLпроцедур.
Коннектор
это интеграционное соединение между
обеспечивающее их взаимодействие
Куб
мера и\или значение в понятиях OLAP кубов и сводных таблиц,
многомерная конструкция, особенностью которой является единый
формат
различными
системами,
6
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Макрос
набор команд и инструкций, группируемых вместе в виде единой
команды для автоматического выполнения задач
Мастер-данные
справочник с данными, которые носят информационно-справочный
характер и не являются транзакционными
Модальное окно
окно в графическом интерфейсе пользователя, которое блокирует работу
пользователя с родительским приложением до тех пор, пока пользователь
это окно не закроет
Мультикуб
представляет собой многомерную таблицу, которая может содержать в
себе следующие объекты системы: куб, измерение «Время», измерение
«Версии», пользовательские измерения, выборку кубов
Модель
совокупность структур данных, связанных между собой, в виде мастерданных, форм ввода, отчетов и визуализации, ограниченных конкретной
областью
Мэппинг
(от англ. Mapping – соответствие) соответствие элементов двух сущностей
один к одному
Плоский формат
представление данных в двухмерном формате
Сабсет
(от англ. Subset-выборка) представляет из себя выборку элементов либо
измерений,
справочников,
времени,
версий
определенного
подмножества создающая собственное измерение
Скрипты
(от англ. Script- сценарий) средство автоматизации часто повторяемых
пользователями действий/задач или же функционал, способствующий
реализации любой сделанной по индивидуальной логике
Справочник
представляет собой группу подобных элементов, являющихся
кроссмодельными. Справочники могут быть использованы в нескольких
мультикубах как измерения, а также в качестве форматов свойств
справочников и форматов кубов
Чеки
(от англ. Check-проверка) проверка данных на ошибки, пропуски или
отсутствие информации.
Экспорт
это выгрузка данных из системы в файл формата XLSX (CSV, TXT).
7
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
1. ОБЩИЕ СВЕДЕНИЯ
Настоящий документ разработан для ознакомления с подходами к интеграции
информационной системы Оптимакрос со смежными системами.
В данном документе описаны концептуальные подходы к интеграции со смежными
системами (объекты интеграции, потоки данных) и подходы к технической реализации данных
решений.
8
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
2. КОНЦЕПЦИЯ ИНТЕГРАЦИИ ОПТИМАКРОС
Под интеграцией понимается процесс обмена данными между смежными системами и
информационной системой Оптимакрос, который может быть осуществлен различными способами
с применением ETL-процедур. Общая концепция интеграции подразумевает получение данных в
плоские или n-D таблицы с промежуточной зоной хранений (Staging area), ETL-преобразованием в
момент запроса данных либо последующим преобразованием в промежуточной зоне хранения
(очистка, мэппинг, обогащение, проверки, агрегирование и т.п.).
Рисунок 1 – Модель хранилища данных с промежуточной зоной хранения, двухуровневыми ETL-процедурами и
конечными пользователями
В данной модели выделяются два уровня ETL-процедур:
1. При необходимости ETL-преобразования осуществляются в момент запроса данных из
системы-источника, что обеспечивается использованием интеграционного скрипта.
2. Распознавание, проверка и преобразование данных в зоне промежуточного хранения
данных (Staging area) за счет применения формул ИС Оптимакрос.
Интеграционный скрипт, в котором указываются нужные параметры интеграции, позволяет
гибко настраивать процедуры ETL в момент запроса, что является наиболее часто используемым
решением интеграции.
Аналогично функции Get Dаta в MS Excel: в интерфейсе ИС Оптимакрос существуют готовые
варианты интеграции, которые представлены в разделе «Макросы» на панели инструментов:
«Макросы» -> «Интеграции. Получить/отправить». Данные можно интегрировать:
−
из моделей ИС Оптимакрос;
−
из различных БД (mySQL/MariaDB, MS SQL, PostgreSQL, Oracle DB, MongoDB, Redis и т.п.);
−
из файлов на FTP/SMB, из открытых веб-источников (например, Яндекс-сервисы,
онлайн-таблицы и т.д.).
9
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Для прочих видов интеграции необходимо разрабатывать специальный коннектор.
Готовый коннектор выдается вендором при использовании лицензий типа Prod, для целей
демонстрации возможностей предоставляется тестовый коннектор для MS SQL (как одной из самых
популярных БД в корпоративном сегменте).
Рисунок 2 – Интеграционные коннекторы
После выбора нужного типа интеграции, в открывшемся интеграционном модальном окне
требуется ввести основные параметры:
−
сервер;
−
порт;
−
пользователя;
−
пароль;
−
БД;
−
Запрос;
−
также можно добавить ETL-скрипт, который используется для разворачивания данных в
соответствующие измерения мультикуба, консолидации, детализации, обогащения
данных и т.п.;
−
выбрать приёмник в случае «Получение Данных» (Get Data) или источник в случае
«Отправка Данных» (Send Data).
10
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 3 – Интеграционное модальное окно для ввода основных параметров
Рисунок 4 – Модальное окно для добавления ETL-скрипта
Система Оптимакрос может выступать как активная сторона, т.е. ИС сама подключается к
внешнему сервису, или как пассивная сторона - через механизм WebAPI-сервисов или OLTP. В
первом случае для работы интеграций необходимо, чтобы адреса и порты интегрируемых внешних
сервисов были доступны серверу, где установлены приложения ИС. При наличии доступа этих
сервисов для сервера ИС приложение получит данный доступ автоматически.
11
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Выделяются следующие типы интеграций с информационной системой Оптимакрос:
1. «Простая интеграция» через excel/csv-файлы - базовый функционал экспорта/импорта
системы Оптимакрос.
2. Плоский файл, который выгружается из источника в сетевую папку и забирается
системой Оптимакрос, предварительно трансформируется с применением ETLпроцедуры для точной передачи в приемник.
3. Коннекторы – готовые интеграции, подключение через OData, отправка прямого
запроса к БД, подключение к веб-сервисам.
4. Интеграционный скрипт – программный код, в котором указываются нужные
параметры интеграции и настраиваются ETL-процедуры.
5. Промежуточная(ые) таблица(ы) в базе данных или хранилище данных клиента,
например, MS SQL используется, когда нет возможности подключиться напрямую к БД.
6. OLTP модуль – возможность создать встроенное хранилище данных, через которое
разворачивается лицензия БД и встраивается в контур системы. Это позволяет
использовать упрощенные коннекторы.
7. WebAPI сервисы. Для внешней прямой интеграции с воркспейсом Оптимакрос
приложением реализован механизм WebAPI-сервисов. Это позволяет исключить из
схемы интеграции посредников, а также возможную необходимость организации
сетевых доступов из ИС Оптимакрос к ресурсам заказчика.
12
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
3. ТИПЫ ИНТЕГРАЦИЙ
3.1 «Простая интеграция». Экспорт/импорт через файлы
Экспорт/импорт через файлы – это способ простой («ручной») интеграции, который
применяется на этапе разработки прототипа системы на период разработки методологии обмена
данных.
В ИС существует встроенный функционал по экспорту/импорту excel/csv файлов.
Поддерживается работа с файлами MS Office, при необходимости возможно установить
взаимодействие с другими распространенными системами: Мой Офис, LibreOffice и др.
Виды экспорта:
−
настраиваемый экспорт;
−
экспорт представления;
−
специальные форматы экспорта ОМ.
Настраиваемый экспорт – экспорт данных в файл формата XLSX (СSV, TXT) по всем
измерениям мультикуба, с настройкой их расположения в строках и колонках.
Экспорт осуществляется в пункте меню панели управления мультикуба «Данные» ›
«Настраиваемый Экспорт» или кнопкой «Экспортировать Таблицу» на панели управления
мультикуба. Требуется выбрать соответствующий тип экспорта («Настраиваемый экспорт»).
Рисунок 5 – Варианты экспорта
Система позволяет задать необходимые настройки для экспорта:
−
изменить расположение измерений в строках и колонках, перетащив измерение в
соответствующую графу «Колонки» или «Строки»;
−
исключить пустые строки, отметив галкой пункт «Исключить пустые строки»;
−
исключить итоговые строки и столбцы, отметив галкой пункт «Исключить итоговые
строки»;
−
включить коды для экспортируемых данных, отметив галкой пункт «Включить коды»;
13
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
−
преобразовать файл для последующего импорта данных через «Настраиваемый
импорт/Расширенный импорт», отметив галкой соответствующие графы «Мэппинг для
настраиваемого импорта/ Мэппинг для Расширенного Импорта»;
−
отключить опцию зависимого контекста, сняв галку в графе «Применить зависимый
контекст»;
−
выбрать формат экспортируемого файла (XLSX, СSV, TXT, специальные форматы ОМ).
Рисунок 6 – Модальное окно «Настаиваемый экспорт»
А также дополнительные настройки на вкладке «Расширенные»:
−
очистить системные идентификаторы «#id ( ||#id)» для элементов нумерованных
справочников и справочников с альясом, в качестве наименований, отметив галкой
пункт «Очищать .#id»;
−
исключить заголовки строк измерений, отметив галкой пункт «Исключить заголовки
строк»;
−
сохранить экспорт с настройками, как «макрос Экспорт», отметив галкой пункт
«Сохранить как макрос Экспорт»;
−
выбрать тип кодирования (Windows-1251, UTF-8);
−
определить десятичный разделитель (точка, запятая).
14
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 7 – Расширенные настройки экспорта
Экспорт представления – настраиваемый экспорт данных мультикуба в файл формата XLSX
(СSV, TXT) с возможностью фиксировать элементы измерений в фильтрах.
Данный вид экспорта осуществляется в пункте меню панели управления мультикуба
«Данные» -> «Экспорт представления» или через кнопку «Экспортировать таблицу» на панели
управления мультикуба.
Специальные форматы экспорта OM_ZIP, OM_CSV, OM_TXT позволяют значительно
увеличить скорость выгрузки файла, но имеют ограничение при настройке деталей экспорта:
−
OM_ZIP позволяет сделать экспорт файла в формате CSV в архиве ZIP;
−
OM_CSV позволяет сделать экспорт файла в формате CSV;
−
OM_TXT позволяет сделать экспорт файла в формате TXT.
При выборе одного из специальных форматов экспорта расположение измерений
мультикуба преобразовывается следующим образом:
−
кубы располагаются в колонки;
−
измерения, располагавшиеся в строках, остаются в том же порядке;
−
измерения, располагавшиеся в колонках и фильтрах мультикуба, перемещаются в
строки после тех измерений, которые там ранее были расположены;
−
исключить нежелательные строки из экспорта можно с помощью «Логического
фильтра» (куб в соответствующем мультикубе в логическом формате).
Виды импорта:
−
строгий;
−
настраиваемый;
−
расширенный;
15
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
−
управляемый.
Импортировать данные из файла (.xls, .xlsx, .csv, .txt) можно посредством функции Drag&Drop
– выделить и переместить структурированный файл с данными в соответствующий справочник или
мультикуб (в том числе справочник / мультикуб, опубликованный в контекстных таблицах).
Рисунок 8 – Демонстрация импорта посредством Drag & Drop
Строгий импорт – импорт данных в мультикуб возможен из файла Excel, содержащего
несколько вкладок (листов) с данными для импорта. Последовательность импортируемых листов
определяется по наименованию листа (в алфавитном порядке с учетом регистра). Строгий импорт
данных в несколько мультикубов модели реализуется с помощью Drag&Drop в панели
«Содержимое».
Поля, обязательные к заполнению:
−
первая строка должна быть пустой;
−
вторая строка должна содержать наименования всех измерений, используемых в
мультикубе, находящихся в строках (в произвольном порядке) и наименование
измерения, находящегося в колонках;
−
в третьей строке – под соответствующим наименованием измерения, находящимся в
колонках, перечислены все его элементы, в которые будут загружаться данные;
−
ниже, в столбцах, соответственно наименованиям измерений и кубов, перечислены
наименования элементов измерений, а также данные для загрузки в ячейках на
пересечении элементов измерений в строках и колонках.
16
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 9 – Заполнение файла при строгом импорте
Настраиваемый импорт – можно воспользоваться файлом Excel, выгруженным из
мультикуба с помощью «Настраиваемого экспорта / Экспорта представления» с параметрами
мэппинга, которые находятся на второй вкладке файла «__mapping» и изменить необходимые
данные для загрузки в мультикуб.
Рисунок 10 – Таблица с параметрами мэппинга
После завершения импорта файла будет сформирован отчет о результатах импорта, в
формате .txt, c указанием статуса для соответствующего количества ячеек (Updated, Ignored, Failed),
а также информацией об ошибках для каждой ячейки, если таковые имеются.
Расширенный импорт данных позволяет импортировать данные посредством указанных
параметров мэппинга:
−
в один мультикуб модели реализуется с помощью Drag&Drop в соответствующий
мультикуб;
−
в несколько мультикубов модели - с помощью Drag&Drop в панель.
Управляемы импорт позволяет импортировать данные в мультикубы разных моделей с
помощью Drag&Drop в «Рабочее пространство».
17
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
3.2 Обмен данными через плоские файлы
Обмен данными через плоские файлы – это один из базовых способов интеграции, при
котором осуществляется обмен транзакционными фактическими данными и мастер-данными
между учетной системой (например, 1С ERP) и Оптимакрос, посредством получения плоских
файлов из выделенной сетевой папки, наполняемой учетной системой по расписанию. Данный
способ характеризуется:
−
обмен файлами через сетевые папки (FTP/SMB и т.п. перемонтированные и/или sharedпапки) с возможностью гибкой настройки;
−
распознавание плоских файлов различных форматов (в т.ч. csv, json, xml и т.д.);
−
автоматическая синхронизация данных и мастер-данных (push/pull запросы в скриптах);
−
простой импорт мастер-данных (справочников и иерархий).
−
импорт данных и мастер-данных с использование ETL-процедур (агрегация, чистка,
мэппинг, преобразования, дополнения и т.п.)
3.2.1 Требования к файлу
Система Оптимакрос поддерживает загрузку файлов разных форматов. Наиболее часто
используемые форматы файлов:
−
CSV – самый быстрый, безопасный, удобный формат и т.п.;
−
JSON/XML – формат, хранящий структурированные данные/ могут иметь вложенную
структуру, содержать внутренние объекты и массивы.
Для распознавания плоского файла при загрузке в систему согласуется формат файла, а также
параметры представления данных. В таблице приведен пример параметров для файла формата
CSV:
Таблица 1 Пример параметров представления данных для CSV- файла
№
Параметры
Варианты/Описание
1
Разделитель полей
например, TAB/; и др.
2
Кодировка
UTF-8/ WINDOWS-1251
3
Разделитель
дробной
части точка
десятичных чисел
4
Разделитель тысячных разрядов нет
десятичных чисел
5
Признак отрицательного числа
префикс минус
6
Разделитель строк
DOS/Windows (CRLF)
7
Нормализованный вид
аналитики содержатся в колонках, каждая аналитика в
отдельном столбце
18
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
№
8
Параметры
Дата
Варианты/Описание
должна быть оформлена отдельной колонкой в
формате дд.мм.гггг
9
Форматирование ячеек в файле
отсутствует
10
Агрегирующие/промежуточные
отсутствуют
строки
11
Формат колонок
текст, число, дата
12
Уникальное имя файла выгрузки
гггг-мм-дд_чч-мм-сс_ABC, где ABC – рандомное
буквенное сочетание, чтобы избежать конфликтов,
если файлы генерятся в одну секунду (например,
bdr_2020-08-03_20-59-59_XYZ.csv)
3.2.2 Требования к сетевой папке
Система Оптимакрос поддерживает обмен файлам через сетевые папки разных типов (FTP,
SMB и др.).
Для обеспечения подключения к сетевой папке требуются параметры подключения,
например, для FTP-папки:
−
тип: FTP;
−
IP: Port;
−
логин: XXX;
−
пароль: YYY;
−
адрес папки: ~/.
В папке должны быть предусмотрены три директории:
−
~/Incoming/ — для файлов, которые выгружаются из источника;
−
~/Archive/ – для хранения загруженных файлов после загрузки в Оптимакрос;
−
~/Reports/ – для файлов-отчетов о результатах загрузки данных из файла.
3.2.3 Настройка скрипта
В интеграционном скрипте указываются все согласованные параметры, в том числе:
−
адрес сетевой папки;
−
параметры доступа к сетевой папке;
−
задается паттерн наименования файла;
−
параметры файла;
−
наименование приемника;
19
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
−
измерения приемника;
−
сопоставление колонок файла-источника и приемника.
Во время приема данных может происходить трансформация данных, например:
−
при загрузке данных одна из колонок распознается как измерение времени;
−
данные из плоского файла могут распределяться, например, по месяцам в трехмерном
или n-мерном приемнике;
−
при загрузке конкретного месяца/дня/года его содержимое очищается и наполняется
данными, начиная с первого элемента;
−
в большинстве случаев формируется уникальный идентификатор (в данном случае Item
Name нумерованного справочника), поэтому в качестве параметра генерируются
элементы нумерованного справочника т.е. #1, #2, #3 и т.д.;
−
добавляются колонки c указанием наименования файла, даты и времени загрузки;
−
при необходимости может быть настроена любой другой ETL-процесс (трансформация
данных).
3.3 Готовые интеграции (коннекторы)
Коннекторы – это готовая библиотека соединений, которые при необходимости добавляются
в модель, и могут использоваться непосредственно с интеграционными модальными окнами
(Get/Send модальные окна). Большое количество запросов по интеграции покрывается данным
решением. Готовый коннектор выдается вендором при использовании лицензий типа Prod, для
целей демонстрации возможностей предоставляется тестовый коннектор на примере MS SQL:
−
Get/Send Data (GSD) запросы прямо из интерфейса к основным базам данных и вебсервисам;
−
API для внешних запросов (в т.ч. из веб-сервисов и MS Excel);
−
функционал интеграции / синхронизации данных между моделями;
−
WebAPI / RestAPI интеграции (https и wss) и OData Feed.
Пример необходимых параметров для настройки подключения через web-service приведен в
таблице.
Таблица 2 Пример необходимых параметров для настройки подключения через web-service
№
Параметры
Варианты/Описание
1
Адрес, куда отправляется тело Адрес
запроса
2
Метод запроса (POST/GET)
3
Дополнительные
GET
заголовки Content-Type: application/json
запроса
20
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
№
4
Параметры
Варианты/Описание
Описание метода авторизации NTLM – протокол сетевой аутентификации Microsoft
(логин-пароль или токен, ntlm и
т.п.)
5
Данные для авторизации
Логин: ХХХ
Пароль: YYY
6
Подтверждение наличия доступа ! Подтверждение выдается техническим специалистом
сервера «Оптимакрос» в целевую Оптимакрос, производящим запрос через утилиту
систему (доступ к серверу через Telnet к целевому серверу по порту.
определенный порт)
!! Telnet позволяет определить наличие доступа к
целевому серверу по порту, но не гарантирует доступ в
саму систему.
7
Подтверждение наличия доступа ! Подтверждение выдается техническим специалистом
к
таблице,
отчету,
витрине «Оптимакрос»,
данных и т.п. целевой системы
настраивающий
тестовый
интеграционный скрипт на основании данных текущей
анкеты.
8
Тело запроса (может отличаться в ! Например, для GET-запроса данных - сам запрос
зависимости от метода запроса и вшивается
других параметров)
в
ссылку
(пример
запросы
см.
в
Приложении 7.1)
!! При отправке данных тело запроса может быть в
виде json (или другого типа) с данными.
!!! При интеграциях с БД запросом являются SELECT,
INSERT и т.п.
9
Ответ
на
запрос
(может Пример при успехе/при неуспехе см. в Приложении 7.1
отличаться в зависимости от
метода запроса, типа интеграции
и целевой системы)
Подключение настраивается с помощью готовых интеграционных модальных окон в
интерфейсе «Оптимакрос» в меню «Макросы» -> «Интеграции: Получить/Отправить».
21
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 11 – Модальное окно для ввода основных параметров при подключении к Analysis Services (SSAS)
При необходимости трансформации данных в процессе загрузки данных можно добавить
ETL-скрипт.
Рисунок 12 – Модальное окно для добавления ETL-скрипта
В разделе «При соединении» добавляется коннектор, а в разделе «При загрузке» задается
мульткуб-приемник в случае получения данных.
22
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 13 – Выбор приемника данных в системе «Оптимакрос»
3.4 Интеграционные скрипты
Интеграционные скрипты применяются для интеграции с системами, с которыми ранее не
было интеграций, а также при необходимости трансформации данных в процессе приема данных.
ИС Оптимакрос поддерживает встроенные скрипты на основе синтаксиса и возможностей языка JS
(JavaScripts) и дополнительных методов работы с интерфейсом и функционалом Оптимакрос.
Скрипты реализуют концепцию: все, что возможно реализовать в системе в рамках
пользовательского функционала – может быть автоматизировано макросом/скриптом, а также
обогащено возможностями JS:
−
ETL-скрипты для обработки данных (Extract Transform Load);
−
концепция Staging Layer (сохранение сырых данных или первичных данных, собранных
из источника, для последующей обработки);
−
интеграция с основными базами данных: MS SQL, Oracle DB, PostgreSQL и т.д.;
−
интеграция с шинами данных;
−
интеграция с BI-платформами;
−
интеграция с более1,5 тыс. веб- и ETL-сервисами;
−
кастомизированные интеграции с любыми платформами и приложениями;
−
интеграции через ODBC, OLEDB, JDBC и SFDC.
При интеграции используется уже имеющийся интеграционный скрипт из библиотеки
скриптов, с указанием в нем кастомизированных настроек, либо разрабатывается новый скрипт
специально для данного источника данных, платформы/системы или для конкретной версии (если
готовые скрипты и коннекторы по какой-то причине не подходят). Для разработки скрипта
проводится анализ и согласование формата и параметров передачи данных, которые указываются
в документации по функциональным требованиям к интеграции.
23
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
В интеграционном скрипте прописываются все необходимые параметры.
Таблица 3 Пример параметров, прописывающихся в интеграционном скрипте
№
Параметры
1
Адрес подключения
2
Данные
3
Варианты/Описание
http://134.193.45.129/lgi/Service.svc/Rest/Data_test/ModelGeneric
для Логин: ХХХ
авторизации
Пароль: YYY
Наименование
«Импорт факта_test»
приемника
4
Измерения приемника
«Num 10000»/«Months»/«ts.2020»
5
Сопоставление колонок "ПериодПроводки": "ПериодПроводки",
данных из источника с "КодСтатьиЗатрат": "КодСтатьиЗатрат",
формой приемника
"КодЦФО": "КодЦФО",
"КодПродукта": "КодПродукта"
6
Порядок
Например, нумерация всех транзакций одного месяца с
трансформации
помощью #id
загружаемых данных
3.5 WebAPI сервисы на базе скрипта экспорта/импорта
Для интеграции можно использовать уже имеющийся интеграционный скрипт – ядро
экспорта/импорта из библиотеки скриптов, который настраивается для работы в качестве вебсервиса, что позволяет по инициативе внешних систем выгружать и загружать данные из/в систему
«Оптимакрос» с помощью HTTP запросов. WebAPI поддерживает GET и POST запросы.
Необходимо создать настроечный скрипт. В нем прописать настройки логирования.
Логирование встроено в скрипт экспорта/импорта и не требует отдельного ядра. Без логирования
очень сложно узнать статус подключения и результат работы скрипта.
Администратор воркспейса настраивает веб-сервис по инструкции и устанавливает в качестве
скрипта-обработчика запросов созданный настроечный скрипт.
Если воркспейс и «Логин-центр» установлены на одном сервере, то из воркспейса к самому
себе нужно обращаться по http, в остальных случаях по https.
3.5.1 Аутентификация
Для взаимодействия с WebAPI сервисами, клиент должен передать токен пользователя для
аутентификации. Токен передается как значение HTTP заголовка Authorization.
24
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Токен пользователя – это уникальная секретная строка, которую можно получить в профиле
пользователя через «Логин-центр» (Create Named Token). Токен может быть создан только
администратором ЛЦ и имеет ограничение по времени жизни, которое можно выбрать при его
создании.
Строго не рекомендуется использовать токен обычного пользователя. Для взаимодействия с
системой необходимо создать специального технического пользователя с ограниченными правами
доступа только к тем данным, которые нужны.
3.5.2 Запрос данных
Запрос данных из системы Оптимакрос осуществляется с помощью HTTP-запросов:
1) Через GET-запросы можно получить содержимое представления справочника или
мультикуба без возможности применить дополнительные настройки. Отправку запросов
можно делать через адресную строку из браузера или через ПО Postman, которое позволяет
отправлять произвольные HTTP запросы.
Формат GET-запроса:
url?type=multicube&name=entity_name&view=view_name&outputType=dictionary
Таблица 4 Параметры GET-запроса
№
1
Параметры
url
–
Варианты/Описание
адрес https://ws116.optimacros.com/api/v1/service/my_service
подключения
где my_service – название веб-сервиса, к которому отправляется
запрос. Веб-сервис создан на воркспейсе ws116
2
type – тип источника
Доступные значения: multicube, om_multicube и list
3
name – наименование Наименование справочника или мультикуба
источника
4
view – наименование Наименование представления справочника или мультикуба.
представления
Можно не указывать, если используется представление по
умолчанию.
5
outputType – формат dictionary – вывод словарем, где каждая строчка содержит
выходных данных
пару заголовок: значение;
array – построчный вывод, где первая строка – массив
заголовков, каждая следующая строка – массив значений.
Если параметр не указан или не определен, данные выводятся в
построчном формате.
25
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
2) Через POST-запросы можно получить содержимое представления справочника или
мультикуба, применив дополнительные настройки (например, формулу фильтрации). Тип
данных запроса – application/json.
Пример тела POST-запроса:
{
"SRC": {
"TYPE": 'LIST',
"PARAMS": {
"NAME": 'l1'
}
},
"DEST": {
"TYPE": 'OM_WEB_SERVICE_PASSIVE',
"PARAMS": {
"OUTPUT_TYPE": "DICTIONARY",
"COLUMN_MAP": [],
"REQUEST_BODY": {}
}
}
}
В источнике указывается откуда забирать данные. Приёмник – служебный, он вернёт
данные клиенту веб-сервиса. Параметр OUTPUT_TYPE настраивается таким же образом, как и
в GET-запросе.
Для отладки можно использовать скрипт экспорта/импорта, где источник –
OM_WEB_SERVICE_ACTIVE, или ПО Postman, которое позволяет отправлять произвольные
HTTP-запросы. В случае использования скрипта тело POST запроса является частью настроек
скрипта экспорта/импорта. Источник будет отправлять запросы к веб-сервису и забирать
данные. Это как обычный источник для 1С, только для Оптимакрос. Таким образом, скрипт с
настроенным
приемником
OM_WEB_SERVICE_ACTIVE сделает
запрос
к
веб-сервису
«Оптимакрос», который запустит обработчик – скрипт экспорта/импорта на своей стороне в
режиме веб-сервиса. OM_WEB_SERVICE_ACTIVE отдает чистый массив строк. Этот механизм
можно использовать для межмодельных интеграций.
3.5.3 Получение данных
Ответ от веб-сервиса шаблонизирован и имеет следующий формат:
{
"type": "ТИП_СООБЩЕНИЯ",
"params": {}
}
Таблица 5 Параметры ответа от веб-сервиса
№
Параметры
1
type – тип сообщения
Варианты/Описание
Возможные типы сообщений:
− ERROR – сообщение об ошибке и ее описанием;
26
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
№
Параметры
Варианты/Описание
− REQUEST_CREATED – запрос успешно зарегистрирован;
− RESPONSE – ответ с запрашиваемыми данными;
− REQUEST_STATUS – статус обработки запроса.
2
params
–
набор Набор атрибутов зависит от установленного типа сообщения.
атрибутов
После отправки запроса к веб-сервису в ответе будет получено JSON-сообщение о глобальной
ошибке ERROR или успешной регистрации запроса REQUEST_CREATED:
{
"type": "REQUEST_CREATED",
"params": {
"id": "5f49224c-d8fe-404b-a99d-4d42aae224bd",
"responseToken": "08431e675b09183e285b414b92668acdda87594fa2e7339a0f1337f9ae782
641"
}
}
Таблица 6 Параметры ответа при успешной регистрации запроса
№
1
Параметры
id
–
Варианты/Описание
открытый Уникальный номер, под которым запрос зарегистрирован в
уникальный номер
системе. По этому номеру необходимо обращаться к веб-сервису
для получения ответа.
2
responseToken
– Уникальный ключ для получения ответа на запрос. Приходит в
уникальный секретный ответе при регистрации запроса только один раз. Без него нельзя
ключ
получить ответ с запрашиваемыми данными.
После того как запрос успешно зарегистрирован в системе и данные о запросе получены,
можно запросить у веб-сервиса статус обработки запроса или попытаться получить результат.
Проверка статуса обработки запроса
Для проверки статуса обработки запроса нужно отправить HTTP GET/POST запрос к вебсервису по адресу /api/v1/service/my_service/status/id, где my_service – имя веб-сервиса, id –
полученный идентификатор при регистрации запроса.
Запрос статуса не требует передачи responseToken, так как не содержит конфиденциальной
информации, а только содержит значение статуса зарегистрированного запроса.
В ответе будет получен JSON-сообщение с глобальной ошибкой или типом REQUEST_STATUS:
{
"type": "REQUEST_STATUS",
"params": {
"id": "79bf374e-c7ab-4aef-877e-210fcd2ee7cb",
"status": "SUCCESS"
}
}
27
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
где id – идентификатор зарегистрированного запроса,
status – статус зарегистрированного запроса.
Возможные статусы обработки запроса:
−
NONE – этот статус запрос получает при создании. Данный статус можно увидеть только
в исключительных внештатных ситуациях, так как до передачи id запроса клиенту в
сообщении REQUEST_CREATED запрос уже передан в очередь на обработку;
−
QUEUED – запрос ожидает обработку;
−
IN_PROGRESS – запрос находится в обработке;
−
SUCCESS – запрос обработан и можно получить результат;
−
FAILED – обработка статуса завершилась с ошибкой.
Данный API получения статуса является дополнительным вспомогательным инструментом и
не обязателен к использованию, так как после регистрации запроса можно сразу работать с API
получения результата.
На основе API получения статуса можно построить алгоритм работы следующим образом:
1) Зарегистрировать запрос в системе.
2) Запросить в цикле статус обработки запроса пока не будет получен статус завершения
обработки.
3) Однократно запросить ответ с результатом.
Запрос ответа с результатом
Для запроса ответа с результатом нужно отправить HTTP GET/POST запрос к веб-сервису по
адресу /api/v1/service/my_service/response/id, где my_service – имя веб-сервиса, id – полученный
идентификатор при регистрации запроса.
Для получения ответа необходимо передать уникальный секретный ключ responseToken. Для
передачи ключа можно использовать один из вариантов:
1) Через POST параметр с именем responseToken при использовании способа передачи
через application/x-www-form-urlencoded/multipart/form-data.
2) Через Cookie заголовок с именем responseToken.
3) Передать параметр responseToken в URL адресе (не рекомендуется использовать, так как
этот способ является небезопасным), например
/api/v1/service/my_service/response/id?responseToken=some.
В ответе будет получено сообщение о глобальной ошибке или информацией о результате
запроса, в том числе если результат работы запроса имеет ошибку.
Запрос находится в обработке:
{
"type": "RESPONSE",
"params": {
"status": "IN_PROGRESS"
}
}
28
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Запрос успешно обработан без ошибок:
{
"type": "RESPONSE",
"params": {
"status": "SUCCESS",
"files": [],
"data": {
"param1": "some123"
}
}
}
При обработке запроса возникла ошибка:
{
"type": "RESPONSE",
"params": {
"status": "FAILED",
"error": {
"message": "Model access denied"
}
}
}
Таблица 7 Параметры сообщения типа RESPONSE
№
1
Параметры
status
–
Варианты/Описание
статус Параметр всегда присутствует в сообщении.
обработки запроса
− Возможные значения статуса описаны выше в разделе
Проверка статуса обработки запроса.
2
error
–
описание Может присутствовать при ошибочных статусах, например при
ошибки
3
статусе FAILED.
files – информация о Информация о идентификаторах файлов, которые скрипт
переданных файлах
обработчик зарегистрировал для скачивания клиентом. По
полученным идентификатором клиент может скачать файлы
используя отдельную службу скачивания файлов.
4
data – массив данных
Данные,
которые
были
переданы
в
ответе
скриптом-
обработчиком при успешном завершении обработки запроса.
Обработчик – скрипт экспорта/импорта возвращает данные в ключе requestedData в
построчном формате:
{
"type": "RESPONSE",
"params": {
"status": "SUCCESS",
"files": [],
"data": {
"requestedData": [
[
'Header 1',
'Header 2'
29
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
],
[
'value 1',
'value 2'
],
...
[
'value n',
'value n'
]
]
}
}
}
Или в формате словаря, если выбран тип выходных данных outputType – DICTIONARY:
{
"type": "RESPONSE",
"params": {
"status": "SUCCESS",
"files": [],
"data": {
"requestedData": [
{
'Header 1': 'value 1',
'Header 2': 'value 2'
},
...
{
'Header 1': 'value n',
'Header 2': 'value n'
}
]
}
}
}
Ожидание ответа с результатом
У сформированного ответа на запрос пользователя есть время жизни. Оно может быть
настроено администратором в панели управления воркспейсом на странице /admin/apiservices/settings через параметр Response time to live, по умолчанию составляет 30 минут (1800
сек). После завершения обработки запроса будет включен таймер и по достижению таймером
времени жизни, при запросе к службе получения ответа будет выдаваться ошибка. То есть у клиента
по умолчанию есть 30 минут на скачивание ответа после завершения обработки запроса.
Ответ на запрос о результате, по умолчанию не имеет механизма ожидания завершения
обработки зарегистрированного запроса клиента. Это означает, что будет возвращено текущее
состояние запроса клиента и предполагается, что для получения информации с ответом от скрипта
обработчика необходимо циклично с некоторой паузой (например, 2 секунды) производить запрос
к веб-сервису для получения результата в ожидании статуса завершения обработки. Такой
архитектурный подход к получению результата позволяет не использовать долгие keep alive
соединения, что делает получение результата более стабильным, так как в случае провала запроса
30
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
по сетевым причинам, достаточно перейти к следующей итерации и повторить еще раз тот же
запрос на получение результата, не беспокоясь о разрывах по таймаутам на различном сетевом
оборудовании.
Для клиентов, которые не могут интегрироваться через циклические запросы в ожидании
результата,
можно
использовать
дополнительный
параметр
URL
адреса
wait:
api/v1/service/my_service/response/id?wait=60
В параметре wait указывается время в секундах, на которое ответ на HTTP запрос о результате
зарегистрированного клиентского запроса будет поставлен на сервере на паузу с указанным
в wait временем ожидания пока не будет получен завершающий статус на запрос клиента.
Максимальное
значение wait ограничено
настройками
в
панели
управления
воркспейсом /admin/api-services/settings через параметр The maximum value of the «wait»
parameter. По умолчанию 10 минут (600 секунд). При превышении значения, wait на сервере будет
обрезан до максимального значения из настроек.
Протокол глобальных ошибок
Сообщения с глобальными ошибками могут быть получены в ходе неудачной
аутентификации пользователя или некорректной передачи параметров HTTP запросов, а также при
внутренних проблемах служб.
{
"type": "ERROR",
"params": {
"message": "Service 'test1243' not found",
"trace": "some"
}
}
В ответ будет получено JSON сообщение с типом ERROR и набором параметров:
−
message – сообщение об ошибке;
−
trace – содержит дополнительные сведения об ошибке для разработчиков (может
отсутствовать в сообщении).
3.5.4 Загрузка данных
Через POST-запросы можно загрузить данные в систему Оптимакрос с произвольными
настройками. Тип данных запроса – application/json.
Таблица 8 Параметры POST-запроса
№
1
Параметры
url
–
подключения
адрес
Варианты/Описание
− https://ws116.optimacros.com/api/v1/service/my_service
где
my_service –
название
веб-сервиса, к которому
31
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
№
Параметры
Варианты/Описание
отправляется запрос и этот веб-сервис создан на воркспейсе
ws116
2
SRC
–
настройки Всегда служебный источник OM_WEB_SERVICE_PASSIVE.
источника
3
4
DEST
–
настройки Приемник
настраивается
как
в
обычном
скрипте
приёмника
экспорта/импорта.
DATA – массив данных
Название этого ключа можно изменить с помощью параметра
скрипта экспорта/импорта VALUE_KEY для источника.
Формат загружаемых данных:
[
{
'field 1':'value 1',
'field 2':'value 1',
},
{
'field 1':'value 2',
'field 2':'value 2',
},
...
{
'field 1':'value n',
'field 2':'value n',
}
]
Пример тела запроса:
{
"SRC": {
"TYPE": 'OM_WEB_SERVICE_PASSIVE',
"PARAMS": {
}
},
"DEST": {
"TYPE": 'LIST',
"PARAMS": {
"NAME": 'my_list',
"TRANSFORM": {
"CHARSET": "UTF-8",
"SRC_TO_DEST_COLUMN_MAP": {
"With": "Item Name"
},
"DIMENSIONS": {
},
"CUSTOM_COLUMNS": [],
"SRC_COLUMN_PREPARE_DATA_MAP": {}
},
}
},
"DATA": [
{
32
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
"With": 'a'
},
{
"With": 'b'
},
{
"With": 'c'
}
]
}
Здесь описаны параметры, которые передаются в запросе к веб-сервису. С этими
параметрами будет запущен скрипт экспорта/импорта в модели, в которую загружаются данные. В
данном примере в справочник с именем my_list загружаются данные [a, b, c] в колонку With.
Для отладки можно использовать скрипт экспорта/импорта или ПО Postman, которое
позволяет отправлять произвольные HTTP запросы. Скрипт настраивается на стандартный
приёмник WEB_SERVICE. Он отправит данные веб-сервису, который запустит обработчик – скрипт
экспорта/импорта в режиме веб-сервиса на своей стороне. Обработчик примет данные в приемник
DEST, который указан в запросе.
Отслеживать статус выполнения запроса можно так же, как описано в пункте 3.5.3.
33
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4. ПРИМЕРЫ ИНТЕГРАЦИЙ
Система Оптимакрос поддерживает интеграции с различными базами данных, учетными и BI
системами1.
4.1 Интеграции между моделями Оптимакрос
4.1.1 Оптимакрос OLAP
В системе предусмотрен функционал импорта данных между аналогичными по измерениям
мультикубам внутри одной модели, а также между моделями. Обмен данными настраивается в
интерфейсе Оптимакрос в меню «Макросы» -> «Интеграции: Получить/Отправить» -> Оптимакрос
OLAP либо в меню панели управления мультикуба «Данные» › «Импорт из мультикуба».
Мультикуб-источник и мультикуб-приемник должны быть идентичны по всем измерениям.
Сопоставление элементов измерений в мультикубе-источнике и мультикубе-приемнике
происходит в первую очередь по коду элементов измерений (Code), при отсутствии кодировки в
измерении - по системному наименованию (Item Name).
Основные параметры подключения:
−
тип передачи данных (Получение данных/ Отправку данных);
−
исходную модель (или целевую модель при Отправке данных);
−
исходный мультикуб (или целевой мультикуб при Отправке данных);
−
параметры импорта по измерениям.
Дополнительные параметры:
1
−
исключить импорт нулевых (пустые) значений;
−
включить в импорт значения консолидирующих элементов;
−
сохранить действие как макрос «Импорт мультикуба».
В Приложении 7.2 приведен список поддерживаемых БД
34
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 14 – Модальное окно для настройки импорта данных между моделями Оптимакрос
При необходимости параметры импорта можно скопировать в текстовом формате JSONзапроса и настроить импорт по запросу пользователя через кнопку на панели инструментов или
дашборде.
4.1.2 Импорт из справочника
В системе реализован функционал обмена данными между справочниками внутри одной
модели и между моделями для обеспечения единства и целостности мастер-данных.
Данный
функционал
позволяет
создать
отдельную
MDM/НСИ
(Master
Data
Management/Нормативно-справочная информация) модель, где происходит централизованное
управление частью данных. Частично это применяется в некоторых проектах, где MDM-функция
нормализации данных выполняется Оптимакрос как мастер-системой.
Обмен данным между справочниками настраивается аналогичным образом, как и между
мультикубами в модальном окне.
35
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 15 – Модальное окно для настройки импорта из справочника
4.2 Пример интеграций с БД в Оптимакрос OLTP
Данная интеграция предусмотрена для забора данных из БД OLTP, которая встроена в контур
системы. Это позволяет использовать упрощенные коннекторы, не вводить данные для входа
многократно. Данное подключение настраивается напрямую в интерфейсе Оптимакрос. Требуется
заполнить следующие параметры:
−
сервер (Хост);
−
данные для авторизации;
−
OLTP Источник (База данных);
−
SQL/MDX Запрос;
−
Proxy Server;
−
идентификатор связанного сервера;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник.
36
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 16 – Модальное окно для настройки импорта данных из Оптимакрос OLTP
Рисунок 17 – Базы данных Оптимакрос OLTP в контуре системы
37
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4.3 Пример интеграции с mySQL/MariaDB
4.3.1 mySQL
mySQL – система управления реляционными базами данных с открытым исходным кодом
(СУРБД) с моделью клиент-сервер, наиболее распространенное ПО, используемое для создания и
управления базами данных на основе реляционной модели.
В Оптимакрос реализован готовый коннектор для подключения к БД mySQL. Для
подключения в модальном окне требуется заполнить следующие параметры:
−
сервер (Хост);
−
данные для авторизации;
−
база данных;
−
SQL запрос;
−
Proxy Server;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник.
Рисунок 18 – Модальное окно для настройки подключения к mySQL
38
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
БД mySQL может выступать в качестве OLTP, куда загружаются данные из учетной системы с
детализацией до транзакций. Часто транзакции необходимо агрегировать или обогатить
дополнительными аналитиками для формирования отчетности. В данном случае можно применить
следующую схему передачи и обработки данных: загрузка первичных данных в БД mySQL ->
трансформация данных в промежуточном мультикубе Оптимакрос -> экспорт данных в OLTP
хранилище данных -> последующее использование сводных данных -> формирование отчетности.
Рисунок 19 – Схема трансформации первичных данных в промежуточном мультикубе в системе «Оптимакрос»
4.3.2 MariaDB
Для подключения к БД MariaDB требуется заполнить следующие параметры:
−
сервер (Хост);
−
данные для авторизации;
−
база данных;
−
SQL запрос;
−
Proxy Server;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник.
39
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 20 – Модальное окно для настройки подключения к MariaDB
4.4 Пример интеграции с MS SQL Server/ Analysis Services
4.4.1 MS SQL Server
Типовой коннектор подключения к MS SQL настраивается через модальное окно в
интерфейсе системы. Необходимо заполнить следующие параметры:
−
сервер (Хост): 78.47.254.183;
−
данные для авторизации:
o
o
USER: Test_user;
PASSWORD: bnhJVHgwQUhxT0hZR1ZyMHVpUnk=;
−
база данных: Test_DB;
−
SQL Запрос: SELECT * FROM [Проекты_3D_DOC_JS];
−
Proxy Server: -;
−
ELT-скрипт (при необходимости): -;
−
мультикуб-приемник: «Проекты 3D импорт».
40
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 21 – Модальное окно для настройки подключения MS SQL Server
MS SQL может выступать в качестве промежуточной таблицы. Например, в системе создается
обменная таблица SQL. Оптимакрос имеет права только на чтение обменной таблицы SQL.
Реализуется задание по выгрузке операционных данных с измерениями в таблицу SQL. Оптимакрос
забирает данные из таблицы SQL в агрегированном виде, необходимом для планирования и
отчетности. При этом пользователь в любой момент может развернуть агрегированные данные до
транзакций, применив функционал Drill Down to Transaction.
41
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 22 – Схема интеграции посредством промежуточной таблицы MS SQL
4.4.2 Analysis Services
Типовой коннектор подключения к Analysis Services через модальное окно в интерфейсе
системы. Необходимо заполнить следующие параметры:
−
сервер (Хост): formInfo.host;
−
порт: formInfo.port;
−
данные для авторизации:
o
o
USER: formInfo.user;
PASSWORD: formInfo.password;
−
идентификатор связаннного сервера: formInfo.linked_server_id;
−
MDX Запрос: formInfo.mdx_query ;
−
Proxy Server: -;
−
ELT-скрипт (при необходимости): -;
−
мультикуб-приемник: «Импорт_formInfo».
42
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 23 – Модальное окно для настройки подключения к Analysis Services (SSAS)
4.5 Пример интеграции с PostgreSQL
Для подключения требуется заполнить следующие параметры:
−
сервер (Хост): 127.0.3.1;
−
порт: 5432;
−
данные для авторизации:
o
o
USER: Test_user;
PASSWORD: 3JZ2uNOI1ktzTxd4LlmK;
−
база данных (Инстанс): Test_DB;
−
SQL Запрос: test_sql_query;
−
Proxy Server;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник: «Импорт_test».
43
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 24 – Модальное окно для настройки подключения к PostgreSQL
4.6 Пример интеграции с Oracle Database
Требуется заполнить следующие параметры:
−
сервер (хост);
−
порт;
−
данные для авторизации;
−
база данных (Инстанс);
−
SQL Запрос;
−
proxy Server;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник.
44
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 25 – Модальное окно для настройки подключения к Oracle Database
4.7 Пример интеграции с Mongo DB
Требуется заполнить следующие параметры:
−
сервер (хост);
−
порт;
−
данные для авторизации;
−
база данных (Инстанс);
−
SQL Запрос;
−
proxy Server;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник.
45
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 26 – Модальное окно для настройки подключения к Mongo DB
4.8 Пример интеграции с шиной данных
Для интеграции с шиной данных применяются следующие способы:
1. Интеграция через коннектор.
2. Поддерживается обмен данными в плоском формате через сетевую папку.
Рисунок 27 – Схема интеграции с шиной данных
46
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4.9 Пример интеграции через файл на FTP/SMB
Требуется заполнить следующие параметры:
−
сервер (хост): ftp.test.com;
−
порт: 3001;
−
данные для авторизации:
o
o
USER: ftpuser;
PASSWORD: !Jop0%5fF1L3@W7ueZC0;
−
папка (Address): ftp/incoming;
−
файл (Имя файла): 2021-03-03 Data;
−
формат файла: CSV;
−
proxy Server;
−
архивная папка: ftp/archive;
−
папка с отчетами: ftp/reports;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник: «Импорт_Data.
Рисунок 28 – Модальное окно для настройки получения данных через файл из сетевой папки
47
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4.10
Пример интеграции с открытыми Веб-источниками
4.10.1 Открытые Веб-источники
Требуется заполнить следующие параметры:
−
веб-адрес: 'http://www.cbr.ru/scripts/XML_daily.asp';
−
ключ/Логин и Пароль;
−
Token/Логин и Пароль;
−
API запрос;
−
ETL-скрипт (при необходимости);
−
мультикуб-приемник: «Импорт курсов».
Рисунок 29 – Модальное окно для настройки подключения к открытым Веб-источникам
4.10.2 Сервисы Яндекс
Требуется заполнить следующие параметры:
−
веб-адрес: "https://api.appmetrica.yandex.ru/stat/v1/data";
−
ключ/Логин и Пароль: -;
−
token/Логин и Пароль: formInfo.token;
−
API запрос: formInfo.api_query;
−
ETL-скрипт (при необходимости): -;
48
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
−
мультикуб-приемник: «Импорт_formInfo».
Рисунок 30 – Модальное окно для настройки подключения к Яндекс App Метрика
4.11
Примеры интеграций с учетными системами
4.11.1 SAP ERP
Для интеграции с SAP могут применяться различные способы интеграции, так как платформа
SAP обладает разнообразным набором способов интеграции с другими системами. Системы могут
обмениваться как данными (файлами в различных форматах), так и запросами (напрямую между
системами, так и через промежуточное хранилище). Например:
1. Стандартом для обмена данных с SAP ERP является использование шины данных SAP
PO (Process Orchestration, в ранних версиях - PI или XI]. Оптимакрос может отправлять
https-запрос на получение данных с определенными параметрами. Данные приходят в
виде iDocs в формате XML.
2. В некоторых случаях могут быть использованы отдельные утилиты - готовые решения
для интеграции с SAP, (например, THEOBALD). У этих утилит есть готовые ERP коннекторы, позволяющие обратиться к таблице SAP и применить параметры, по
которым нужно выгружать данные. Эти утилиты могут отдельно лицензироваться.
Утилиты используются в случае уже сложившегося у клиента опыта их использования
для других интеграций.
3. Поддерживается обмен данными в плоском формате через сетевую папку. Например,
SAP ERP может выкладывать CSV-файлы данных, а Оптимакрос может их забирать.
49
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
4. Возможно использование запроса через RFC функции. RFC-запросы могут отправляться
непосредственно к таблицам SAP (не является рекомендованным подходом). RFCутилиты создаются на языке .net или Phyton под конкретную задачу.
5. Также данные SAP ERP могут быть получены из хранилища данных SAP BW через
механизмы OpenHub.
Выбор стратегии реализации интеграции SAP и Оптимакрос зависит от нескольких факторов.
Ключевыми факторами в порядке приоритета являются:
1. Технические требования клиента к процессу интеграции (отказоустойчивость,
формирование логов, хранения копии данных и пр.).
2. Бизнес-требования клиента к процессу интеграции (наборы данных и метаданных,
периодичность обмена данными и пр.).
3. Сложившаяся в компании практика обмена данными между другими системами и SAP.
4. Требования к дальнейшей эксплуатации платформы (возможность строить интеграции
аналитиком или программистом).
5. Удобство настройки и обслуживания.
4.11.2 1С ERP
Для интеграции с 1С могут применяться следующие способы интеграции:
1. Интеграция через OData коннектор.
2. Поддерживается обмен данными в плоском формате через сетевую папку. Например,
1С ERP может выкладывать CSV-файлы данных, а Оптимакрос может их забирать.
Обычно выделяется два потока данных:
−
транзакционные данные;
−
мастер-данные учетной системы.
Но в некоторых случаях при загрузке транзакционных данных из учетной системы
применяется подход, где из полученных транзакционных данных выделяются новые элементы
справочников, отсутствующие в системе и сразу обновляются.
4.12
Примеры прочих интеграций
4.12.1 1C СЭД
Интеграция Оптимакрос – 1С СЭД настраивается через метод запроса POST. Обмен данными
выполняется в текстовом формате обмена данными JSON-запросов.
Система Оптимакрос может передавать в 1С СЭД сформированные бюджетные лимиты, а
также их корректировку, и получать от СЭД информацию по запланированным договорам и
резервам для формирования прогноза.
50
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Для обмена данными согласуются следующие параметры:
Таблица 9 Пример параметров представления данных в JSON-запросе
№
Параметры
1
Кодировка
2
Разделитель
Варианты/Описание
− UTF-8/ WINDOWS-1251
дробной
части точка
десятичных чисел
3
Разделитель
тысячных
разрядов нет
десятичных чисел
4
Признак отрицательного числа
префикс минус
5
Разделитель строк
DOS/Windows (LF)
6
Мэппинг колонок
Устанавливается сопоставление данных источника
и приемника.
4.12.2 Пример интеграции с Power BI
Интеграция с Power BI реализуется через промежуточную таблицу MS SQL, где БД выступает
в роли источника или приемника для Оптимакрос. Интеграция с MS SQL настраивается через
коннектор.
4.13
Примеры интеграции через WebAPI сервисы на базе скрипта
экспорта/импорта
В данных примерах описан настроечный скрипт для ядра экспорта/импорта. Скрипт может
быть запущен из модели на любом воркспейсе в системе Оптимакрос.
4.13.1 Запрос данных через GET-запрос
Скрипт отправляет GET-запрос к веб-сервису с именем my_service, который находится на
воркспейсе ws116. В запросе передаются параметры type=om_multicube&name=my_mc и
заголовок Authorization с токеном аутентификации. То есть данные запрашиваются из мультикуба
с именем my_mc в модели на ws116. Скрипт возвращает данные в формате RAW_JSON, который
указан в параметре DEST.
const ENV = {
SHOW_ERROR_STACK: true,
SHOUTER_LVL: "DEBUG",
SHOUTER_LOGGER_LVL: "DEBUG",
CORE: "core_export_import",
LOGGING_TO_MULTICUBE: {
DISABLE: false,
SCRIPT_NAME: "GET MC",
MULTICUBE: "Script logging",
MULTICUBE_VIEW: "4S",
51
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
SCRIPT_LIST: "Scripts",
SCRIPT_LIST_VIEW: null,
},
SRC: {
TYPE: "OM_WEB_SERVICE_ACTIVE",
PARAMS: {
CONNECTION: {
URL:"https://ws116.optimacros.com/api/v1/service/my_service",
URL_PARAMS: `type=om_multicube&name=my_mc`,
HEADERS: {
"Content-Type": "application/json",
'Authorization': 'Bearer named_token',
}
},
}
},
DEST: {
TYPE: "RAW_JSON",
PARAMS: {
}
}
};
om.common.resultInfo()
.actionsInfo()
.makeMacrosAction(ENV.CORE)
.appendAfter()
.environmentInfo()
.set('ENV', ENV);
4.13.2 Запрос данных через POST-запрос
Скрипт отправляет POST-запрос к веб-сервису с именем my_service, который находится на
воркспейсе ws116. В заголовке Authorization передается токен аутентификации. В объекте
POST_ENV описаны параметры, которые передаются в запросе. Именно с этими параметрами будет
запущен скрипт экспорта/импорта в модели на ws116. То есть данные запрашиваются из
справочника с именем my_list. Скрипт возвращает данные в формате RAW_JSON, который указан
в параметре DEST.
const POST_ENV = {
SRC: {
TYPE: 'LIST',
PARAMS: {
NAME: 'my_list',
}
},
DEST: {
TYPE: 'OM_WEB_SERVICE_PASSIVE',
PARAMS: {
COLUMN_MAP: [],
REQUEST_BODY: {},
}
}
};
const ENV = {
52
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
SHOW_ERROR_STACK: true,
SHOUTER_LVL: "DEBUG",
SHOUTER_LOGGER_LVL: "TRACE",
CORE: "core_export_import",
LOGGING_TO_MULTICUBE: {
DISABLE: false,
SCRIPT_NAME: "POST pull LIST",
MULTICUBE: "Script logging",
MULTICUBE_VIEW: "4S",
SCRIPT_LIST: "Scripts",
SCRIPT_LIST_VIEW: null,
},
SRC: {
TYPE: "OM_WEB_SERVICE_ACTIVE",
PARAMS: {
CONNECTION: {
URL:"https://ws116.optimacros.com/api/v1/service/my_service",
HEADERS: {
"Content-Type": "application/json",
'Authorization': 'Bearer named_token',
},
METHOD: 'POST',
REQUEST_BODY: POST_ENV
},
}
},
DEST: {
TYPE: "RAW_JSON",
PARAMS: {
}
}
};
om.common.resultInfo()
.actionsInfo()
.makeMacrosAction(ENV.CORE)
.appendAfter()
.environmentInfo()
.set('ENV', ENV);
4.13.3 Загрузка данных с использованием объекта POST_TEMPLATE
Для удобства настройки большую часть JSON-структуры (настройки веб-сервиса) можно
вынести в объект POST_TEMPLATE, который преобразуется в строку. Скрипт отправляет POSTзапрос к веб-сервису с именем my_service, который находится на воркспейсе ws116. В объекте
POST_TEMPLATE описаны параметры, которые передаются в запросе. Именно с этими параметрами
будет запущен скрипт экспорта/импорта в модели на ws116. В данном случае данные загружаются
из мультикуба с именем my_mc в модели, где запускается настроечный скрипт, в справочник с
именем my_list на ws116.
В примере также показано, что для передачи токена можно использовать базовые настройки
аутентификации AUTH. В этом случае токен нужно закодировать в формате base64 и указать в
параметре PASSWORD.
const POST_TEMPLATE = {
53
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
SRC: {
TYPE: 'OM_WEB_SERVICE_PASSIVE',
PARAMS: {
},
},
DEST: {
TYPE: 'LIST',
PARAMS: {
NAME: 'my_list',
TRANSFORM: {
CHARSET: "UTF-8",
SRC_TO_DEST_COLUMN_MAP: {
"With": "Item Name",
},
DIMENSIONS: {
},
CUSTOM_COLUMNS: [],
SRC_COLUMN_PREPARE_DATA_MAP: {},
},
},
},
};
const ENV = {
SHOW_ERROR_STACK: true,
SHOUTER_LVL: "DEBUG",
SHOUTER_LOGGER_LVL: "TRACE",
CORE: "core_export_import",
LOGGING_TO_MULTICUBE: {
DISABLE: false,
SCRIPT_NAME: "POST push LIST",
MULTICUBE: "Script logging",
MULTICUBE_VIEW: "4S",
SCRIPT_LIST: "Scripts",
SCRIPT_LIST_VIEW: null,
},
SRC: {
TYPE: "OM_MULTICUBE",
PARAMS: {
NAME: 'my_mc',
}
},
DEST: {
TYPE: "WEB_SERVICE",
PARAMS: {
CONNECTION: {
URL:"https://ws116.optimacros.com/api/v1/service/my_service",
URL_PARAMS: ``,
AUTH: {
TYPE: "basic",
USER: "email",
PASSWORD: "token encoded by base64",
},
HEADERS: {
"Content-Type": "application/json"
},
METHOD: 'POST',
},
COLUMN_MAP: [
{
FROM: 'With',
54
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
TO: 'With'
}
],
REQUEST_BODY: {
TEMPLATE: `${JSON.stringify(POST_TEMPLATE).slice(0, -1)}, "DATA": {VAR_ITEMS}}`,
}
}
},
};
om.common.resultInfo()
.actionsInfo()
.makeMacrosAction(ENV.CORE)
.appendAfter()
.environmentInfo()
.set('ENV', ENV);
55
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
5. ПОРЯДОК ВНЕДРЕНИЯ
5.1 «Простая интеграция» через excel/csv файлы
Этот способ интеграции в основном применяется на этапе прототипирования системы на
период разработки методологии обмена данных, но также применяется и как основной.
Рисунок 31 – Схема процесса внедрения «простой интеграции»
1. Из источника выгружаются данные в excel/csv файлы в том виде, в котором они
хранятся в системе. Рекомендуется обмен транзакционными данными.
2. На этапе бизнес-анализа производится настройка приемника в системе Оптимакрос.
Определяются загружаемые аналитики, данные, периодичность загрузки, проверки
после загрузки (checks), соответствия справочников (mappings) и преобразования
данных после загрузки, процедуры согласования загруженных данных при
необходимости (workflow). Все это настраивается посредством установки связей и
формул в Оптимакрос.
3. После анализа, при необходимости, на стороне источника добавляются/исключаются
аналитики данных и выгружается финальный шаблон данных в excel/csv файл.
4. Производится обработка файла, выгруженного из источника, и перекладка данных из
формата источника в формат приемника, который имеют свою разметку (__mapping).
5. Тестирование загрузки данных в приемник.
6. Разработка визуализации для процедуры импорта в виде дашбордов (dashboards) или
контекстных таблиц (context table) в системе Оптимакрос для удобства пользователей.
7. Передача первого прототипа в опытно-промышленную эксплуатацию клиенту.
8. Обработка замечаний UAT 1.
9. Обработка замечаний UAT 2.
10. Обработка замечаний UAT 3.
56
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
11. Подготовка инструкции по процессу интеграции для клиента.
5.2 Прямая автоматическая интеграция
Обычно автоматическая интеграция настраивается после успешного прохождения этапа
простой интеграции через CSV/XLSX, но иногда сразу настраивается автоматическая интеграция в
тестовой среде.
Рисунок 32 – Схема процесса внедрения прямой автоматической интеграции
1. Согласовывается способ интеграции.
2. Согласовывается формат данных.
3. Настраивается приемник в системе Оптимакрос.
4. Предоставляются параметры доступ для подключения к источнику данных. Параметры
заполняются в предоставленной форме «Карточка для тестовой интеграции» в
зависимости от способа интеграции. При отсутствии возможности подключения к
источнику данных напрямую создается промежуточная таблица, которая будет
являться источником данных для Оптимакрос.
Организуется процесс периодической выгрузки данных из источника в сетевую папку (для
проверки полноты и формата данных) либо обеспечивается возможность подключения
Оптимакрос к источнику данных напрямую.
На стороне Оптимакрос настраивается прямое подключение/коннектор/ интеграционный
скрипт/забор файла из сетевой папки, который обеспечивает загрузку данных в приемник.
3. Проводится тестирование и отладка интеграции на стороне Оптимакрос.
4. Проводится тестирование интеграции на стороне заказчика.
5. Обработка замечаний UAT 1.
6. Обработка замечаний UAT 2.
7. Обновление инструкции по процессу интеграции.
8. Передача интеграции в промышленную эксплуатацию.
57
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ПРИЛОЖЕНИЕ А
ПРИМЕРЫ ЗАПРОСОВ
Таблица 10 Примеры JSON-запросов
№
Параметры
1
Тело запроса (может отличаться [
в зависимости от метода запроса
Варианты/Описание
{
и других параметров)
"Guid_Company":
"eb617fbe-64e2-4521-8907-
cdba7e4ac874",
"Company": "ФК \"Спартак-Москва\"",
"RC_EDMS": "Медицина",
"Guid_RC_1C":
"85a9dbc0-1749-11ea-bad9-
005056011df3",
"RC_OM": "Медицина",
"Cost_Item_EDMC": "3.14.5.8 Прочие расходы",
"Guid_Cost_Item_OM": "3.14.5.8",
"Cost_Item_OM": "3.14.5.8 Прочие расходы",
"Season": "2020-2021",
"Guid_Budget_limit":
"c9eb3550-0738-4a82-99eb-
fd83ae0f5a0e",
"Budget_limit": 28900
},
{
"Guid_Company":
"eb617fbe-64e2-4521-8907-
cdba7e4ac874",
"Company": "ФК \"Спартак-Москва\"",
"RC_EDMS": "Медицина",
"Guid_RC_1C":
"85a9dbc0-1749-11ea-bad9-
005056011df3",
"RC_OM": "Медицина",
"Cost_Item_EDMC": "3.21.12 Прочие расходы на
управление",
"Guid_Cost_Item_OM": "3.21.12",
"Cost_Item_OM":
"3.21.12
Прочие
расходы
на
управление",
58
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
№
Параметры
Варианты/Описание
"Season": "2020-2021",
"Guid_Budget_limit":
"948f7249-7cfa-414f-a7ae-
74433f513d76",
"Budget_limit": 1108610
}
− ]
2
Ответ
на
запрос
(может Пример при успехе:
отличаться в зависимости от {
метода запроса, типа интеграции
"succes": true,
и целевой системы)
"errors": []
}
Например, при неуспехе:
{
"succes": false,
"errors": [
"Компании не существует"
]
}
59
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ПРИЛОЖЕНИЕ Б
ПОДДЕРЖИВАЕМЫЕ БД
Система Оптимакрос поддерживает интеграции с различными базами данных, учетными и BI
системами.
№
Поддерживаемые базы данных
Коннектор
Интеграционный скрипт
1
mySQL
V
V
2
MariaDB
V
V
3
MS SQL Server
V
V
4
Analysis Services
V
V
5
PostgreSQL
V
V
6
Oracle Database
V
V
7
Mongo DB
V
V
8
ESB (шина данных)
V
V
9
Elasticsearch
V
10
Hadoop
V
11
Spark
V
12
Vertica
V
13
ClickHouse
V
14
Cassandra
V
15
Memcached
V
16
EnterpriseDB
V
17
InterSystems Caché
V
18
CouchDB
V
19
Firebird
V
20
Ред База Данных
V
21
Hive
V
22
Splunk
V
23
Tmaxsoft Tibero
V
60
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
ПРИЛОЖЕНИЕ В
ТРЕБОВАНИЯ К ПРИЕМНИКУ/ИСТОЧНИКУ ДАННЫХ НА СТОРОНЕ
ОПТИМАКРОС
В1. Построение мультикуба-приемника в Оптимакрос
Структура мультикуба-приемника в Оптимакрос:
1. Измерения:
1.1. Измерение Num XXX (нумерованный справочник, сабсет/подвыборка нумерованного
справочника);
1.2. Измерение времени (в зависимости от требований могут быть года, месяца, дни;
рекомендуется делать мультикуб импорта на сабсете/подвыборке, сделанном специально
для импорта);
1.3. Кубы.
2. Функциональные разделы мультикуба-приемника:
2.1. Загружаемые данные
2.1.1.Кубы, в которые загружаются данные (для сумм, количества, различных аналитик,
даты и т.д);
2.1.2.Данные кубы имеют следующие форматам: Text, Number или Date.
2.2. Распознавание загруженных данных (ETL с помощью формул):
2.2.1.Кубы с формулами FINDBYNAME() и FINDBYCODE() для распознавания загруженных
данных по справочникам системы источника/приемника;
2.2.2.Имеют формат измерений.
2.3. Расчетные:
2.3.1.Кубы, необходимые для расчетов.
2.3.2.Могут иметь разные форматы: Boolean, Number, формат измерений.
2.4. Проверки, выявление ошибок:
2.4.1.Кубы для проверки загруженных данных на ошибки;
2.4.2.Могут иметь разные форматы: Boolean, Number, Text.
2.5. Меппинг (сопоставление):
2.5.1.Взаимосвязано с пунктом 2.2 - различные пересечения справочников.
3. Рекомендуется для работы интеграционных скриптов создавать отдельное представление
мультикуба-приемника.
Пример мультикуба-приёмника:
61
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 33 – Пример трехмерного мультикуба-приемника для загрузки данных
Пример форматов данных кубов:
Рисунок 34 – Форматы данных кубов
Расположение измерений в представлении для работы скрипта:
62
MD 011-003-F РУКОВОДСТВО ПО ИНТЕГРАЦИИ СО СМЕЖНЫМИ ИС
Рисунок 35 – Измерения мультикуба-приемника
В2. Построение мультикуба-источника в Оптимакрос
Оптимакрос также может выступать источником для экспорта данных, отправляя запрос
приемнику данных. Структура мультикуба-источника в Оптимакрос также представляет из себя
плоский формат данных и зависит от формата хранения данных в приемнике.
63
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )