Интерфейс БД предназначен для обеспечения взаимодействия информационных систем Участника межведомственного электронного взаимодействия (далее «Участника») с Адаптером СМЭВ посредством SQL-запросов.
Рассмотрим порядок отправки запроса в СМЭВ через интерфейс БД Адаптера СМЭВ.
Описание интерфейса базы данных Адаптера СМЭВ
Интерфейс базы данных Адаптера СМЭВ, в общем случае, представляет собой совокупность таблиц БД:
«Send_Table» - предназначена для временного хранения в Адаптере СМЭВ исходящих сообщений одной информационной системы Участника. С точки зрения информационной системы Участника, эта таблица является исходящей очередью сообщений.
«Receive_Table» - предназначена для временного хранения в Адаптере СМЭВ входящих сообщений для одной информационной системы Участника. Ваша информационная система будет выбирать входящие сообщения из этой таблицы.
Примечание: наименования таблиц «Send_Table» и «Receive_Table» приведены в качестве примера, но вы можете использовать любые наименования на свое усмотрение.
Структура таблицы «Send_Table»:
№ |
Имя поля |
Тип данных |
PK |
Not Null |
Unique |
Описание поля |
1 |
id |
text |
N |
N |
N |
Клиентский идентификатор запроса |
2 |
content |
text |
N |
Y |
N |
Сообщения в виде xml-строки: - запросы, отправляемые в СМЭВ; - ответы на запросы, отправляемые в СМЭВ |
3 |
status |
text |
N |
Y |
N |
Статус отправки сообщения в Адаптер СМЭВ. Поле принимает одно из следующих значений: - NEW. Новое сообщение на отправку. Данное значение устанавливает Информационная система Участника; - SUCCESS. Сообщение принято Адаптером СМЭВ. Данное значение устанавливает Адаптер СМЭВ; - FAIL. Ошибка обработки сообщения в Адаптере СМЭВ. Данное значение устанавливает Адаптер СМЭВ. |
4 |
created_at |
timestamp |
N |
Y |
N |
Метка времени создания записи в таблице |
5 |
uid |
bigserial |
Y |
Y |
Y |
Первичный ключ таблицы |
Структура таблицы «Receive_Table»:
№ |
Имя поля |
Тип данных |
PK |
Not Null |
Unique |
Описание поля |
1 |
id |
text |
N |
N |
N |
Клиентский идентификатор запроса |
2 |
node_id |
text |
N |
N |
N |
Клиентский идентификатор узла информационной системы |
3 |
content |
text |
N |
Y |
N |
Сообщения в виде xml-строки: - запросы, поступившие из СМЭВ; - ответы на запросы, поступившие из СМЭВ; - бизнес-ошибки обработки сообщений в Адаптере СМЭВ либо поступившие из СМЭВ; - статусные сообщения, поступившие из СМЭВ. |
4 |
ref_id |
text |
N |
N |
N |
Ссылка на начальное сообщение в последовательности |
5 |
ref_group_id |
text |
N |
N |
N |
Идентификатор группы сообщения |
6 |
created_at |
timestamp |
N |
Y |
N |
Метка времени создания записи в таблице |
7 |
uid |
bigserial |
Y |
Y |
Y |
Первичный ключ таблицы |
Как создать таблицы БД
Для создания таблицы БД используется pgAdmin 4. Запустите его через меню «Пуск/PostgreSQL 12/pgAdmin 4»:
В открывшемся pgAdmin 4 авторизуйтесь, выберите базу данных «smev_adapter_single». Затем в меню «Tools» выберите пункт «Query Tool»:
В окне запросов введите команду:
И выполните скрипт, нажав на панели инструментов кнопку запуска :
В результате выполнения запроса в схеме public будет создана новая таблица «mnemonic_send»:
Затем в окне запросов введите команду:
И вновь выполните запуск скрипта:
В результате выполнения этой команды в схеме public будет создана таблица «mnemonic_receive»:
Как включить и настроить способ использования ИС «База данных»
Для включения способа использования «База данных» зайдите в веб-интерфейс Адаптера СМЭВ и авторизуйтесь под учётной записью «admin». Затем перейдите на страницу «Информационные системы» и выберите из выпадающего списка «1.2. Способ использования» значение «База данных»:
После этого нажмите кнопку «Сохранить» в нижней части страницы. Затем перейдите на этой же странице в раздел «6. Модуль интеграции через базу данных» и заполните поля своими данными:
На что следует обратить внимание при заполнении этого раздела:
- в поле «6.1. Адрес» замените адрес по умолчанию «localhost» на IP адрес сервера баз данных и укажите имя своей базы данных;
- в поле «6.3 Имя пользователя БД» укажите имя учётной записи базы данных;
- в поле «6.4. Пароль БД» введите пароль учётной записи базы данных;
- в поле «6.5. Имя таблицы для отправленных сообщений» укажите имя таблицы для исходящих сообщений;
- в поле «6.6. Имя таблицы для принятых сообщений» укажите имя таблицы для входящих сообщений.
После ввода всех данных нажмите кнопку «Сохранить».
Как сформировать сообщение
При подготовке к отправке запроса вам необходимо сформировать (в редакторе) XML-конверт сообщения «ClientMessage», в соответствии с XSD-схемами Адаптера СМЭВ. Данный конверт должен содержать все обязательные элементы, исходя из требований к направляемому сообщению.
Структура XML-конверта сообщения «ClientMessage», которая выглядит так:
Для формирования значения тега «clientId» можно воспользоваться любым из онлайн генераторов UUID.
Как отправить запрос через Адаптер СМЭВ
Поместите сформированный XML-конверт сообщения «ClientMessage» в поле «content» и в теге «id» укажите тот же идентификатор, что и в теге «clientId» XML-конверта.
У вас должен получиться следующий SQL-запрос для отправки сообщения:
Теперь выполните подготовленный запрос:
Проверьте статус запроса в таблице «mnemonic_send» посредством выполнения запроса:
Вы увидите статус своего запроса:
Запрос через интерфейс базы данных Адаптера СМЭВ отправлен.
ЛК УВ предоставляет возможность просмотра информации о сеансах обмена в СМЭВ.
Информация о сеансе обмена включает в частности:
- СМЭВ-идентификатор инициирующего запроса;
- время получения запроса в СМЭВ;
- продолжительность обработки на стороне СМЭВ.