Документация iSZN
pkSMEVProv.sql
Ошибки
Error_NoService
PROCEDURE Error_NoService(iRegionID PLS_INTEGER, iServiceID PLS_INTEGER);
Описание
Вызывает exception “Веб-сервис ... не найден”.
Error_NoService
PROCEDURE Error_NoService(iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2);
Error_NoSvcOperation
PROCEDURE Error_NoSvcOperation(iRegionID PLS_INTEGER, iOperationID PLS_INTEGER);
Описание
Вызывает exception “Метод веб-сервиса ... не найден”.
Error_NoSvcOperation
PROCEDURE Error_NoSvcOperation(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, sOperationName VARCHAR2, sNSURI VARCHAR2);
Error_NoMessage
Описание
Вызывает exception “Сообщение не найдено”.
Error_NoMessage
PROCEDURE Error_NoMessage(iMessageID PLS_INTEGER);
Error_NoMessageProcessing
PROCEDURE Error_NoMessageProcessing(iMessageProcessingID PLS_INTEGER);
Описание
Вызывает exception “Запись обработки запроса не найдена”.
Error_MessageNotProcessed
Описание
Вызывает exception “Сообщение ещё не обработано”.
Error_AlreadyProcessed
Описание
Вызывает exception “Сообщение уже обработано”.
Конфигурация
GetSigCertificateID
FUNCTION GetSigCertificateID(iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает ID сертификата ЭП, которым подписываются запросы, направляемые в СМЭВ.
Параметры:
- iStrict - определяет поведение при отсутствии значения настройки.
GetConnectParamList
FUNCTION GetConnectParamList(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, iOnlyWithPassword PLS_INTEGER) RETURN TProvSvcConnectParamList;
Описание
Возвращает список параметров подключения для веб-сервиса.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- iOnlyWithPassword - не возвращать параметры подключения для пользователей, у которых пароль не сохранён в БД (0/1).
Если веб-сервис не существует, возникает exception.
Если параметры подключения к веб-сервису не заданы, возвращает пустой список.
Работа с сервисами и их методами
GetServiceName
FUNCTION GetServiceName(iRegionID PLS_INTEGER, iServiceID PLS_INTEGER, iNameKind PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование веб-сервиса.
Параметры:
- iRegionID - ID района веб-сервиса;
- iServiceID - ID веб-сервиса;
- iNameKind - вид наименование: 0 - техническое, 1 - отображаемое;
- iStrict - поведение при отсутствии указанного веб-сервиса.
GetSvcSMEVVersionID
FUNCTION GetSvcSMEVVersionID(iRegionID PLS_INTEGER, iServiceID PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает ID версии СМЭВ веб-сервиса.
Параметры:
- iRegionID, iServiceID - ключ веб-сервиса.
При отсутствии веб-сервиса возникает exception.
SetSvcSMEVNamespace
PROCEDURE SetSvcSMEVNamespace(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, sXMLNSPrefix VARCHAR2 := uszn.pkXML_SMEV2.xmlns_SMEV_Default);
Описание
Настраивает текущее пространство имён СМЭВ для веб-сервиса в соответствии с его настройками в справочнике.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- sXMLNSPrefix - префикс пространства имён СМЭВ.
Если веб-сервис не существует, возникает exception.
GetSvcOperationName
FUNCTION GetSvcOperationName(iRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iNameKind PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование метода веб-сервиса.
Параметры:
- iRegionID - ID района веб-сервиса;
- iOperationID - ID метода;
- iNameKind - вид наименование: 0 - техническое, 1 - отображаемое;
- iStrict - поведение при отсутствии операции.
GetServiceByName
FUNCTION GetServiceByName(iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Находит веб-сервис по его техническому наименованию.
Параметры:
- iServiceRegionID - ID района веб-сервиса;
- sServiceName - наименование веб-сервиса (нечувствительное к регистру);
- iStrict - поведение при отсутствии указанного веб-сервиса.
Возвращает ID найденного веб-сервиса или null, если такого не найдено.
GetSvcOperationByName
FUNCTION GetSvcOperationByName(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, sOperationName VARCHAR2, sNSURI VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Находит операцию веб-сервиса по его наименованию и возвращает её ID.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- sOperationName - наименование операции веб-сервиса (нечувствительное к регистру);
- sNSURI - URI пространства имён операции веб-сервиса (чувствительное к регистру);
- iStrict - поведение при отсутствии указанного веб-сервиса или операции.
Обработка запросов
ReceiveMessage
FUNCTION ReceiveMessage( sCallerAddress VARCHAR2, iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2, iRequestRegionID PLS_INTEGER, bRequestData BLOB, iIsSignatureValid PLS_INTEGER) RETURN BLOB;
Описание
Обрабатывает сообщение, полученное веб-сервисом, и возвращает ответ.
Параметры:
- sCallerAddress - адрес системы, от которой поступил запрос;
- iServiceRegionID - ID района веб-сервиса;
- sServiceName - техническое наименование веб-сервиса (нечувствительное к регистру);
- iRequestRegionID - ID района, в который адресован запрос;
- bRequestData - содержимое сообщения СМЭВ;
- iIsSignatureValid - признак валидности цифровой подписи (0/1).
Возвращает ответ в виде XML-данных тега <soap:envelope> в кодировке UTF-8, в том числе, возможно, SoapFault.
При возникновении фатальных ошибок вызывает соответствующие исключения.
AsyncProcessMessage
FUNCTION AsyncProcessMessage(iMessageID PLS_INTEGER, iForce PLS_INTEGER, iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL) RETURN PLS_INTEGER;
Описание
Выполняет асинхронную обработку сообщения, вызывая соответствующее SQL-выражение веб-сервиса или его метода.
Параметры:
- iMessageID - ID сообщения;
- iForce - обрабатывать ли сообщение независимо от того, обработано оно или нет (0/1);
- iAudOriginID - ID источника события для аудита;
- sAudNotes - примечания для аудита.
Выполняемые действия определяются самим веб-сервисом.
Возвращает ID записи с информацией об обработке или null, если при обработке произошёл сбой.
Если такого сообщения нет, вызывает exception.
GetRequestToAsyncProcIDs
FUNCTION GetRequestToAsyncProcIDs(iRequestRegionID PLS_INTEGER, iMaxRecordCount PLS_INTEGER) RETURN uszn.TIntegerList;
Описание
Возвращает список ID запросов, подлежащих асинхронной обработке.
Параметры:
- iRequestRegionID - ID района, которому адресован запрос;
- iMaxRecordCount - максимальное допустимое количество записей, которое возвращает функция.
DeleteMessage
PROCEDURE DeleteMessage(iMessageID PLS_INTEGER);
Описание
Удаляет входящее сообщение СМЭВ.
Параметры:
- iMessageID - ID сообщения.
Если такого сообщения нет, вызывает exception.
Работа с очередью сообщений
GetMessageID
FUNCTION GetMessageID(rMessageGUID RAW, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает ID сообщения по его GUID.
Параметры:
- rMessageGUID - GUID сообщение;
- iStrict - определяет поведение при отсутствии указанного сообщения.
GetMessageGUID
FUNCTION GetMessageGUID(iMessageID PLS_INTEGER, iStrict PLS_INTEGER) RETURN RAW;
Описание
Возвращает GUID сообщения по его ID.
Параметры:
- iMessageID - ID сообщение;
- iStrict - определяет поведение при отсутствии указанного сообщения.
GetMessageRegionID
FUNCTION GetMessageRegionID(rMessageGUID RAW, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает ID района сообщения по его GUID.
Параметры:
- rMessageGUID - GUID сообщение;
- iStrict - определяет поведение при отсутствии указанного сообщения.
GetRequestData
Описание
Возвращает входные данные сообщения.
Параметры:
- rMessageGUID - GUID сообщения;
Если такого сообщения нет, вызывает exception.
GetResponseData
Описание
Возвращает данные ответа на сообщение.
Параметры:
- rMessageGUID - GUID сообщения;
Если такого сообщения нет, вызывает exception.
GetProcessedData
Описание
Возвращает данные, сохранённые при обработке сообщения.
Параметры:
- rMessageGUID - GUID сообщения;
Если такого сообщения нет, вызывает exception.
SetIsAsync
PROCEDURE SetIsAsync(rMessageGUID RAW, iValue PLS_INTEGER);
Описание
Устанавливает у сообщения флаг is_async.
Параметры:
- rMessageGUID - GUID сообщения;
- iValue - значение флага (0/1).
Если такого сообщения нет, вызывает exception.
Если флаг уже установлен, ничего не происходит.
SetIsProcessed
PROCEDURE SetIsProcessed(rMessageGUID RAW, iValue PLS_INTEGER);
Описание
Устанавливает у сообщения флаг is_processed.
Параметры:
- rMessageGUID - GUID сообщения;
- iValue - значение флага (0/1).
Если такого сообщения нет, вызывает exception.
Если флаг уже установлен, ничего не происходит.
SetIsCancelled
PROCEDURE SetIsCancelled(rMessageGUID RAW, iValue PLS_INTEGER);
Описание
Устанавливает у сообщения флаг is_cancelled.
Параметры:
- rMessageGUID - GUID сообщения;
- iValue - значение флага (0/1).
Если такого сообщения нет, вызывает exception.
Если флаг уже установлен, ничего не происходит.
ScheduleAsyncProcessing
Описание
Устанавливает/сбрасывает все необходимые флаги, чтобы сообщение встало в очередь для асинхронной обработки, в том
числе очищает статус ошибки.
Параметры:
- rMessageGUID - GUID сообщения.
Если такого сообщения нет, возникает exception.
SetResponseData
PROCEDURE SetResponseData(rMessageGUID RAW, cResponseData CLOB, iSetIsProcessed PLS_INTEGER);
Описание
Устанавливает у сообщения ответ.
Параметры:
- rMessageGUID - GUID сообщения;
- cResponseData - ответное сообщение SOAP в виде <soap:envelope> в кодировке Windows-1251;
- iSetIsProcessed - установить ли также флаг is_processed (0/1).
Если такого сообщения нет, вызывает exception.
SetFault
PROCEDURE SetFault( rMessageGUID RAW, sErrorMessage VARCHAR2, iErrorCode PLS_INTEGER, iSetIsProcessed PLS_INTEGER, iCreateFaultReply PLS_INTEGER, iProcessingSOAPBody PLS_INTEGER, iIsServerFault PLS_INTEGER); -- Сохраняет результаты асинхронной обработки сообщения в таблицу. -- Параметры: -- rMessageGUID - GUID сообщения; -- bData - сохраняемые данные в произвольном формате, определяемом процедурой обработки; -- iSetIsProcessed - установить ли также флаг is_processed (0/1). PROCEDURE SetProcessedData(rMessageGUID RAW, bData BLOB, iSetIsProcessed PLS_INTEGER); -- Возвращает состояние запроса, полученного от СМЭВ. -- Параметры: -- iMessageID - ID запроса. -- Если запрос не существует, возникает exception. FUNCTION GetMessageState(iMessageID PLS_INTEGER) RETURN TMessageState;
Описание
Устанавливает у сообщения информацию об ошибке, возникшей как при первичной обработке полученного сообщения, так и
при его асинхронной обработке.
Параметры:
- rMessageGUID - GUID сообщения;
- sErrorMessage - текст сообщения об ошибке;
- iErrorCode - код ошибки;
- iSetIsProcessed - установить ли также флаг is_processed (0/1).
- iCreateFaultReply - сохранять ли в ответное сообщение SoapFault, соответствующий указанной ошибке (0/1);
- iProcessingSOAPBody - возникла ли ошибка при обработке <soap:body> (0/1); учитывается только при iCreateFaultReply=1 при формировании соответствующего ответа с SoapFault.
- iIsServerFault - является ли источником ошибки сервер (1) или клиент (0); учитывается только при iCreateFaultReply=1 при формировании соответствующего ответа с SoapFault.
Если такого сообщения нет, возникает exception.
SetProcessedData
PROCEDURE SetProcessedData(rMessageGUID RAW, bData BLOB, iSetIsProcessed PLS_INTEGER);
Описание
Сохраняет результаты асинхронной обработки сообщения в таблицу.
Параметры:
- rMessageGUID - GUID сообщения;
- bData - сохраняемые данные в произвольном формате, определяемом процедурой обработки;
- iSetIsProcessed - установить ли также флаг is_processed (0/1).
GetMessageState
FUNCTION GetMessageState(iMessageID PLS_INTEGER) RETURN TMessageState;
Описание
Возвращает состояние запроса, полученного от СМЭВ.
Параметры:
- iMessageID - ID запроса.
Если запрос не существует, возникает exception.
GetMessageProcessingState
FUNCTION GetMessageProcessingState(iMessageProcessingID PLS_INTEGER) RETURN TMessageProcessingState;
Описание
Возвращает состояние записи об обработке запроса, полученного от СМЭВ.
Параметры:
- iMessageProcessingID - ID записи об обработке запроса.
Если запись об обработке запроса не существует, возникает exception.
GetMessageProcessingLog
FUNCTION GetMessageProcessingLog(iMessageProcessingID PLS_INTEGER) RETURN CLOB;
Описание
Возвращает протокол обработки запроса, полученного от СМЭВ.
Параметры:
- iMessageProcessingID - ID записи об обработке запроса.
Если запись об обработке запроса не существует, возникает exception.