Документация 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.
Если реквизит-флаг отправки уже установлен, ничего не делает.