Документация iSZN
pkSMEVCall.sql
Ошибки
Error_InvalidProcStatusID
PROCEDURE Error_InvalidProcStatusID(iID PLS_INTEGER);
Описание
Вызывает exception “Недопустимый ID статуса обработки ответа”.
Error_NoService
PROCEDURE Error_NoService(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER);
Описание
Вызывает exception “Веб-сервис ... не найден”.
Error_NoSvcOperation
PROCEDURE Error_NoSvcOperation(iServiceRegionID PLS_INTEGER, iOperationID PLS_INTEGER);
Описание
Вызывает exception “Операция веб-сервиса ... не найдена”.
Error_NoServiceByName
PROCEDURE Error_NoServiceByName(iRegionID PLS_INTEGER, sServiceName VARCHAR2);
Описание
Вызывает exception “Веб-сервис с именем ... не найден”.
Error_NoSvcOpAttrib
PROCEDURE Error_NoSvcOpAttrib(iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER);
Описание
Вызывает exception “Атрибут операции веб-сервиса ... не найден”.
Error_NoServiceRequestParams
PROCEDURE Error_NoServiceRequestParams(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER);
Описание
Вызывает exception “Параметры подключения веб-сервиса не заданы”.
Error_NoSvcOpAttribValue
PROCEDURE Error_NoSvcOpAttribValue(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER);
Описание
Вызывает exception “Значение атрибута операции веб-сервиса не задано”.
Error_InvalidSvcOpAttribValue
PROCEDURE Error_InvalidSvcOpAttribValue(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER);
Описание
Вызывает exception “Значение атрибута операции веб-сервиса некорректно”.
Error_SvcOpAttribValueTooLong
PROCEDURE Error_SvcOpAttribValueTooLong(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER, iMaxValueLen PLS_INTEGER);
Описание
Вызывает exception “Значение атрибута операции веб-сервиса превышает допустимую длину”.
Error_SvcOpIncompatiblePDoc
PROCEDURE Error_SvcOpIncompatiblePDoc(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iPDocClassID PLS_INTEGER);
Описание
Вызывает exception “Документ несовместим с операцией веб-сервиса”.
Конфигурация
GetDBConnectParamList
FUNCTION GetDBConnectParamList(iWithPasswordOnly PLS_INTEGER) RETURN TDBConnectParamList;
Описание
Возвращает список параметров подключения приложения, отправляющего запросы в СМЭВ, к серверам Системы.
Параметры:
- iOnlyWithPassword - возвращать параметры подключения только для пользователей, у которых пароль сохранён в БД (0/1).
Если параметры подключения не заданы, возвращает пустой список.
Справочники
GetRequestMethodName
FUNCTION GetRequestMethodName(iID PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование метода вызова по ID. Если iID=null, возвращает null. Если iID некорректно, возникает exception.
GetEncodingName
FUNCTION GetEncodingName(iID PLS_INTEGER, iMode PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование кодировки по ID.
Параметры:
- iID - идентификатор кодировки;
- iMode - вид наименования: 1 - для передачи в веб-сервис; 2 - для перекодировки в БД.
Если iID=null, возвращает null.
Если iID некорректно, возникает exception.
GetProcStatusName
FUNCTION GetProcStatusName(iID PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование статуса обработки ответа на запрос к СМЭВ по его ID.
Параметры:
- iID - ID статуса;
Если iID пустой, возвращает null.
Если статус с таким ID не существует, возникает exception.
Работа с сервисами и их операциями
GetServiceName
FUNCTION GetServiceName(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, iNameKind PLS_INTEGER, iStrict PLS_INTEGER, iDisplayMode PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает наименование вызываемого веб-сервиса.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- iNameKind - вид наименование: 0 - техническое, 1 - отображаемое;
- iStrict - поведение при отсутствии указанного веб-сервиса;
- iDisplayMode - способ вывода результата, как для pkGen.FormatNameWithRKey.
GetServiceRequestURL
FUNCTION GetServiceRequestURL(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, iStrict PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает URL для отправки запроса в вызываемый веб-сервис.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- iStrict - поведение при отсутствии указанного веб-сервиса, а также в случае, если параметры подключения веб-сервиса не заданы.
GetServiceRequestParams
PROCEDURE GetServiceRequestParams( iServiceRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iSenderRgnID PLS_INTEGER, iSenderID PLS_INTEGER, sPathParams VARCHAR2, iStrict PLS_INTEGER, sRequestURL OUT VARCHAR2, sBasicAuthUsername OUT VARCHAR2, sBasicAuthPassword OUT VARCHAR2, sOAuth2TokenEndpointURL OUT VARCHAR2, sOAuth2TokenRequestParams OUT VARCHAR2); -- Возвращает наименование операции вызываемого веб-сервиса. -- Параметры: -- iOperationRegionID, iOperationID - ключ операции; -- iStrict - поведение при отсутствии операции; -- iDisplayMode - способ вывода результата, как для pkGen.FormatNameWithRKey. FUNCTION GetSvcOperationName(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iStrict PLS_INTEGER, iDisplayMode PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает параметры для отправки запроса в вызываемый веб-сервис для указанного отправителя.
Входные параметры:
- iServiceRegionID, iOperationID - ключ операции веб-сервиса;
- sPathParams - параметры, передаваемые в URL сервиса в виде списка name=value; должны задаваться в параметрах подключения в виде {name} и заменяются на соотвествующее value;
- iStrict - поведение при отсутствии указанного веб-сервиса, а также в случае, если параметры подключения веб-сервиса не заданы или для отправителя не заданы необходимые параметры авторизации.
Выходные параметры:
- sRequestURL - URL для вызова сервиса;
- sBasicAuthUsername - имя пользователя для базовой авторизации;
- sBasicAuthPassword - пароль для базовой авторизации;
- sOAuth2TokenEndpointURL - URL для запроса получения токена доступа OAuth2; null, если OAuth2 не используется;
- sOAuth2TokenRequestParams - параметры для запроса получения токена доступа OAuth2.
GetSvcOperationName
FUNCTION GetSvcOperationName(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iStrict PLS_INTEGER, iDisplayMode PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает наименование операции вызываемого веб-сервиса.
Параметры:
- iOperationRegionID, iOperationID - ключ операции;
- iStrict - поведение при отсутствии операции;
- iDisplayMode - способ вывода результата, как для pkGen.FormatNameWithRKey.
GetSvcOpSOAPAction
FUNCTION GetSvcOpSOAPAction(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает значение свойства SOAPAction заголовка HTTP для указанной операции веб-сервиса.
Параметры:
- iOperationRegionID, iOperationID - ключ операции.
При отсутствии операции возникает exception.
CheckSvcOpPDocCompatibility
PROCEDURE CheckSvcOpPDocCompatibility(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iPDocClassID PLS_INTEGER);
Описание
Проверяет совместимость класса персонального документа с операцией вызываемого веб-сервиса.
Если они несовместимы, возникает exception.
Параметры:
- iOperationRegionID, iOperationID - ключ операции;
- iPDocClassID - ID класса персонального документа.
Если операция или документ не существует, возникает exception.
GetServiceByName
FUNCTION GetServiceByName(iServiceRegionID PLS_INTEGER, sServiceName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Находит веб-сервис по его техническому наименованию.
Параметры:
- iServiceRegionID - ID района веб-сервиса;
- sServiceName - наименование веб-сервиса (нечувствительное к регистру);
- iStrict - поведение при отсутствии указанного веб-сервиса.
Возвращает ID найденного веб-сервиса или null, если такого не найдено.
GetSvcOperationByRequest
FUNCTION GetSvcOperationByRequest(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, sRequestTagName VARCHAR2, sRequestNSURI VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Находит операцию веб-сервиса по имени и пространству имён тега запроса и возвращает её ID.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- sRequestTagName - наименование корневого тега запроса (нечувствительное к регистру);
- sRequestNSURI - URI пространства имён корневого тега запроса операции веб-сервиса (чувствительное к регистру);
- iStrict - поведение при отсутствии указанного веб-сервиса или операции, а также при неоднозначном результате поиска.
GetSvcOperationByResult
FUNCTION GetSvcOperationByResult(iServiceRegionID PLS_INTEGER, iServiceID PLS_INTEGER, sResultTagName VARCHAR2, sResultNSURI VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Находит операцию веб-сервиса по имени и пространству имён тега результата и возвращает её ID.
Параметры:
- iServiceRegionID, iServiceID - ключ веб-сервиса;
- sResultTagName - наименование корневого тега ответа (нечувствительное к регистру);
- sResultNSURI - URI пространства имён корневого тега ответа операции веб-сервиса (чувствительное к регистру);
- iStrict - поведение при отсутствии указанного веб-сервиса или операции, а также при неоднозначном результате поиска.
Работа с атрибутами операций сервисов
GetSvcOpAttribName
FUNCTION GetSvcOpAttribName(iRegionID PLS_INTEGER, iID PLS_INTEGER, iStrict PLS_INTEGER := 0, iDisplayMode PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Возвращает наименование атрибута операции веб-сервиса.
Параметры:
- iRegionID, iID - ключ атрибута;
- iStrict - определяет поведение при отсутствии атрибута;
- iDisplayMode - способ вывода результата, как для pkGen.FormatNameWithRKey.
GetSvcOpAttribValue
FUNCTION GetSvcOpAttribValue(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER, iStrict PLS_INTEGER, iMaxValueLen PLS_INTEGER := NULL) RETURN VARCHAR2;
Описание
Возвращает значение атрибута операции веб-сервиса.
Параметры:
- iOperationRegionID, iOperationID - ключ операции;
- iAttribRegionID, iAttribID - ключ атрибута.
- iStrict - определяет поведение при отсутствии операции, атрибута или его значения;
- iMaxValueLen - максимальная допустимая длина значения атрибута; если null, длина значения не контролируется; если длина значения больше, то при iStrict=0 значение усекается, в противном случае возникает exception.
GetSvcOpAttribValueInt
FUNCTION GetSvcOpAttribValueInt(iOperationRegionID PLS_INTEGER, iOperationID PLS_INTEGER, iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER, iStrict PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает значение атрибута операции веб-сервиса, приведённое к целому. Параметры аналогичны pkSMEVCall.GetSvcOpAttribValue.
GetSvcOpAttribValueName
FUNCTION GetSvcOpAttribValueName(iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER, iValueID PLS_INTEGER) RETURN VARCHAR2;
Описание
Возвращает наименование значения атрибута операции веб-сервиса по его ID.
Параметры:
- iAttribRegionID, iAttribID - ключ атрибута;
- iValueID - значение параметра.
Поддерживаются следующие типы данных:
- Logical;
- PickList;
- MultiPickList;
- LookupID;
- MultiLookupID.
Для остальных типов данных вызывается exception.
Если значение iValueID=null, для поддерживаемых типов данных возвращает null.
GetSvcOpAttribValueName
FUNCTION GetSvcOpAttribValueName(iAttribRegionID PLS_INTEGER, iAttribID PLS_INTEGER, VALUE uszn.TRgnKey, iRgnPrefixType PLS_INTEGER := 0) RETURN VARCHAR2;
Описание
Аналогична предыдущей, но используется для типа данных LookupRKey и MultiLookupRKey.
Дополнительный параметр:
- iRgnPrefixType - вид регионального префикса: 0 - отсутствует; 1 - есть только у районов, отличных от 0; 2 - есть у всех районов.
Привилегии на вызываемые сервисы
GetUserGroupServicePrivs
FUNCTION GetUserGroupServicePrivs(iUserGroupID PLS_INTEGER, iServiceRgnID PLS_INTEGER, iServiceID PLS_INTEGER, iIsPermission PLS_INTEGER) RETURN PLS_INTEGER;
Описание
Возвращает привилегии группы пользователей на сервис.
Параметры:
- iUserGroupID - ID группы пользователей;
- iServiceRgnID, iServiceID - ключ сервиса;
- iIsPermission - какой вид привилегий требуется получить: 0 - запрещение, 1 - разрешение.
Возвращает набор указанных привилегий в виде битовой маски. Если привилегии отсутствуют, возвращает 0.
SetUserGroupServicePrivs
PROCEDURE SetUserGroupServicePrivs(iUserGroupID PLS_INTEGER, iServiceRgnID PLS_INTEGER, iServiceID PLS_INTEGER, iPermittedPrivs PLS_INTEGER, iRestrictedPrivs PLS_INTEGER);
Описание
Устанавливает привилегии группы пользователей на сервис.
Параметры:
- iUserGroupID - ID группы пользователей;
- iServiceRgnID, iServiceID - ключ сервиса;
- iPermittedPrivs - набор разрешений в виде битовой маски;
- iRestrictedPrivs - набор запрещений в виде битовой маски.
GetServiceUserPrivs
FUNCTION GetServiceUserPrivs(iServiceRgnID PLS_INTEGER, iServiceID PLS_INTEGER, sUserName VARCHAR2 := USER) RETURN PLS_INTEGER;
Описание
Возвращает привилегии указанного пользователя на сервис в виде битовой маски.
Параметры:
- iServiceRgnID, iServiceID - ключ сервиса;
- sUserName - имя пользователя СУБД.
CheckServicePriv
PROCEDURE CheckServicePriv(iServiceRgnID PLS_INTEGER, iServiceID PLS_INTEGER, iPriv PLS_INTEGER);
Описание
Проверяет, что у текущего пользователя есть все указанные привилегии на сервис.
Параметры:
- iServiceRgnID, iServiceID - ключ сервиса;
- iPriv - сумма битовых флагов проверяемых привилегий.
Подготовка запросов и обработка ответов
PrepareRequestData
PROCEDURE PrepareRequestData( iRegionID PLS_INTEGER, iServiceRegionID PLS_INTEGER, iOperationID PLS_INTEGER, ExtraIntParams IN uszn.TString30WithIDList, bResult OUT BLOB); -- Обрабатывает результаты выполнения запроса, выполняя соответствующее SQL-выражение операции. -- Параметры: -- iRegionID - ID района, в который направлен запрос; -- iServiceRegionID, iOperationID - ключ операции вызываемого веб-сервиса; -- ExtraIntParams - список дополнительных целочисленных входных параметров, зависящих от версии -- веб-сервиса; -- iIsProcessed - выполнялась ли обработка (0/1); -- iWarningCount - количество предупреждений, возникших в процессе обработки; -- iErrorCount - количество сбоев, возникших в процессе обработки; -- sErrorMsg - сообщение об ошибке (при наличии ошибки); -- cLogData - протокол обработки; -- iAudOriginID - ID источника события для аудита по документу; -- sAudNotes - примечания для аудита по документу. -- Разобранные данные ответа в виде XML уже должны находиться во временной таблице. -- Если операция не существует, возникает соответствующий exception. -- Если операция не поддерживает обработку результатов, ничего не делает, во всех out-параметрах, кроме iIsProcessed, -- возвращает null.
Описание
Подготавливает данные запроса, выполняя соответствующее SQL-выражение операции.
Параметры:
- iRegionID - ID района, в который направлен запрос;
- iServiceRegionID, iOperationID - ключ операции вызываемого веб-сервиса;
- ExtraIntParams - список дополнительных целочисленных входных параметров;
- bResult - данные запроса (SOAP-конверт).
Если операция не существует или не поддерживает подготовку данных запроса, возникает exception.
ProcessResult
PROCEDURE ProcessResult( iRegionID PLS_INTEGER, iServiceRegionID PLS_INTEGER, iOperationID PLS_INTEGER, ExtraIntParams uszn.TString30WithIDList, iIsProcessed OUT PLS_INTEGER, iWarningCount OUT PLS_INTEGER, iErrorCount OUT PLS_INTEGER, sErrorMsg OUT VARCHAR2, cLogData OUT CLOB, iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2 := NULL); -- Устанавливает реквизит-флаг отправки запроса с использованием первичного документа с данными запроса. -- Параметры: -- iRegionID, iRequestPDocID - ключ экземпляра документа запроса; -- iAudOriginID - ID источника события для аудита; -- sAudNotes - комментарии для аудита. -- Если документ не существует, заблокирован или пользователь не имеет прав на просмотр и редактирование документа и -- его реквизитов, возникает exception. -- Если реквизит-флаг отправки уже установлен, ничего не делает. PROCEDURE PDocRequestIsSent(iRegionID PLS_INTEGER, iRequestPDocID PLS_INTEGER, iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2); END; / CREATE OR REPLACE PACKAGE BODY uszn.pkSMEVCall IS /********************************************************************************************************************/
Описание
Обрабатывает результаты выполнения запроса, выполняя соответствующее SQL-выражение операции.
Параметры:
- iRegionID - ID района, в который направлен запрос;
- iServiceRegionID, iOperationID - ключ операции вызываемого веб-сервиса;
- ExtraIntParams - список дополнительных целочисленных входных параметров, зависящих от версии веб-сервиса;
- iIsProcessed - выполнялась ли обработка (0/1);
- iWarningCount - количество предупреждений, возникших в процессе обработки;
- iErrorCount - количество сбоев, возникших в процессе обработки;
- sErrorMsg - сообщение об ошибке (при наличии ошибки);
- cLogData - протокол обработки;
- iAudOriginID - ID источника события для аудита по документу;
- sAudNotes - примечания для аудита по документу.
Разобранные данные ответа в виде XML уже должны находиться во временной таблице.
Если операция не существует, возникает соответствующий exception.
Если операция не поддерживает обработку результатов, ничего не делает, во всех out-параметрах, кроме iIsProcessed,
возвращает null.
PDocRequestIsSent
PROCEDURE PDocRequestIsSent(iRegionID PLS_INTEGER, iRequestPDocID PLS_INTEGER, iAudOriginID PLS_INTEGER, sAudNotes VARCHAR2);
Описание
Устанавливает реквизит-флаг отправки запроса с использованием первичного документа с данными запроса.
Параметры:
- iRegionID, iRequestPDocID - ключ экземпляра документа запроса;
- iAudOriginID - ID источника события для аудита;
- sAudNotes - комментарии для аудита.
Если документ не существует, заблокирован или пользователь не имеет прав на просмотр и редактирование документа и
его реквизитов, возникает exception.
Если реквизит-флаг отправки уже установлен, ничего не делает.