Войти

Отсылаем запрос через БД-интерфейс Адаптера

Для отправки и приема сообщений СМЭВ можно использовать несколько интерфейсов, в том числе интерфейс базы данных (интерфейс БД). 
 
 Интерфейс БД предназначен для обеспечения взаимодействия информационных систем Участника межведомственного электронного взаимодействия (далее «Участника») с Адаптером СМЭВ посредством SQL-запросов.
Рассмотрим порядок отправки запроса в СМЭВ через интерфейс БД Адаптера СМЭВ.

Описание интерфейса базы данных Адаптера СМЭВ

Интерфейс базы данных Адаптера СМЭВ, в общем случае, представляет собой совокупность таблиц БД:

«Send_Table» - предназначена для временного хранения в Адаптере СМЭВ исходящих сообщений одной информационной системы Участника. С точки зрения информационной системы Участника, эта таблица является исходящей очередью сообщений.

«Receive_Table» - предназначена для временного хранения в Адаптере СМЭВ входящих сообщений для одной информационной системы Участника. Ваша информационная система будет выбирать входящие сообщения из этой таблицы.

Примечание: наименования таблиц «Send_Table» и «Receive_Table» приведены в качестве примера, но вы можете использовать любые наименования на свое усмотрение.

Структура таблицы «Send_Table»:

Имя поля

Тип данных

PK

Not Null

Unique

Описание поля

id

text

N

N

N

Клиентский идентификатор запроса

content

text

N

Y

N

Сообщения в виде xml-строки:

- запросы, отправляемые в СМЭВ;

- ответы на запросы, отправляемые в СМЭВ

status

text

N

Y

N

Статус отправки сообщения в Адаптер СМЭВ.

Поле принимает одно из следующих значений:

- NEW. Новое сообщение на отправку. Данное значение устанавливает Информационная система Участника;

- SUCCESS. Сообщение принято Адаптером СМЭВ. Данное значение устанавливает Адаптер СМЭВ;

- FAIL. Ошибка обработки сообщения в Адаптере СМЭВ. Данное значение устанавливает Адаптер СМЭВ.

created_at

timestamp

N

Y

N

Метка времени создания записи в таблице

uid

bigserial

Y

Y

Y

Первичный ключ таблицы

Структура таблицы «Receive_Table»:

Имя поля

Тип данных

PK

Not Null

Unique

Описание поля

id

text

N

N

N

Клиентский идентификатор запроса

node_id

text

N

N

N

Клиентский идентификатор узла информационной системы

content

text

N

Y

N

Сообщения в виде xml-строки:

- запросы, поступившие из СМЭВ;

- ответы на запросы, поступившие из СМЭВ;

- бизнес-ошибки обработки сообщений в Адаптере СМЭВ либо поступившие из СМЭВ;

- статусные сообщения, поступившие из СМЭВ.

ref_id

text

N

N

N

Ссылка на начальное сообщение в последовательности

ref_group_id

text

N

N

N

Идентификатор группы сообщения

created_at

timestamp

N

Y

N

Метка времени создания записи в таблице

uid

bigserial

Y

Y

Y

Первичный ключ таблицы

Как создать таблицы БД

Для создания таблицы БД используется pgAdmin 4. Запустите его через меню «Пуск/PostgreSQL 12/pgAdmin 4»:

image001.png

В открывшемся pgAdmin 4 авторизуйтесь, выберите базу данных «smev_adapter_single». Затем в меню «Tools» выберите пункт «Query Tool»:

image003.png

В окне запросов введите команду:

create_table_mnemonic_send.png

Скачать

И выполните скрипт, нажав на панели инструментов кнопку запуска image005.png:

image006.png

В результате выполнения запроса в схеме public будет создана новая таблица «mnemonic_send»:

image008.png

Затем в окне запросов введите команду:

create_table_mnemonic_receive.png

Скачать

И вновь выполните запуск скрипта:

image010.png

В результате выполнения этой команды в схеме public будет создана таблица «mnemonic_receive»:

image012.png

Как включить и настроить способ использования ИС «База данных»

Для включения способа использования «База данных» зайдите в веб-интерфейс Адаптера СМЭВ и авторизуйтесь под учётной записью «admin». Затем перейдите на страницу «Информационные системы» и выберите из выпадающего списка «1.2. Способ использования» значение «База данных»:

image014.png

После этого нажмите кнопку «Сохранить» в нижней части страницы. Затем перейдите на этой же странице в раздел «6. Модуль интеграции через базу данных» и заполните поля своими данными:

image016.png

На что следует обратить внимание при заполнении этого раздела:

  • в поле «6.1. Адрес» замените адрес по умолчанию «localhost» на IP адрес сервера баз данных и укажите имя своей базы данных;
  • в поле «6.3 Имя пользователя БД» укажите имя учётной записи базы данных;
  • в поле «6.4. Пароль БД» введите пароль учётной записи базы данных;
  • в поле «6.5. Имя таблицы для отправленных сообщений» укажите имя таблицы для исходящих сообщений;
  • в поле «6.6. Имя таблицы для принятых сообщений» укажите имя таблицы для входящих сообщений.

После ввода всех данных нажмите кнопку «Сохранить».

Как сформировать сообщение

При подготовке к отправке запроса вам необходимо сформировать (в редакторе) XML-конверт сообщения «ClientMessage», в соответствии с XSD-схемами Адаптера СМЭВ. Данный конверт должен содержать все обязательные элементы, исходя из требований к направляемому сообщению.

Структура XML-конверта сообщения «ClientMessage», которая выглядит так:

send_msg_db.png

Скачать

Для формирования значения тега «clientId» можно воспользоваться любым из онлайн генераторов UUID.

Как отправить запрос через Адаптер СМЭВ

Поместите сформированный XML-конверт сообщения «ClientMessage» в поле «content» и в теге «id» укажите тот же идентификатор, что и в теге «clientId» XML-конверта.

У вас должен получиться следующий SQL-запрос для отправки сообщения:

insert_mnemonic_send.png

Скачать

Теперь выполните подготовленный запрос:

image018.png

Проверьте статус запроса в таблице «mnemonic_send» посредством выполнения запроса:

select_mnenonic_send.png

Вы увидите статус своего запроса:

image020.png

Запрос через интерфейс базы данных Адаптера СМЭВ отправлен. 

ЛК УВ предоставляет возможность просмотра информации о сеансах обмена в СМЭВ.
Информация о сеансе обмена включает в частности:

  • СМЭВ-идентификатор инициирующего запроса;
  • время получения запроса в СМЭВ;
  • продолжительность обработки на стороне СМЭВ.
Авторизуйтесь, чтобы оставить комментарий к статье