Документация iSZN

pkSMEV3Intf.sql

Получение входящих запросов

MessageReceived

FUNCTION MessageReceived(
    iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2,
    iMessageRegionID PLS_INTEGER, bMessageData BLOB, iIsSignatureValid PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Обрабатывает входящее сообщение, полученное веб-сервисом.
Параметры:

  • iServiceRegionID - ID района веб-сервиса;
  • sServiceName - техническое наименование веб-сервиса (нечувствительное к регистру);
  • iMessageRegionID - ID района, в который адресовано сообщение;
  • bMessageData - содержимое сообщения СМЭВ;
  • iIsSignatureValid - признак валидности цифровой подписи СМЭВ (0/1).

Возвращает результат работы: константу из числа pkSMEV3.IMsgReceived_xxx.
Если при сохранении входящего сообщения произошла ошибка, возникает exception.

AddIncMsgFSAttachment

FUNCTION AddIncMsgFSAttachment(rMessageGUID RAW, rFileGUID RAW, sFileName VARCHAR2, bFileContent BLOB, sMediaType VARCHAR2) RETURN PLS_INTEGER;

Описание

Связывает содержимое файла, полученного через файловое хранилище СМЭВ, с файлом входящего сообщения СМЭВ.
Параметры:

  • rMessageGUID - GUID входящего сообщения СМЭВ-3;
  • rFileGUID - UUID вложения;
  • sFileName - имя файла;
  • bFileContent - содержимое файла;
  • sMediaType - тип содержимого файла.

Возвращает результат работы: константу из числа pkSMEV3.IFSAttachAdded_xxx.
Если при добавлении файла произошла ошибка, возникает exception.

AddIncMsgFSAttachmentExternal

PROCEDURE AddIncMsgFSAttachmentExternal(
  rMessageGUID RAW, rFileGUID RAW, sFileName VARCHAR2, sMediaType VARCHAR2, iFileSize PLS_INTEGER, rFileSha1 RAW,
  iResult OUT PLS_INTEGER, sExtFileName OUT VARCHAR2);
 
/*********************************************************************************************************************
 Отправка исходящих запросов
*********************************************************************************************************************/
 
-- Возвращает список ID запросов для СМЭВ-3, стоящих в очереди на отправку, для которых наступило время отправки.
-- Параметры:
--   iRegionID - ID района;
--   iMaxCount - максимальное допустимое количество элементов, которое возвращает функция.
-- Если запросов, требующих отправки, нет, возвращает пустой список.
FUNCTION  GetScheduledRequestIDs(iRegionID PLS_INTEGER, iMaxCount PLS_INTEGER) RETURN uszn.TIntegerList;

Описание

Связывает содержимое файла, полученного через файловое хранилище СМЭВ и сохранённого как внешний, с файлом
входящего сообщения СМЭВ.
Входные параметры:

  • rMessageGUID - GUID входящего сообщения СМЭВ-3;
  • rFileGUID - UUID вложения;
  • sFileName - имя файла;
  • sMediaType - тип содержимого файла;
  • iFileSize - размер файла, байт;
  • rFileSha1 - контрольная сумма файла.

Выходные параметры:

  • iResult - результат работы: константу из числа pkSMEV3.IFSAttachAdded_xxx;
  • sExtFileName - имя внешнего файла вместе с подкаталогом.

Если при добавлении файла произошла ошибка, возникает exception.

Отправка исходящих запросов

GetScheduledRequestIDs

FUNCTION GetScheduledRequestIDs(iRegionID PLS_INTEGER, iMaxCount PLS_INTEGER) RETURN uszn.TIntegerList;

Описание

Возвращает список ID запросов для СМЭВ-3, стоящих в очереди на отправку, для которых наступило время отправки.
Параметры:

  • iRegionID - ID района;
  • iMaxCount - максимальное допустимое количество элементов, которое возвращает функция.

Если запросов, требующих отправки, нет, возвращает пустой список.

GetRequestData

PROCEDURE GetRequestData(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER,
    bRequestData OUT BLOB, rMessageGUID OUT RAW, iAttachmentCount OUT PLS_INTEGER, sKeyContainerName OUT VARCHAR2, iGostVersion OUT PLS_INTEGER, sRequestURL OUT VARCHAR2, sSOAPAction OUT VARCHAR2);
-- Получение содержимого файла вложения исходящего сообщения СМЭВ.
-- Входные параметры:
--   iRegionID, iOutMessageID - ключ исходящего сообщения;
--   iOrderNum                - порядковый номер вложения; нумерация начинается с 1.
-- Выходные параметры:
--   bContent           - содержимое файла;
--   iCompressionMethod - метод сжатия, использованный при хранении содержимого; null, если сжатие не используется;
--   sFileName          - имя файла;
--   sMimeType          - MIME-тип содержимого;
--   rGUID              - UUID каталога, куда будет помещаться файл вложения на FTP-сервере.
PROCEDURE GetRequestAttachment(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER, iOrderNum PLS_INTEGER,
    bContent OUT BLOB, iCompressionMethod OUT PLS_INTEGER, sFileName OUT VARCHAR2, sMimeType OUT VARCHAR2, rGUID OUT RAW);
-- Регистрирует факт успешной отправки исходящего сообщения в СМЭВ вызовом метода SendRequest или SendResponse.
-- Параметры:
--   iRegionID, iOutMessageID - ключ исходящего сообщения;
--   dSendTime                - дата и время отправки;
--   rMessageGUID             - GUID отправленного сообщения;

Описание

Получение данных, необходимых для отправки запроса в СМЭВ.
Входные параметры:

  • iRegionID, iOutMessageID - ключ исходящего сообщения.

Выходные параметры:

  • bRequestData - данные запроса (SOAP-конверт);
  • rMessageGUID - GUID отправляемого сообщения;
  • iAttachmentCount - количество вложений, передаваемых через FTP;
  • sKeyContainerName - наименование ключевого контейнера, которым необходимо подписать отправляемое сообщение;
  • iGostVersion - идентификатор версии ГОСТ;
  • sRequestURL - URL для отправки запроса;
  • sSOAPAction - значение свойства SOAPAction заголовка HTTP при отправке запроса.

Если запрос не существует или заблокирован, возникает exception.
Кроме того, exception возникает в случае, если для отправителя на задана ЭП или для сервиса не задан URL для
отправки запросов.

GetRequestAttachment

PROCEDURE GetRequestAttachment(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER, iOrderNum PLS_INTEGER,
    bContent OUT BLOB, iCompressionMethod OUT PLS_INTEGER, sFileName OUT VARCHAR2, sMimeType OUT VARCHAR2, rGUID OUT RAW);
-- Регистрирует факт успешной отправки исходящего сообщения в СМЭВ вызовом метода SendRequest или SendResponse.
-- Параметры:
--   iRegionID, iOutMessageID - ключ исходящего сообщения;
--   dSendTime                - дата и время отправки;
--   rMessageGUID             - GUID отправленного сообщения;
--   bDataSent                - отправленные данные;
--   bReplyData               - ответ СМЭВ;
--   iIsSignatureValid        - валидна ли ЭЦП ответа (0/1); null, если ответ не содержит подписи.
-- Если исходящее сообщение не существует или заблокировано, возникает exception.
PROCEDURE MessageDelivered(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER,
    dSendTime DATE, rMessageGUID RAW, bDataSent BLOB, bReplyData BLOB, iIsSignatureValid PLS_INTEGER);
-- Добавляет запись о неудачной отправке исходящего сообщения в СМЭВ.
-- Параметры:
--   iRegionID, iOutMessageID - ключ исходящего сообщения;
--   dSendTime                - дата и время отправки;
--   bDataSent                - отправленные данные;
--   rMessageGUID             - GUID отправленного сообщения;

Описание

Получение содержимого файла вложения исходящего сообщения СМЭВ.
Входные параметры:

  • iRegionID, iOutMessageID - ключ исходящего сообщения;
  • iOrderNum - порядковый номер вложения; нумерация начинается с 1.

Выходные параметры:

  • bContent - содержимое файла;
  • iCompressionMethod - метод сжатия, использованный при хранении содержимого; null, если сжатие не используется;
  • sFileName - имя файла;
  • sMimeType - MIME-тип содержимого;
  • rGUID - UUID каталога, куда будет помещаться файл вложения на FTP-сервере.

MessageDelivered

PROCEDURE MessageDelivered(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER,
    dSendTime DATE, rMessageGUID RAW, bDataSent BLOB, bReplyData BLOB, iIsSignatureValid PLS_INTEGER);
-- Добавляет запись о неудачной отправке исходящего сообщения в СМЭВ.
-- Параметры:
--   iRegionID, iOutMessageID - ключ исходящего сообщения;
--   dSendTime                - дата и время отправки;
--   bDataSent                - отправленные данные;
--   rMessageGUID             - GUID отправленного сообщения;
--   sErrorMessage            - сообщение с описанием ошибки.
-- Если запрос не существует или заблокирован, возникает exception.
PROCEDURE MessageDeliveryFailed(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER,
    dSendTime DATE, rMessageGUID RAW, bDataSent BLOB, bReplyData BLOB, sErrorMessage VARCHAR2);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkSMEV3Intf IS
 
-- Ключи атрибутов видов сведений:

Описание

Регистрирует факт успешной отправки исходящего сообщения в СМЭВ вызовом метода SendRequest или SendResponse.
Параметры:

  • iRegionID, iOutMessageID - ключ исходящего сообщения;
  • dSendTime - дата и время отправки;
  • rMessageGUID - GUID отправленного сообщения;
  • bDataSent - отправленные данные;
  • bReplyData - ответ СМЭВ;
  • iIsSignatureValid - валидна ли ЭЦП ответа (0/1); null, если ответ не содержит подписи.

Если исходящее сообщение не существует или заблокировано, возникает exception.

MessageDeliveryFailed

PROCEDURE MessageDeliveryFailed(
    iRegionID PLS_INTEGER, iOutMessageID PLS_INTEGER,
    dSendTime DATE, rMessageGUID RAW, bDataSent BLOB, bReplyData BLOB, sErrorMessage VARCHAR2);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkSMEV3Intf IS
 
-- Ключи атрибутов видов сведений:
-- -- DELIVERY_PRIORITY
IDK_ATTR_RGN_DELIVERY_PRIORITY CONSTANT PLS_INTEGER := 0;
IDK_ATTR_ID_DELIVERY_PRIORITY  CONSTANT PLS_INTEGER := 3;
 
/********************************************************************************************************************/
FUNCTION MessageReceived(
    iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2,
    iMessageRegionID PLS_INTEGER, bMessageData BLOB, iIsSignatureValid PLS_INTEGER) RETURN PLS_INTEGER
IS
  iMessageID PLS_INTEGER;

Описание

Добавляет запись о неудачной отправке исходящего сообщения в СМЭВ.
Параметры:

  • iRegionID, iOutMessageID - ключ исходящего сообщения;
  • dSendTime - дата и время отправки;
  • bDataSent - отправленные данные;
  • rMessageGUID - GUID отправленного сообщения;
  • sErrorMessage - сообщение с описанием ошибки.

Если запрос не существует или заблокирован, возникает exception.