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

pkUniCard104.sql

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

Error_InvalidFileName

PROCEDURE Error_InvalidFileName(sFileName VARCHAR2);

Описание

Вызывает exception “Недопустимое имя файла”.

Error_InvalidDirName

PROCEDURE Error_InvalidDirName(sDirName VARCHAR2);

Описание

Вызывает exception “Для имени каталога не сопоставлен вид экспорта”.

Error_NoExportKind

PROCEDURE Error_NoExportKind(iID PLS_INTEGER);

Описание

Вызывает exception “Вид экспорта не существует”.

Error_NoMessageFile

PROCEDURE Error_NoMessageFile(sFileName VARCHAR2);

Описание

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

Error_NoMessageID

PROCEDURE Error_NoMessageID(iID PLS_INTEGER);

Описание

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

Error_MessageFileExists

PROCEDURE Error_MessageFileExists(sFileName VARCHAR2);

Описание

Вызывает exception “Сообщение уже существует”.

Работа со справочниками

GetExportKindName

FUNCTION GetExportKindName(iID VARCHAR2, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

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

GetExportKindDirName

FUNCTION GetExportKindDirName(iID VARCHAR2, iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

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

GetExportKindID

FUNCTION GetExportKindID(sDirName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

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

  • sDirName - имя каталога;
  • iStrict - определяет поведение при отсутствии в справочнике вида экспорта с данным именем каталога.

Поиск выполняется с учётом регистра символов.

Конфигурация

GetExchangeRootDir

FUNCTION GetExchangeRootDir(iStrict PLS_INTEGER) RETURN VARCHAR2;

Описание

Возвращает наименование корневого каталога обмена на сервере. Параметр iStrict определяет поведение при возникновении ошибки.

PrepareExchangeDirs

PROCEDURE PrepareExchangeDirs;

Описание

Создаёт необходимые для обмена каталоги в соответствии с настройками в конфигураторе.

LoadIncomeMessages

PROCEDURE LoadIncomeMessages(iTaskRecID PLS_INTEGER, hLog IN OUT NOCOPY UTL_FILE.File_Type, iLogLevel IN OUT PLS_INTEGER, iLoadedCount IN OUT NOCOPY PLS_INTEGER);

Описание

Загружает данные из подкаталогов входного каталога.
Параметры:

  • iTaskRecID - ID записи серверной операции; null, если отсутствует;
  • hLog - дескриптор файла протокола;
  • iLogLevel - уровень вложенности для протокола;
  • iLoadedCount - количество загруженных сообщений.

UploadOutMessages

PROCEDURE UploadOutMessages(iTaskRecID PLS_INTEGER, hLog IN OUT NOCOPY UTL_FILE.File_Type, iLogLevel IN OUT PLS_INTEGER, iUploadedCount IN OUT NOCOPY PLS_INTEGER);

Описание

Выгружает данные по исходящим сообщениям.
Параметры:

  • iTaskRecID - ID записи серверной операции; null, если отсутствует;
  • hLog - дескриптор файла протокола;
  • iLogLevel - уровень вложенности для протокола;
  • iUploadedCount - количество выгруженных сообщений.

ParseMessageData

PROCEDURE ParseMessageData(
  iMessageID PLS_INTEGER, iClearTable PLS_INTEGER, iComputeStatistics PLS_INTEGER, iExtractNSPrefix PLS_INTEGER,
  iMaxBatchSize PLS_INTEGER := 30, iCustomData PLS_INTEGER := NULL, iCommitBatch PLS_INTEGER := 1, iSaveIgnorableWS PLS_INTEGER := 0);
 
/*********************************************************************************************************************
 Работа с сообщениями
*********************************************************************************************************************/
 
-- Ищет входящее сообщение по имени файла.
FUNCTION  GetMessageID(sFileName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Распаковывает файл сообщения и парсит его.
Параметры:

  • iMessageID - ID сообщения;
  • iClearTable - удалять ли содержимое таблицы перед началом парсинга (0-нет, 1-да);
  • iComputeStatistics - выполнять ли пересчёт статистики после завершения разбора (0-нет, 1-да);
  • iExtractNSPrefix - извлекать ли префикс пространства имён в отдельный столбец (0-нет, 1-да);
  • iMaxBatchSize - максимальное количество записей, добавляемых/обновляемых за один приём;
  • iCustomData - дополнительные пользовательские данные; помещаются без изменений в столбец custom_data;
  • iCommitBatch - выполнять ли commit после каждой порции добавленых данных;
  • iSaveIgnorableWS - сохранять ли игнорируемые пробелы (0/1).

Если сообщение не существует, возникает exception.

Работа с сообщениями

GetMessageID

FUNCTION GetMessageID(sFileName VARCHAR2, iStrict PLS_INTEGER) RETURN PLS_INTEGER;

Описание

Ищет входящее сообщение по имени файла.

CheckMessageDoesNotExist

PROCEDURE CheckMessageDoesNotExist(sFileName VARCHAR2);

Описание

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

ParseExportFileName

PROCEDURE ParseExportFileName(sFileName VARCHAR2, iMessageKind OUT PLS_INTEGER, iExportKindID OUT PLS_INTEGER, dSendDateTime OUT DATE, iMsgOrderNum OUT PLS_INTEGER);

Описание

Разбирает имя файла в формате R_T_YYYYMMDD_HHNNSS_Z.EXT, где:

  • R – константа, принимает значение: “REQUEST” - для сообщений-запросов и сообщений-флагов. “ANSWER” - для сообщений-ответов.
  • T – константа, ее значение соответствует наименованию каталога, в который помещается файл;
  • YYYY – год отправки сообщения.
  • MM – месяц отправки сообщения.
  • DD – день отправки сообщения.
  • HH – часа отправки сообщения.
  • NN – минуты отправки сообщения.
  • SS – секунды отправки сообщения.
  • Z – порядковый номер сообщения в рамках одного дня;
  • EXT - расширение; должно быть xml.zip.

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

  • sFileName - имя файла.

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

  • iMessageKind - вид сообщения; константа из числа IMessageKind_xxx;
  • iExportKindID - ID вида экспорта;
  • dSendDateTime - дата и время отправки сообщения;
  • iMsgOrderNum - порядковый номер сообщения в рамках одного дня.

Если имя файла или расширение некорректно, возникает exception.

GetExportFileName

FUNCTION GetExportFileName(iMessageKind PLS_INTEGER, iExportKindID PLS_INTEGER, dSendDateTime DATE, iMsgOrderNum PLS_INTEGER) RETURN VARCHAR2;

Описание

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

  • iMessageKind - вид сообщения; константа из числа IMessageKind_xxx;
  • iExportKindID - ID вида экспорта;
  • dSendDateTime - дата и время отправки сообщения;
  • iMsgOrderNum - порядковый номер сообщения в рамках одного дня.

Расширение файла xml.

GetNextMsgOrderNum

FUNCTION GetNextMsgOrderNum(iExportKindID PLS_INTEGER, dSendDateTime DATE) RETURN PLS_INTEGER;

Описание

Возвращает очередной номер для исходящего сообщения.
Параметры:

  • iExportKindID - ID вида экспорта;
  • dSendDateTime - дата и время отправки сообщения.

LoadIncomeMessageFile

FUNCTION LoadIncomeMessageFile(sFileDir VARCHAR2, sFileName VARCHAR2) RETURN PLS_INTEGER;

Описание

Загружает входящее сообщение из файла в таблицу сообщения.
Параметры:

  • sFileDir - имя серверного каталога, в котором находится файл;
  • sFileName - имя файла.

Возвращает ID созданного сообщения.

AddOutgoingRequest

PROCEDURE AddOutgoingRequest(iExportKindID PLS_INTEGER, dSendDateTime DATE, bFileContent BLOB, sFileName OUT VARCHAR2, iMessageID OUT PLS_INTEGER);

Описание

Создаёт новое исходящее сообщение-запрос.
Входные параметры:

  • iExportKindID - ID вида экспорта;
  • dSendDateTime - дата и время формирования сообщения;
  • bFileContent - содержимое файла сообщения (null, если файл ещё не сформирован).

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

  • sFileName - имя файла;
  • iMessageID - ID созданного сообщения.

AddOutgoingResponse

PROCEDURE AddOutgoingResponse(iExportKindID PLS_INTEGER, iRequestID PLS_INTEGER, bFileContent BLOB, sFileName OUT VARCHAR2, iMessageID OUT PLS_INTEGER);

Описание

Создаёт новое исходящее сообщение-ответ.
Входные параметры:

  • iExportKindID - ID вида экспорта;
  • iRequestID - ID входящего сообщения-запроса;
  • bFileContent - содержимое файла сообщения.

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

  • sFileName - имя файла;
  • iMessageID - ID созданного сообщения.

DeleteMessage

PROCEDURE DeleteMessage(iMessageID PLS_INTEGER);

Описание

Удаляет сообщение. При наличии файла с данными он также удаляется (если больше нигде не используется). Если сообщение не существует, ничего не делает.

GetMessageFileContent

FUNCTION GetMessageFileContent(iMessageID PLS_INTEGER, iStrict PLS_INTEGER) RETURN BLOB;

Описание

Возвращает содержимое файла сообщения.
Параметры:

  • iMessageID - ID сообщения;
  • iStrict - определяет поведение при отсутствии сообщения и при отсутствии файла с данными сообщения.

SetProcessStatus

PROCEDURE SetProcessStatus(iMessageID PLS_INTEGER, iStatus PLS_INTEGER, sErrMessage VARCHAR2);

Описание

Устанавливает статус обработки сообщения.
Параметры:

  • iMessageID - ID сообщения;
  • iStatus - статус обработки: 1 - обработано успешно 2 - сбой 3 - обработка прервана
  • sErrMessage - сообщение об ошибке; null, если статус обработки отличен от 2.

Если сообщение не существует, ничего не делает.

RestartProcessing

PROCEDURE RestartProcessing(iMessageID PLS_INTEGER, iDeleteResponse PLS_INTEGER);

Описание

Ставит сообщение в очередь для повторной обработки сбрасывая признак обработки.
Параметры:

  • iMessageID - ID сообщения;
  • iDeleteResponse - удалять ли существующий ответ (при наличии); игнорируется, если это исходящее сообщение.