Документация iSZN
pkUniCard104.sql
Сообщения об ошибках
Error_InvalidFileName
Описание
Вызывает exception “Недопустимое имя файла”.
Error_InvalidDirName
Описание
Вызывает exception “Для имени каталога не сопоставлен вид экспорта”.
Error_NoExportKind
PROCEDURE Error_NoExportKind(iID PLS_INTEGER);
Описание
Вызывает exception “Вид экспорта не существует”.
Error_NoMessageFile
Описание
Вызывает exception “Сообщение не существует”.
Error_NoMessageID
PROCEDURE Error_NoMessageID(iID PLS_INTEGER);
Описание
Вызывает exception “Сообщение не существует”.
Error_MessageFileExists
Описание
Вызывает 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
Описание
Проверяет, что сообщение с таким именем файла не существует. Поиск выполняется с учётом регистра символов.
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 - удалять ли существующий ответ (при наличии); игнорируется, если это исходящее сообщение.