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

pkInterDeptProc.sql

Корпоративная Информационная Система iSZN

GetRequestForSmev3IncMsg

PROCEDURE GetRequestForSmev3IncMsg(iIncMsgID PLS_INTEGER, iRegionID OUT PLS_INTEGER, iRequestPDocID OUT PLS_INTEGER, iRequestID OUT INTEGER, cLog IN OUT NOCOPY CLOB, iLogLevel PLS_INTEGER, iCheckPrivs PLS_INTEGER := 1+2+16, iStrictRequestFound PLS_INTEGER := 1);

Описание

Находит межведомственный запрос и документ с его данными по ID входящего сообщения СМЭВ-3.
Входные параметры:

  • iIncMsgID - ID входящего сообщения с ответом;
  • iLogLevel - уровень вложенности для протоколирования;
  • iCheckPrivs - проверяемый набор привилегий; по умолчанию - просмотр реквизитов, просмотр и редактирование документа;
  • iStrictRequestFound - определяет поведение, если документ найден, а межведомственный запрос отсутствует.

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

  • iRegionID, iRequestPDocID - ключ документа с данными запроса;
  • iRequestID - ID межведомственного запроса.
  • cLog - протокол.

Если данные найти не удалось, вызывает exception.
Найденный документ блокируется и проверяются привилегии пользователя на его просмотр и редактирование.

GetRequestForGenSvcOutMsg

PROCEDURE GetRequestForGenSvcOutMsg(iRegionID PLS_INTEGER, iOutMsgID PLS_INTEGER, iRequestPDocID OUT PLS_INTEGER, iRequestID OUT INTEGER, cLog IN OUT NOCOPY CLOB, iLogLevel PLS_INTEGER, iCheckPrivs PLS_INTEGER := 1+2+16, iStrictRequestFound PLS_INTEGER := 1);

Описание

Находит межведомственный запрос и документ с его данными по ID исходящего сообщения простого сервиса.
Входные параметры:

  • iRegionID, iOutMsgID - ключ исходящего сообщения с запросом;
  • iLogLevel - уровень вложенности для протоколирования;
  • iCheckPrivs - проверяемый набор привилегий; по умолчанию - просмотр реквизитов, просмотр и редактирование документа;
  • iStrictRequestFound - определяет поведение, если документ найден, а межведомственный запрос отсутствует.

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

  • iRequestPDocID - ID документа с данными запроса;
  • iRequestID - ID межведомственного запроса.
  • cLog - протокол.

Если данные найти не удалось, вызывает exception.
Найденный документ блокируется и проверяются привилегии пользователя на его просмотр и редактирование.

ParseSmev3IncMsgFailure

PROCEDURE ParseSmev3IncMsgFailure(
    iResponseTagID PLS_INTEGER, iResultStatusID OUT PLS_INTEGER, sErrorMsg OUT VARCHAR2, iErrorCount IN OUT NOCOPY PLS_INTEGER, cLog IN OUT NOCOPY CLOB, iLogLevel PLS_INTEGER,
    iProcAccessDenied PLS_INTEGER := 1, iProcNoData PLS_INTEGER := 1, iProcUnknownRequest PLS_INTEGER := 0, iProcFailure PLS_INTEGER := 0);
-- Обновляет статус запроса с выводом информации в протокол.
-- Параметры:
--   iRegionID, iRequestID - ключ межведомственного запроса;
--   iStatusID             - ID статуса; константа из числа pkInterDept.IReqStatus_xxx;
--   sStatusMessage        - сообщение к статусу;
--   iErrorCount           - счётчик ошибок;
--   cLog                  - протокол;
--   iLogLevel             - уровень вложенности для протоколирования.
-- Если iRequestID не задан (null), ничего не делает. Сделано для удобства при обработке сбоев, когда запрос может
-- быть ещё не найден.
-- При возникновении любого сбоя ошибка пишется в протокол, чтобы можно было использовать после блока try...exception
-- в обработчике ответа.
PROCEDURE UpdateRequestStatus(iRegionID PLS_INTEGER, iRequestID PLS_INTEGER, iStatusID PLS_INTEGER, sStatusMessage VARCHAR2, iErrorCount IN OUT NOCOPY PLS_INTEGER, cLog IN OUT NOCOPY CLOB, iLogLevel PLS_INTEGER);
 
END;
 
/
CREATE OR REPLACE PACKAGE BODY uszn.pkInterDeptProc IS

Описание

Выполняет “стандартный” разбор ответного сообщения от СМЭВ-3 с данными об ошибке или отказе и выводит соответствующую
информацию в протокол.
Входные параметры:

  • iResponseTagID - ID тега <GetResponseResponse>;
  • iLogLevel - уровень вложенности для протоколирования;

в т. ч. признаки стандартной обработки причин отклонения запроса (0/1):

  • iProcAccessDenied - ACCESS_DENIED;
  • iProcNoData - NO_DATA;
  • iProcUnknownRequest - UNKNOWN_REQUEST_DESCRIPTION;
  • iProcFailure - FAILURE.

Необработанные причины отклонения запроса возвращаются в виде pkInterDept.IReqStatus_Failed.
Выходные параметры:

  • iResultStatusID - ID итогового статуса межведомственного запроса; константа из числа pkInterDept.IReqStatus_xxx;
  • sErrorMsg - сообщение к статусу (усекается до 4000 символов);
  • iErrorCount - счётчик ошибок при обработке; сам по себе ответ с ошибкой уже считается ошибкой, поэтому, как правило, счётчик инкрементируется на 1;
  • cLog - протокол.

Сообщение должно быть уже разобрано во временную таблицу.
Если вид ответа не распознан или необходимых тегов не найдено, вызывает exception.

UpdateRequestStatus

PROCEDURE UpdateRequestStatus(iRegionID PLS_INTEGER, iRequestID PLS_INTEGER, iStatusID PLS_INTEGER, sStatusMessage VARCHAR2, iErrorCount IN OUT NOCOPY PLS_INTEGER, cLog IN OUT NOCOPY CLOB, iLogLevel PLS_INTEGER);

Описание

Обновляет статус запроса с выводом информации в протокол.
Параметры:

  • iRegionID, iRequestID - ключ межведомственного запроса;
  • iStatusID - ID статуса; константа из числа pkInterDept.IReqStatus_xxx;
  • sStatusMessage - сообщение к статусу;
  • iErrorCount - счётчик ошибок;
  • cLog - протокол;
  • iLogLevel - уровень вложенности для протоколирования.

Если iRequestID не задан (null), ничего не делает. Сделано для удобства при обработке сбоев, когда запрос может
быть ещё не найден.
При возникновении любого сбоя ошибка пишется в протокол, чтобы можно было использовать после блока try...exception
в обработчике ответа.