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

pkFkECert.sql

Сообщения об ошибках и проверки

Error_NoECertKind

PROCEDURE Error_NoECertKind(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Вид электронного сертификата не найден».

Error_NoECert

PROCEDURE Error_NoECert(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Электронный сертификат не найден».

Error_ECertIsLocked

PROCEDURE Error_ECertIsLocked(iRgnID PLS_INTEGER, iID PLS_INTEGER);

Описание

Генерирует exception «Запись электронного сертификата заблокирована».

Error_InvalidActionKind

PROCEDURE Error_InvalidActionKind(iActionKindID PLS_INTEGER);

Описание

Вызывает exception “Недопустимый вид операции с ЭС”.

Error_InvalidExpAction

PROCEDURE Error_InvalidExpAction(iAction PLS_INTEGER);

Описание

Вызывает exception “Недопустимая операция экспорта”.

Error_InvalidStatusID

PROCEDURE Error_InvalidStatusID(iStatusID PLS_INTEGER);

Описание

Вызывает exception “Статус ЭС не существует”.

Error_InvalidReasonID

PROCEDURE Error_InvalidReasonID(iReasonID PLS_INTEGER);

Описание

Вызывает exception “Причина операции над ЭС не существует”.

CheckActionReason

PROCEDURE CheckActionReason(iReasonID PLS_INTEGER, iActionKindID PLS_INTEGER);

Описание

Проверяет, что указанный ID причины операции над ЭС соответствует требуемому виду операции.
Параметры:

  • iReasonID - ID причины (запись справочника “Причины действия с электронными сертификатами”);
  • iActionKindID - ID требуемого вида операции с ЭС; константа из числа IECertActKindID_xxx.

CheckStatusIsEditable

PROCEDURE CheckStatusIsEditable(iECertStatusID PLS_INTEGER);

Описание

Проверяет, что указанный статус электронного сертификата допускает редактирование.
Параметры:

  • iECertStatusID - статус электронного сертификата.

CheckStatusIsBlockable

PROCEDURE CheckStatusIsBlockable(iECertStatusID PLS_INTEGER);

Описание

Проверяет, что указанный статус электронного сертификата допускает блокировку.
Параметры:

  • iECertStatusID - статус электронного сертификата.

Справочники, преобразования и перекодировки

DateTimeStrToLocalTime

FUNCTION DateTimeStrToLocalTime(sValue VARCHAR2, iStrict PLS_INTEGER) RETURN DATE;

Описание

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

DecodeUsageStatus

FUNCTION DecodeUsageStatus(sCode VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Декодирует статус использования электронного сертификата.
Параметры:

  • sCode - код статуса использования;
  • iStrict - определяет поведение при недопустимом коде.

Возвращает ID статуса использования.
Если sCode=null, возвращает null.

DecodeECertStatus

FUNCTION DecodeECertStatus(sCode VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Декодирует статус электронного сертификата.
Параметры:

  • sCode - код статуса сертификата;
  • iStrict - определяет поведение при недопустимом коде.

Возвращает ID записи справочника “Статусы электронных сертификатов”.
Если sCode=null, возвращает null.

DecodeECertActionReason

FUNCTION DecodeECertActionReason(iActionKindID PLS_INTEGER, sCode VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Декодирует причину действия с электронным сертификатом.
Параметры:

  • iActionKindID - ID вида действия; константа из числа IECertActKindID_xxx;
  • sCode - код причины;
  • iStrict - определяет поведение при отсутствии такой причины.

Возвращает ID записи справочника “Причины действия с электронными сертификатами”.
Если sCode=null, возвращает null.

DecodeECertOpType

FUNCTION DecodeECertOpType(sCode VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Декодирует тип операции по электронному сертификату.
Параметры:

  • sCode - код типа операции;
  • iStrict - определяет поведение при недопустимом коде.

Возвращает ID записи справочника “Типы операций по электронным сертификатам”.
Если sCode=null, возвращает null.

GetECertTransAddressID

FUNCTION GetECertTransAddressID(sAddress VARCHAR2, iCreate PLS_INTEGER, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает ID адреса транзакции из справочника адресов транзакций ЭС.
Параметры:

  • sAddress - адрес;
  • iCreate - создавать ли адрес при его отсутствии (0/1);
  • iStrict - определяет поведение при отсутствии адреса; применяется только при iCreate=0.

GetECertTransOrgID

FUNCTION GetECertTransOrgID(sFullName VARCHAR2, sINN VARCHAR2, sKPP VARCHAR2, iCreate PLS_INTEGER, iUpdate PLS_INTEGER, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает ID организации из справочника организаций транзакций ЭС.
Параметры:

  • sFullName - полное наименование;
  • sINN - ИНН;
  • sKPP - КПП (необязательно);
  • iCreate - создавать ли организацию при её отсутствии (0/1);
  • iUpdate - обновлять ли наименование существующей организации (0/1);
  • iStrict - определяет поведение при отсутствии организации; применяется только при iCreate=0.

Организация идентифицируется по ИНН и КПП.

GetECertTransLocationID

FUNCTION GetECertTransLocationID(sAddress VARCHAR2, nLatitude NUMBER, nLongitude NUMBER, sWebsite VARCHAR2, iCreate PLS_INTEGER, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает ID точки продаж из справочника точек продаж транзакций ЭС.
Параметры:

  • sAddress - адрес;
  • nLatitude - широта;
  • nLongitude - долгота;
  • sWebsite - адрес веб-сайта;
  • iCreate - создавать ли точку продаж при её отсутствии (0/1);
  • iStrict - определяет поведение при отсутствии точки продаж; применяется только при iCreate=0.

Точка продаж идентифицируется по адресу, широте и долготе либо по адресу веб-сайта.

Работа с экземплярами сертификатов

AllocateNewECertID

FUNCTION AllocateNewECertID(iRegionID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает новый ID электронного сертификата в заданном районе.

AllocateNewECertGoodsID

FUNCTION AllocateNewECertGoodsID(iRegionID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает новый ID товара электронного сертификата в заданном районе.

AllocateNewECertTransID

FUNCTION AllocateNewECertTransID RETURN PLS_INTEGER;

Описание

Возвращает новый ID транзакции электронного сертификата.

AllocateNewECertTransGoodsID

FUNCTION AllocateNewECertTransGoodsID(iRegionID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает новый ID товара/услуги транзакции электронного сертификата в заданном районе.

AllocateNewECertStatusHistID

FUNCTION AllocateNewECertStatusHistID(iRegionID PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Возвращает новый ID записи истории статусов электронного сертификата в заданном районе.

ECert_Create

FUNCTION ECert_Create(iRegionID PLS_INTEGER, iAsgAmountID PLS_INTEGER, iCertKindRgnID PLS_INTEGER, iCertKindID PLS_INTEGER, dDateStart DATE, dDateEnd DATE) RETURN PLS_INTEGER;

Описание

Создаёт электронный сертификат для назначенной суммы.
Для получения СНИЛС и номера карты МИР используются текущие параметры выплаты.
Параметры:

  • iRegionID, iAsgAmountID - ключ назначенной суммы;
  • iCertKindRgnID, iCertKindID - ключ вида сертификата;
  • dDateStart, dDateEnd - период действия сертификата.

Возвращает ID созданной записи.
Если пользователь не имеет привилегий на просмотр назначенных сумм или параметров выплаты, возникает exception.

ECert_Edit

PROCEDURE ECert_Edit(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Обновляет данные электронного сертификата на основании текущих параметров выплаты и помечает его данные к отправке
в ГИС ЭС.
Параметры:

  • iRegionID, iID - ключ электронного сертификата.

Если сертификат не существует или находится в неподходящем состоянии, возникает exception.
Если пользователь не имеет привилегий на просмотр назначенных сумм или параметров выплаты, возникает exception.

ECert_Block

PROCEDURE ECert_Block(iRegionID PLS_INTEGER, iID PLS_INTEGER, iBlockReasonID PLS_INTEGER, iClearAsgAmountID PLS_INTEGER, iDelNotExisting PLS_INTEGER);

Описание

Помечает электронный сертификат к блокировке.
Параметры:

  • iRegionID, iID - ключ электронного сертификата;
  • iBlockReasonID - ID причины блокировки;
  • iClearAsgAmountID - обнулять ли связь с назначенной суммой (0/1);
  • iDelNotExisting - удалять ли сертификаты, которые ещё не отправлены в ГИС ЭС (0/1).

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

ECert_GetState

PROCEDURE ECert_GetState(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Помечает электронный сертификат к получению актуального состояния.
Параметры:

  • iRegionID, iID - ключ электронного сертификата;

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

ECert_ResetExpAction

PROCEDURE ECert_ResetExpAction(iRegionID PLS_INTEGER, iID PLS_INTEGER, iForce PLS_INTEGER);

Описание

Сбрасывает состояние экспорта электронного сертификата в ГИС ЭС.
Параметры:

  • iRegionID, iID - ключ электронного сертификата;
  • iForce - игнорировать ли текущее состояние сертификата (0/1).

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

ECert_Delete

PROCEDURE ECert_Delete(iRegionID PLS_INTEGER, iID PLS_INTEGER);

Описание

Удаляет электронный сертификат.
Параметры:

  • iRegionID, iID - ключ электронного сертификата;

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

Взаимодействие с ГИС ЭС

ECertService_Export

PROCEDURE ECertService_Export(
  iRegionID PLS_INTEGER, iAction PLS_INTEGER, rkCertKind uszn.TRgnKey, iMaxCount PLS_INTEGER,
  iOutMsgCount IN OUT PLS_INTEGER, iCertCount IN OUT PLS_INTEGER, iErrorCount IN OUT NOCOPY PLS_INTEGER,
  iTaskRecID PLS_INTEGER, LOG IN OUT NOCOPY uszn.pkServerOps.TServerOpLog, iLogLevel PLS_INTEGER);
 
-- Обрабатывает данные ответа на запрос по виду сведений "Формирование, изменение, блокирование, запрос актуального
-- состояния электронного сертификата".
-- Параметры:
--   iIncMsgID      - ID входящего сообщения СМЭВ-3;
--   iDataRootTagID - ID корневого тега с данными вида сведений;
--   Response       - структурированные данные технической части ответа;
--   Log            - протокол;
--   iLogLevel      - уровень отсутпа в протоколе;
--   iErrorCount    - общее количество сбоев в процессе обработки;
--   iWarningCount  - общее количество предупреждений в процессе обработки;
--   iTotalRecCount - суммарное количество записей в ответе;
--   iProcRecCount  - количество обработанных записей;
--   iFailRecCount  - количество сбойных записей.
PROCEDURE ProcessECertSvcResponse(
  iIncMsgID PLS_INTEGER, iDataRootTagID PLS_INTEGER, Response uszn.pkSMEV3.TGetResponseResponse,
  LOG IN OUT NOCOPY uszn.pkServerOps.TServerOpLog, iLogLevel IN OUT NOCOPY PLS_INTEGER,

Описание

Отправляет в ГИС ЭС запрос по виду сведений “Формирование, изменение, блокирование, запрос актуального состояния
электронного сертификата”.
Параметры:

  • iRegionID - ID района;
  • iAction - вид операции экспорта; константа из числа pkFkECert.IExpAction_xxx;
  • rkCertKind - ключ вида сертификата; null, если запросы нужно отправлять по всем видам сертификатов;
  • iMaxCount - максимальное количество записей в пакете (на данный момент ограничение ВС - не более 100);
  • iOutMsgCount - количество отправленных запросов в СМЭВ;
  • iCertCount - количество сертификатов, по которым отправлены запросы;
  • iErrorCount - счётчик ошибок при обработке;
  • iTaskRecID - ID записи серверной операции;
  • Log - протокол;
  • iLogLevel - начальный уровень отступа в протоколе.

Формирует запросы по ещё не отправленным сертификатам, ожидающим указанной операции.

ProcessECertSvcResponse

PROCEDURE ProcessECertSvcResponse(
  iIncMsgID PLS_INTEGER, iDataRootTagID PLS_INTEGER, Response uszn.pkSMEV3.TGetResponseResponse,
  LOG IN OUT NOCOPY uszn.pkServerOps.TServerOpLog, iLogLevel IN OUT NOCOPY PLS_INTEGER,
  iErrorCount IN OUT NOCOPY PLS_INTEGER, iWarningCount IN OUT NOCOPY PLS_INTEGER,
  iTotalRecCount OUT PLS_INTEGER, iProcRecCount OUT PLS_INTEGER, iFailRecCount OUT PLS_INTEGER);
 
-- Обрабатывает данные запроса по виду сведений "Уведомление об изменении состояния электронного сертификата".
-- Параметры:
--   iIncMsgID      - ID входящего сообщения СМЭВ-3;
--   Request        - структурированные данные технической части запроса;
--   iDataRootTagID - ID корневого тега с данными вида сведений;
--   Log            - протокол;
--   iLogLevel      - уровень отступа в протоколе;
--   iErrorCount    - общее количество сбоев в процессе обработки;
--   iWarningCount  - общее количество предупреждений в процессе обработки;
--   iTotalRecCount - суммарное количество записей в ответе;
--   iProcRecCount  - количество обработанных записей;
--   iFailRecCount  - количество сбойных записей.
PROCEDURE ProcessECertNotifyRequest(
  iIncMsgID PLS_INTEGER, Request uszn.pkSMEV3.TGetRequestResponse, iDataRootTagID PLS_INTEGER,
  LOG IN OUT NOCOPY uszn.pkServerOps.TServerOpLog, iLogLevel IN OUT NOCOPY PLS_INTEGER,

Описание

Обрабатывает данные ответа на запрос по виду сведений “Формирование, изменение, блокирование, запрос актуального
состояния электронного сертификата”.
Параметры:

  • iIncMsgID - ID входящего сообщения СМЭВ-3;
  • iDataRootTagID - ID корневого тега с данными вида сведений;
  • Response - структурированные данные технической части ответа;
  • Log - протокол;
  • iLogLevel - уровень отсутпа в протоколе;
  • iErrorCount - общее количество сбоев в процессе обработки;
  • iWarningCount - общее количество предупреждений в процессе обработки;
  • iTotalRecCount - суммарное количество записей в ответе;
  • iProcRecCount - количество обработанных записей;
  • iFailRecCount - количество сбойных записей.

ProcessECertNotifyRequest

PROCEDURE ProcessECertNotifyRequest(
  iIncMsgID PLS_INTEGER, Request uszn.pkSMEV3.TGetRequestResponse, iDataRootTagID PLS_INTEGER,
  LOG IN OUT NOCOPY uszn.pkServerOps.TServerOpLog, iLogLevel IN OUT NOCOPY PLS_INTEGER,
  iErrorCount IN OUT NOCOPY PLS_INTEGER, iWarningCount IN OUT NOCOPY PLS_INTEGER,
  iTotalRecCount OUT PLS_INTEGER, iProcRecCount OUT PLS_INTEGER, iFailRecCount OUT PLS_INTEGER);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkFkECert IS
 
Resource_Busy EXCEPTION;
PRAGMA exception_init(Resource_Busy, -54);
 
-- Ключи видов сведений:
-- -- Формирование, изменение, блокирование, запрос актуального состояния электронного сертификата (1.1.0)
IDK_RgnID_ECertService         CONSTANT PLS_INTEGER := 0;
IDK_ID_ECertService            CONSTANT PLS_INTEGER := 99;
-- -- Уведомление об изменении состояния электронного сертификата (1.1.0)
IDK_RgnID_ECertNotify          CONSTANT PLS_INTEGER := 0;
IDK_ID_ECertNotify             CONSTANT PLS_INTEGER := 100;

Описание

Обрабатывает данные запроса по виду сведений “Уведомление об изменении состояния электронного сертификата”.
Параметры:

  • iIncMsgID - ID входящего сообщения СМЭВ-3;
  • Request - структурированные данные технической части запроса;
  • iDataRootTagID - ID корневого тега с данными вида сведений;
  • Log - протокол;
  • iLogLevel - уровень отступа в протоколе;
  • iErrorCount - общее количество сбоев в процессе обработки;
  • iWarningCount - общее количество предупреждений в процессе обработки;
  • iTotalRecCount - суммарное количество записей в ответе;
  • iProcRecCount - количество обработанных записей;
  • iFailRecCount - количество сбойных записей.