709 lines
52 KiB
SQL
709 lines
52 KiB
SQL
create or replace package UDO_PKG_EQUIPDS_EXS
|
||
is
|
||
/*
|
||
Описание: Реализует методы «Сервиса интеграции с WEB API» для взаимодействия с внешней системой (обработчики ответов и сообщений).
|
||
Проект: Интеграция ПП «Парус 8» и «Фреймворка оценки и прогнозирования состояния оборудования»
|
||
Разработчик: ЦИТК-ПАРУС
|
||
Отественный: Селианов А.Е.
|
||
Дата последнего изменения: 15.02.2025
|
||
*/
|
||
|
||
/* Константы - параметры "Типовых сообщений обмена" Загрузка данных на файловый сервер SCP для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_MSGTYPE_CODE_LSCP constant PKG_STD.TSTRING := 'Загрузка_на_SCP'; -- Мнемокод типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_NAME_LSCP constant PKG_STD.TSTRING := 'Загрузка данных на файловый сервер SCP'; -- Наименование типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_PKG_LSCP constant PKG_STD.TSTRING := 'UDO_PKG_EQUIPDS_EXS'; -- Пакет обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_PRC_LSCP constant PKG_STD.TSTRING := 'P_UPLOADFILESCP'; -- Процедура обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_SRVBFR_LSCP constant PKG_STD.TSTRING := 'loadSCP_v2.js/uploadFileSCP'; -- Функция предобработки сервером приложений
|
||
/* Константы - параметры "Типовых сообщений обмена" Передача выборки данных Фреймворку для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_MSGTYPE_CODE_LFRM constant PKG_STD.TSTRING := 'Передача_данных_Фреймворку'; -- Мнемокод типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_NAME_LFRM constant PKG_STD.TSTRING := 'Передача выборки данных Фреймворку'; -- Наименование типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_PKG_LFRM constant PKG_STD.TSTRING := 'UDO_PKG_EQUIPDS_EXS'; -- Пакет обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_PRC_LFRM constant PKG_STD.TSTRING := 'P_METADATA'; -- Процедура обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_SRVBFR_LFRM constant PKG_STD.TSTRING := 'EQUIPDS.js/beforeDocParse'; -- Функция предобработки сервером приложений
|
||
SEQUIPDS_MSGTYPE_SRVAFTR_LFRM constant PKG_STD.TSTRING := 'EQUIPDS.js/afterDocParseResp'; -- Функция постобработки сервером приложений
|
||
/* Константы - параметры "Типовых сообщений обмена" Передача Фреймворку запроса на обучение модели для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_MSGTYPE_CODE_RQLRN constant PKG_STD.TSTRING := 'Запрос на обучение'; -- Мнемокод типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_NAME_RQLRN constant PKG_STD.TSTRING := 'Передача Фреймворку запроса на обучение модели'; -- Наименование типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_PKG_RQLRN constant PKG_STD.TSTRING := 'UDO_PKG_EQUIPDS_EXS'; -- Пакет обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_PRC_RQLRN constant PKG_STD.TSTRING := 'P_REQUIREMENTS'; -- Процедура обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_SRVBFR_RQLRN constant PKG_STD.TSTRING := 'EQUIPDS.js/beforeDocParse'; -- Функция предобработки сервером приложений
|
||
SEQUIPDS_MSGTYPE_SRVAFTR_RQLRN constant PKG_STD.TSTRING := 'EQUIPDS.js/afterDocParseResp'; -- Функция постобработки сервером приложений
|
||
/* Константы - параметры "Типовых сообщений обмена" Получение состояния загрузки данных Фреймворком, после выполнения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_MSGTYPE_CODE_MTCB constant PKG_STD.TSTRING := 'Статус_загрузки_данных_Фреймфорка'; -- Мнемокод типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_NAME_MTCB constant PKG_STD.TSTRING := 'Получение состояния загрузки данных Фреймворком, после выполнения'; -- Наименование типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_PKG_MTCB constant PKG_STD.TSTRING := 'UDO_PKG_EQUIPDS_EXS'; -- Пакет обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_PRC_MTCB constant PKG_STD.TSTRING := 'P_METADATA_CB'; -- Процедура обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_SRVBFR_MTCB constant PKG_STD.TSTRING := 'EQUIPDS.js/beforeDocParseMsg'; -- Функция предобработки сервером приложений
|
||
/* Константы - параметры "Типовых сообщений обмена" Получение состояния загрузки данных Фреймворком, после выполнения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_MSGTYPE_CODE_REQCB constant PKG_STD.TSTRING := 'Состояние_обучения_модели'; -- Мнемокод типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_NAME_REQCB constant PKG_STD.TSTRING := 'Получение состояния обучения модели Фреймворком, после выполнения'; -- Наименование типовых сообщений обмена
|
||
SEQUIPDS_MSGTYPE_PKG_REQCB constant PKG_STD.TSTRING := 'UDO_PKG_EQUIPDS_EXS'; -- Пакет обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_PRC_REQCB constant PKG_STD.TSTRING := 'P_REQUIREMENTS_CB'; -- Процедура обработки типового сообщения обмена
|
||
SEQUIPDS_MSGTYPE_SRVBFR_REQCB constant PKG_STD.TSTRING := 'EQUIPDS.js/beforeDocParseMsg'; -- Функция предобработки сервером приложений
|
||
|
||
/* Константы - параметры "Сервисов обмена" Загрузка_на_SCP для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVC_CODE_LSCP constant PKG_STD.TSTRING := 'Загрузка_на_SCP'; -- Мнемокод сервиса обмена
|
||
SEQUIPDS_SRVC_NAME_LSCP constant PKG_STD.TSTRING := 'Загрузка данных на SCP'; -- Наименование сервиса обмена
|
||
NEQUIPDS_SRVC_SRV_TYPE_LSCP constant PKG_STD.TNUMBER := PKG_EXS.NSRV_TYPE_SEND; -- Тип сервера
|
||
SEQUIPDS_SRVC_SRV_ROOT_LSCP constant PKG_STD.TSTRING := 'sftp://parus.cadred.ru:62322'; -- Адрес сервера
|
||
/* Константы - параметры "Сервисов обмена" Передача данных Фреймворку для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVC_CODE_LFRM constant PKG_STD.TSTRING := 'Загрузка_на_Фреймворк'; -- Мнемокод сервиса обмена
|
||
SEQUIPDS_SRVC_NAME_LFRM constant PKG_STD.TSTRING := 'Передача данных Фреймворку'; -- Наименование сервиса обмена
|
||
NEQUIPDS_SRVC_SRV_TYPE_LFRM constant PKG_STD.TNUMBER := PKG_EXS.NSRV_TYPE_SEND; -- Тип сервера
|
||
SEQUIPDS_SRVC_SRV_ROOT_LFRM constant PKG_STD.TSTRING := 'https://parus.cadred.ru/API/train'; -- Адрес сервера
|
||
/* Константы - параметры "Сервисов обмена" Получение обратной связи от Фреймворка для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVC_CODE_CLLBCK constant PKG_STD.TSTRING := 'Поучение_от_Фреймворка'; -- Мнемокод сервиса обмена
|
||
SEQUIPDS_SRVC_NAME_CLLBCK constant PKG_STD.TSTRING := 'Получение обратной связи от Фреймворка'; -- Наименование сервиса обмена
|
||
NEQUIPDS_SRVC_SRV_TYPE_CLLBCK constant PKG_STD.TNUMBER := PKG_EXS.NSRV_TYPE_RECIVE; -- Тип сервера
|
||
SEQUIPDS_SRVC_SRV_ROOT_CLLBCK constant PKG_STD.TSTRING := '/equipds'; -- Адрес сервера
|
||
|
||
/* Константы - параметры "Функции сервиса обмена" Загрузка_на_SCP для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVCFN_CODE_LSCP constant PKG_STD.TSTRING := 'Загрузка_на_SCP'; -- Мнемокод функции сервиса обмена
|
||
SEQUIPDS_SRVCFN_NAME_LSCP constant PKG_STD.TSTRING := 'Загрузка данных на SCP'; -- Наименование функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FN_TYPE_LSCP constant PKG_STD.TNUMBER := PKG_EXS.NFN_TYPE_DATA; -- Типовая функция
|
||
SEQUIPDS_SRVCFN_FN_URL_LSCP constant PKG_STD.TSTRING := 'home/sftp_user/parus'; -- Адрес функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FNPRMS_TP_LSCP constant PKG_STD.TNUMBER := PKG_EXS.NFN_PRMS_TYPE_POST; -- Способ передачи параметров
|
||
/* Константы - параметры "Функции сервиса обмена" Передача данных Фреймворку для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVCFN_CODE_LFRM constant PKG_STD.TSTRING := 'Загрузить_на_Фреймворк'; -- Мнемокод функции сервиса обмена
|
||
SEQUIPDS_SRVCFN_NAME_LFRM constant PKG_STD.TSTRING := 'Передача выборки данных Фреймворку'; -- Наименование функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FN_TYPE_LFRM constant PKG_STD.TNUMBER := PKG_EXS.NFN_TYPE_DATA; -- Типовая функция
|
||
SEQUIPDS_SRVCFN_FN_URL_LFRM constant PKG_STD.TSTRING := 'metadata'; -- Адрес функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FNPRMS_TP_LFRM constant PKG_STD.TNUMBER := PKG_EXS.NFN_PRMS_TYPE_POST; -- Способ передачи параметров
|
||
/* Константы - параметры "Функции сервиса обмена" Передача Фреймворку запроса на обучение модели для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVCFN_CODE_RQLRN constant PKG_STD.TSTRING := 'Запрос на обучение'; -- Мнемокод функции сервиса обмена
|
||
SEQUIPDS_SRVCFN_NAME_RQLRN constant PKG_STD.TSTRING := 'Передача Фреймворку запроса на обучение модели'; -- Наименование функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FN_TYPE_RQLRN constant PKG_STD.TNUMBER := PKG_EXS.NFN_TYPE_DATA; -- Типовая функция
|
||
SEQUIPDS_SRVCFN_FN_URL_RQLRN constant PKG_STD.TSTRING := 'requirements'; -- Адрес функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FNPR_TP_RQLRN constant PKG_STD.TNUMBER := PKG_EXS.NFN_PRMS_TYPE_POST; -- Способ передачи параметров
|
||
/* Константы - параметры "Функции сервиса обмена" Получение состояния загрузки данных Фреймворком, после выполнения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVCFN_CODE_MTCB constant PKG_STD.TSTRING := 'Статус_загрузки_данных_Фреймфорка'; -- Мнемокод функции сервиса обмена
|
||
SEQUIPDS_SRVCFN_NAME_MTCB constant PKG_STD.TSTRING := 'Получение состояния загрузки данных Фреймворком, после выполнения'; -- Наименование функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FN_TYPE_MTCB constant PKG_STD.TNUMBER := PKG_EXS.NFN_TYPE_DATA; -- Типовая функция
|
||
SEQUIPDS_SRVCFN_FN_URL_MTCB constant PKG_STD.TSTRING := 'API/train/metadata/metadata_cb'; -- Адрес функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FNPRMS_TP_MTCB constant PKG_STD.TNUMBER := PKG_EXS.NFN_PRMS_TYPE_POST; -- Способ передачи параметров
|
||
/* Константы - параметры "Функции сервиса обмена" Получение состояния загрузки данных Фреймворком, после выполнения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
SEQUIPDS_SRVCFN_CODE_REQCB constant PKG_STD.TSTRING := 'Статус_обучения_модели'; -- Мнемокод функции сервиса обмена
|
||
SEQUIPDS_SRVCFN_NAME_REQCB constant PKG_STD.TSTRING := 'Получение состояния обучения модели Фреймворком, после выполнения'; -- Наименование функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FN_TYPE_REQCB constant PKG_STD.TNUMBER := PKG_EXS.NFN_TYPE_DATA; -- Типовая функция
|
||
SEQUIPDS_SRVCFN_FN_URL_REQCB constant PKG_STD.TSTRING := 'API/train/requirements/requirements_cb'; -- Адрес функции сервиса обмена
|
||
NEQUIPDS_SRVCFN_FNPR_TP_REQCB constant PKG_STD.TNUMBER := PKG_EXS.NFN_PRMS_TYPE_POST; -- Способ передачи параметров
|
||
|
||
|
||
/* Обработка загрузки файлов на SCP сервер */
|
||
procedure P_UPLOADFILESCP
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Обработка передачи выборки данных Фреймворку */
|
||
procedure P_METADATA
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Обработка передачи Фреймворку запроса на обучение модели */
|
||
procedure P_REQUIREMENTS
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Обработка получения состояния загрузки данных Фреймворком*/
|
||
procedure P_METADATA_CB
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Обработка получение состояния обучения модели Фреймворком */
|
||
procedure P_REQUIREMENTS_CB
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Публикация выборки для прогоноза */
|
||
procedure P_FORECAST_DATA
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
);
|
||
|
||
/* Инициализация настроек расширения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
procedure INIT_EQUIPDS
|
||
(
|
||
NCRN in number, -- Рег. номер каталога сервиса обмена
|
||
NFORCE_UPDATE in number -- Обновлять существующие записи (см. константы PKG_EXS.NFORCE_UPDATE_*)
|
||
);
|
||
|
||
|
||
end UDO_PKG_EQUIPDS_EXS;
|
||
/
|
||
create or replace package body UDO_PKG_EQUIPDS_EXS
|
||
is
|
||
|
||
/* Обработка загрузки файлов на SCP сервер */
|
||
procedure P_UPLOADFILESCP
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%ROWTYPE; -- заить очереди обмена
|
||
SSTATE PKG_STD.tSTRING; -- Код состояния отработки 200- успех; 500 - ошибка
|
||
SMESSAGE PKG_STD.tSTRING; -- Текст ошибки
|
||
SFILENAME PKG_STD.tSTRING; -- Имя ффайла с путём размещения на файлсерере SCP
|
||
begin
|
||
/* Поиск записи очереди обмена */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
|
||
/* Читаем статус запроса */
|
||
SSTATE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'state');
|
||
SMESSAGE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'message');
|
||
case SSTATE
|
||
when '200' then
|
||
SFILENAME := PKG_EXS.OPTIONS_READ(sOPTIONS => REXSQUEUE.OPTIONS,
|
||
SPATH => 'SPATCH_FSERV');
|
||
/* Базовая установка имени файла "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMFL_SET_FILE_NAME(NRN => REXSQUEUE.LNK_DOCUMENT,
|
||
SFILE_NAME => SFILENAME);
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMFL_SET_STATUS(NRN => REXSQUEUE.LNK_DOCUMENT,
|
||
NSTATUS => UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_UPLOADED,
|
||
SQUEUE_ID => null,
|
||
SERR => null);
|
||
else
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMFL_SET_STATUS(NRN => REXSQUEUE.LNK_DOCUMENT,
|
||
NSTATUS => UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_UPLOAD_ERR,
|
||
SQUEUE_ID => null,
|
||
SERR => SMESSAGE);
|
||
end case;
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK);
|
||
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
|
||
end P_UPLOADFILESCP;
|
||
|
||
/* Обработка передачи выборки данных Фреймворку */
|
||
procedure P_METADATA
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%ROWTYPE; -- заить очереди обмена
|
||
SSTATE PKG_STD.tSTRING; -- Код состояния отработки 200- успех; 500 - ошибка
|
||
SMESSAGE PKG_STD.tSTRING; -- Текст ошибки
|
||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||
SQUEUE_ID PKG_STD.tSTRING; --
|
||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||
|
||
begin
|
||
/* Поиск записи очереди обмена */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
|
||
/* Читаем статус запроса */
|
||
SSTATE := PKG_EXS.OPTIONS_READ(sOPTIONS => REXSQUEUE.OPTIONS_RESP,
|
||
SPATH => 'statusCode');
|
||
SMESSAGE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(REXSQUEUE.RESP, PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'message');
|
||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(REXSQUEUE.RESP, PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'queue_id');
|
||
|
||
case SSTATE
|
||
when '200' then
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_SENDING;
|
||
SERR := null;
|
||
else
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_SEND_ERR;
|
||
SERR := SMESSAGE;
|
||
end case;
|
||
for RCMLF in (select T.RN from UDO_T_EQUIPDSCMFL T where t.dataset_id = REXSQUEUE.LNK_DOCUMENT)loop
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMFL_SET_STATUS(NRN => RCMLF.RN,
|
||
NSTATUS => NSTATUS,
|
||
SQUEUE_ID => SQUEUE_ID,
|
||
SERR => SERR);
|
||
end loop;
|
||
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK);
|
||
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
|
||
end P_METADATA;
|
||
|
||
/* Обработка передачи Фреймворку запроса на обучение модели */
|
||
procedure P_REQUIREMENTS
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%ROWTYPE; -- заить очереди обмена
|
||
SSTATE PKG_STD.tSTRING; -- Код состояния отработки 200- успех; 500 - ошибка
|
||
SMESSAGE PKG_STD.tSTRING; -- Текст ошибки
|
||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||
SSTATESP PKG_STD.tSTRING; -- Статус обработки запроса
|
||
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор полуеный от стороннего сервера
|
||
begin
|
||
/* Поиск записи очереди обмена */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
|
||
/* Читаем статус запроса */
|
||
SSTATE := PKG_EXS.OPTIONS_READ(sOPTIONS => REXSQUEUE.OPTIONS_RESP,
|
||
SPATH => 'statusCode');
|
||
SMESSAGE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(REXSQUEUE.RESP, PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'message');
|
||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(REXSQUEUE.RESP, PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'queue_id');
|
||
SSTATESP := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.RESP,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'status');
|
||
/* Обработка статуса отпраки и контроль резульатат */
|
||
case SSTATE
|
||
when '200' then
|
||
case UPPER(SSTATESP)
|
||
when 'OK' then
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESSING;
|
||
SERR := null;
|
||
else
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESS_ERR;
|
||
SERR := SMESSAGE;
|
||
end case;
|
||
else
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESS_ERR;
|
||
SERR := 'Ошибка при передаче запроса, код: '||SSTATE;
|
||
end case;
|
||
for RCMLF in (select T.RN from UDO_T_EQUIPDSCMML T where T.RN = REXSQUEUE.LNK_DOCUMENT)loop
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, модели)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMML_SET_STATUS(NRN => RCMLF.RN,
|
||
NSTATUS => NSTATUS,
|
||
SQUEUE_ID => SQUEUE_ID,
|
||
SERR => SERR);
|
||
end loop;
|
||
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK);
|
||
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
|
||
end P_REQUIREMENTS;
|
||
|
||
/* Обработка получения состояния загрузки данных Фреймворком*/
|
||
procedure P_METADATA_CB
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%ROWTYPE; -- заить очереди обмена
|
||
SSTATE PKG_STD.tSTRING; -- Код состояния отработки 200- успех; 500 - ошибка
|
||
SMESSAGE PKG_STD.tSTRING; -- Текст ошибки
|
||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор очереди обработки
|
||
begin
|
||
/* Поиск записи очереди обмена */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
|
||
/* Читаем статус запроса */
|
||
SSTATE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'status');
|
||
/* Читаем сообщение запроса */
|
||
SMESSAGE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'message');
|
||
/* Читаем идентификатор запроса */
|
||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'queue_id');
|
||
|
||
case UPPER(SSTATE)
|
||
when 'OK' then
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_SENT;
|
||
SERR := null;
|
||
else
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMFL_STATUS_SEND_ERR;
|
||
SERR := SMESSAGE;
|
||
end case;
|
||
for RCMLF in (select T.RN from UDO_T_EQUIPDSCMFL T where t.queue_id = SQUEUE_ID)loop
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMFL_SET_STATUS(NRN => RCMLF.RN,
|
||
NSTATUS => NSTATUS,
|
||
SQUEUE_ID => SQUEUE_ID, -- ПЕРЕДЕЛАТЬ !!!! Стичать значение из отета сервера!!!!!
|
||
SERR => SERR);
|
||
end loop;
|
||
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK);
|
||
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
|
||
end P_METADATA_CB;
|
||
|
||
|
||
/* Обработка получение состояния обучения модели Фреймворком */
|
||
procedure P_REQUIREMENTS_CB
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%ROWTYPE; -- заить очереди обмена
|
||
SSTATE PKG_STD.tSTRING; -- Код состояния отработки 200- успех; 500 - ошибка
|
||
SMESSAGE PKG_STD.tSTRING; -- Текст ошибки
|
||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор очереди обработки
|
||
NPRECISION PKG_STD.tNUMBER; -- Точность модели
|
||
begin
|
||
/* Поиск записи очереди обмена */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
|
||
/* Читаем статус запроса */
|
||
SSTATE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'status');
|
||
SMESSAGE := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'message');
|
||
|
||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'queue_id');
|
||
NPRECISION := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||
SPATH => 'precision');
|
||
case UPPER(SSTATE)
|
||
when 'OK' then
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESSED;
|
||
SERR := null;
|
||
else
|
||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESS_ERR;
|
||
SERR := SMESSAGE;
|
||
end case;
|
||
for RCMML in (select T.RN from UDO_T_EQUIPDSCMML T where t.queue_id = SQUEUE_ID)loop
|
||
/* Базовая установка состояния "Выборки данных оборудования (классы оборудования, файлы данных)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMML_SET_STATUS(NRN => RCMML.RN,
|
||
NSTATUS => NSTATUS,
|
||
SQUEUE_ID => SQUEUE_ID,
|
||
SERR => SERR);
|
||
if SERR is null then
|
||
/* Базовая установка фактической точности "Выборки данных оборудования (классы оборудования, модели)" */
|
||
UDO_PKG_EQUIPDS_BASE.CMML_SET_PRECISION(NRN => RCMML.RN, NPRECISION => ROUND(NPRECISION,0));
|
||
end if;
|
||
end loop;
|
||
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK);
|
||
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
|
||
end P_REQUIREMENTS_CB;
|
||
|
||
/* Публикация выборки для прогоноза */
|
||
procedure P_FORECAST_DATA
|
||
(
|
||
NIDENT in number, -- Идентификатор процесса
|
||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||
)
|
||
is
|
||
REXSQUEUE EXSQUEUE%rowtype; -- Запись позиции очереди
|
||
NDATASET_IDENT PKG_STD.TREF; -- Идентификатор данных выборки для прогноза
|
||
BRESP blob; -- Буфер для результата
|
||
SARG_DATASET_IDENT PKG_STD.TSTRING := 'NDATASET_IDENT'; -- Наименование аргумента запроса для идентификатора данных выборки для прогноза
|
||
begin
|
||
/* Считываем позицию очереди */
|
||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||
/* Читаем параметры запроса - идентификатор файлового буфера с данными для прогноза */
|
||
begin
|
||
NDATASET_IDENT := TO_NUMBER(PKG_EXS.OPTIONS_READ(SOPTIONS => REXSQUEUE.OPTIONS,
|
||
SPATH => PKG_EXS.SMSG_OPTION_CODE_QS || '/' ||
|
||
SARG_DATASET_IDENT));
|
||
exception
|
||
when others then
|
||
P_EXCEPTION(0, 'Неверный формат числа (%s).', SARG_DATASET_IDENT);
|
||
end;
|
||
if (NDATASET_IDENT is null) then
|
||
P_EXCEPTION(0,
|
||
'Неуказан обязательный парметр запроса - %s.',
|
||
SARG_DATASET_IDENT);
|
||
end if;
|
||
/* Читаем данные из файлового буфера */
|
||
for C in (select T.BDATA from FILE_BUFFER T where T.IDENT = NDATASET_IDENT)
|
||
loop
|
||
if (BRESP is not null) then
|
||
P_EXCEPTION(0, 'Найдено более одного набора сведений о наработках.');
|
||
end if;
|
||
BRESP := C.BDATA;
|
||
end loop;
|
||
if (BRESP is null) then
|
||
P_EXCEPTION(0, 'Сведений о наработках не найдено.');
|
||
end if;
|
||
/* Возвращаем ответ */
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT, SRESULT => PKG_EXS.SPRC_RESP_RESULT_OK, BRESP => BRESP);
|
||
exception
|
||
when others then
|
||
/* Вернём ошибку - это фатальная */
|
||
PKG_STATE.DIAGNOSTICS_STACKED();
|
||
PKG_EXS.PRC_RESP_RESULT_SET(NIDENT => NIDENT,
|
||
SRESULT => PKG_EXS.SPRC_RESP_RESULT_ERR,
|
||
SMSG => PKG_STATE.SQL_ERRM());
|
||
end P_FORECAST_DATA;
|
||
|
||
/* Инициализация настроек расширения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||
procedure INIT_EQUIPDS
|
||
(
|
||
NCRN in number, -- Рег. номер каталога сервиса обмена
|
||
NFORCE_UPDATE in number -- Обновлять существующие записи (см. константы PKG_EXS.NFORCE_UPDATE_*)
|
||
)
|
||
is
|
||
NEXSMSGTYPE PKG_STD.TREF; -- Рег. номер записи типовых сообщений обмена
|
||
NEXSSERVICE PKG_STD.TREF; -- Рег. номер записи сервиса обмена
|
||
NEXSSERVICEFN PKG_STD.TREF; -- Рег. номер записи функции сервиса обмена
|
||
begin
|
||
/* Загрузка типового сообщения обмена */
|
||
P_EXSMSGTYPE_BASE_LOAD(SCATALOG => null,
|
||
SCODE => SEQUIPDS_MSGTYPE_CODE_LSCP,
|
||
SNAME => SEQUIPDS_MSGTYPE_NAME_LSCP,
|
||
SPKG_RESP => SEQUIPDS_MSGTYPE_PKG_LSCP,
|
||
SPRC_RESP => SEQUIPDS_MSGTYPE_PRC_LSCP,
|
||
SAPPSRV_BEFORE => SEQUIPDS_MSGTYPE_SRVBFR_LSCP,
|
||
SAPPSRV_AFTER => null,
|
||
NMAX_IDLE => 0,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSMSGTYPE);
|
||
P_EXSMSGTYPE_BASE_LOAD(SCATALOG => null,
|
||
SCODE => SEQUIPDS_MSGTYPE_CODE_LFRM,
|
||
SNAME => SEQUIPDS_MSGTYPE_NAME_LFRM,
|
||
SPKG_RESP => SEQUIPDS_MSGTYPE_PKG_LFRM,
|
||
SPRC_RESP => SEQUIPDS_MSGTYPE_PRC_LFRM,
|
||
SAPPSRV_BEFORE => SEQUIPDS_MSGTYPE_SRVBFR_LFRM,
|
||
SAPPSRV_AFTER => SEQUIPDS_MSGTYPE_SRVAFTR_LFRM,
|
||
NMAX_IDLE => 0,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSMSGTYPE);
|
||
P_EXSMSGTYPE_BASE_LOAD(SCATALOG => null,
|
||
SCODE => SEQUIPDS_MSGTYPE_CODE_RQLRN,
|
||
SNAME => SEQUIPDS_MSGTYPE_NAME_RQLRN,
|
||
SPKG_RESP => SEQUIPDS_MSGTYPE_PKG_RQLRN,
|
||
SPRC_RESP => SEQUIPDS_MSGTYPE_PRC_RQLRN,
|
||
SAPPSRV_BEFORE => SEQUIPDS_MSGTYPE_SRVBFR_RQLRN,
|
||
SAPPSRV_AFTER => SEQUIPDS_MSGTYPE_SRVAFTR_RQLRN,
|
||
NMAX_IDLE => 0,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSMSGTYPE);
|
||
P_EXSMSGTYPE_BASE_LOAD(SCATALOG => null,
|
||
SCODE => SEQUIPDS_MSGTYPE_CODE_MTCB,
|
||
SNAME => SEQUIPDS_MSGTYPE_NAME_MTCB,
|
||
SPKG_RESP => SEQUIPDS_MSGTYPE_PKG_MTCB,
|
||
SPRC_RESP => SEQUIPDS_MSGTYPE_PRC_MTCB,
|
||
SAPPSRV_BEFORE => SEQUIPDS_MSGTYPE_SRVBFR_MTCB,
|
||
SAPPSRV_AFTER => null,
|
||
NMAX_IDLE => 0,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSMSGTYPE);
|
||
P_EXSMSGTYPE_BASE_LOAD(SCATALOG => null,
|
||
SCODE => SEQUIPDS_MSGTYPE_CODE_REQCB,
|
||
SNAME => SEQUIPDS_MSGTYPE_NAME_REQCB,
|
||
SPKG_RESP => SEQUIPDS_MSGTYPE_PKG_REQCB,
|
||
SPRC_RESP => SEQUIPDS_MSGTYPE_PRC_REQCB,
|
||
SAPPSRV_BEFORE => SEQUIPDS_MSGTYPE_SRVBFR_REQCB,
|
||
SAPPSRV_AFTER => null,
|
||
NMAX_IDLE => 0,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSMSGTYPE);
|
||
|
||
/* Загрузка сервиса обмена */
|
||
P_EXSSERVICE_BASE_LOAD(SCATALOG => GET_ACATALOG_NAME_ID(NFLAG_SMART => 0, NRN => NCRN),
|
||
SCODE => SEQUIPDS_SRVC_CODE_LSCP,
|
||
SNAME => SEQUIPDS_SRVC_NAME_LSCP,
|
||
NSRV_TYPE => NEQUIPDS_SRVC_SRV_TYPE_LSCP,
|
||
SSRV_ROOT => SEQUIPDS_SRVC_SRV_ROOT_LSCP,
|
||
SSRV_USER => null,
|
||
SSRV_PASS => null,
|
||
NUNAVLBL_NTF_SIGN => PKG_EXS.NUNAVLBL_NTF_SIGN_NO,
|
||
NUNAVLBL_NTF_TIME => 0,
|
||
SUNAVLBL_NTF_MAIL => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICE);
|
||
/* Загрузка функции сервиса обмена */
|
||
P_EXSSERVICEFN_BASE_LOAD(NPRN => NEXSSERVICE,
|
||
SCODE => SEQUIPDS_SRVCFN_CODE_LSCP,
|
||
SNAME => SEQUIPDS_SRVCFN_NAME_LSCP,
|
||
NFN_TYPE => NEQUIPDS_SRVCFN_FN_TYPE_LSCP,
|
||
SFN_URL => SEQUIPDS_SRVCFN_FN_URL_LSCP,
|
||
NFN_PRMS_TYPE => NEQUIPDS_SRVCFN_FNPRMS_TP_LSCP,
|
||
NRETRY_SCHEDULE => PKG_EXS.NRETRY_SCHEDULE_UNDEF,
|
||
NRETRY_STEP => 0,
|
||
NRETRY_ATTEMPTS => 0,
|
||
SEXSMSGTYPE => SEQUIPDS_MSGTYPE_CODE_LSCP,
|
||
NERR_NTF_SIGN => PKG_EXS.NERR_NTF_SIGN_NO,
|
||
SERR_NTF_MAIL => null,
|
||
NAUTH_ONLY => PKG_EXS.NAUTH_ONLY_NO,
|
||
NSAVE_QUEUE => PKG_EXS.NFN_SAVE_QUEUE,
|
||
NTIMEOUT_CONN => null,
|
||
NTIMEOUT_ASYNCH => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICEFN);
|
||
|
||
/* Загрузка сервиса обмена */
|
||
P_EXSSERVICE_BASE_LOAD(SCATALOG => GET_ACATALOG_NAME_ID(NFLAG_SMART => 0, NRN => NCRN),
|
||
SCODE => SEQUIPDS_SRVC_CODE_LFRM,
|
||
SNAME => SEQUIPDS_SRVC_NAME_LFRM,
|
||
NSRV_TYPE => NEQUIPDS_SRVC_SRV_TYPE_LFRM,
|
||
SSRV_ROOT => SEQUIPDS_SRVC_SRV_ROOT_LFRM,
|
||
SSRV_USER => null,
|
||
SSRV_PASS => null,
|
||
NUNAVLBL_NTF_SIGN => PKG_EXS.NUNAVLBL_NTF_SIGN_NO,
|
||
NUNAVLBL_NTF_TIME => 0,
|
||
SUNAVLBL_NTF_MAIL => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICE);
|
||
/* Загрузка функции сервиса обмена */
|
||
P_EXSSERVICEFN_BASE_LOAD(NPRN => NEXSSERVICE,
|
||
SCODE => SEQUIPDS_SRVCFN_CODE_LFRM,
|
||
SNAME => SEQUIPDS_SRVCFN_NAME_LFRM,
|
||
NFN_TYPE => NEQUIPDS_SRVCFN_FN_TYPE_LFRM,
|
||
SFN_URL => SEQUIPDS_SRVCFN_FN_URL_LFRM,
|
||
NFN_PRMS_TYPE => NEQUIPDS_SRVCFN_FNPRMS_TP_LFRM,
|
||
NRETRY_SCHEDULE => PKG_EXS.NRETRY_SCHEDULE_UNDEF,
|
||
NRETRY_STEP => 0,
|
||
NRETRY_ATTEMPTS => 0,
|
||
SEXSMSGTYPE => SEQUIPDS_MSGTYPE_CODE_LFRM,
|
||
NERR_NTF_SIGN => PKG_EXS.NERR_NTF_SIGN_NO,
|
||
SERR_NTF_MAIL => null,
|
||
NAUTH_ONLY => PKG_EXS.NAUTH_ONLY_NO,
|
||
NSAVE_QUEUE => PKG_EXS.NFN_SAVE_QUEUE,
|
||
NTIMEOUT_CONN => null,
|
||
NTIMEOUT_ASYNCH => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICEFN);
|
||
/* Загрузка функции сервиса обмена */
|
||
P_EXSSERVICEFN_BASE_LOAD(NPRN => NEXSSERVICE,
|
||
SCODE => SEQUIPDS_SRVCFN_CODE_RQLRN,
|
||
SNAME => SEQUIPDS_SRVCFN_NAME_RQLRN,
|
||
NFN_TYPE => NEQUIPDS_SRVCFN_FN_TYPE_RQLRN,
|
||
SFN_URL => SEQUIPDS_SRVCFN_FN_URL_RQLRN,
|
||
NFN_PRMS_TYPE => NEQUIPDS_SRVCFN_FNPR_TP_RQLRN,
|
||
NRETRY_SCHEDULE => PKG_EXS.NRETRY_SCHEDULE_UNDEF,
|
||
NRETRY_STEP => 0,
|
||
NRETRY_ATTEMPTS => 0,
|
||
SEXSMSGTYPE => SEQUIPDS_MSGTYPE_CODE_RQLRN,
|
||
NERR_NTF_SIGN => PKG_EXS.NERR_NTF_SIGN_NO,
|
||
SERR_NTF_MAIL => null,
|
||
NAUTH_ONLY => PKG_EXS.NAUTH_ONLY_NO,
|
||
NSAVE_QUEUE => PKG_EXS.NFN_SAVE_QUEUE,
|
||
NTIMEOUT_CONN => null,
|
||
NTIMEOUT_ASYNCH => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICEFN);
|
||
|
||
/* Загрузка сервиса обмена */
|
||
P_EXSSERVICE_BASE_LOAD(SCATALOG => GET_ACATALOG_NAME_ID(NFLAG_SMART => 0, NRN => NCRN),
|
||
SCODE => SEQUIPDS_SRVC_CODE_CLLBCK,
|
||
SNAME => SEQUIPDS_SRVC_NAME_CLLBCK,
|
||
NSRV_TYPE => NEQUIPDS_SRVC_SRV_TYPE_CLLBCK,
|
||
SSRV_ROOT => SEQUIPDS_SRVC_SRV_ROOT_CLLBCK,
|
||
SSRV_USER => null,
|
||
SSRV_PASS => null,
|
||
NUNAVLBL_NTF_SIGN => PKG_EXS.NUNAVLBL_NTF_SIGN_NO,
|
||
NUNAVLBL_NTF_TIME => 0,
|
||
SUNAVLBL_NTF_MAIL => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICE);
|
||
/* Загрузка функции сервиса обмена */
|
||
P_EXSSERVICEFN_BASE_LOAD(NPRN => NEXSSERVICE,
|
||
SCODE => SEQUIPDS_SRVCFN_CODE_MTCB,
|
||
SNAME => SEQUIPDS_SRVCFN_NAME_MTCB,
|
||
NFN_TYPE => NEQUIPDS_SRVCFN_FN_TYPE_MTCB,
|
||
SFN_URL => SEQUIPDS_SRVCFN_FN_URL_MTCB,
|
||
NFN_PRMS_TYPE => NEQUIPDS_SRVCFN_FNPRMS_TP_MTCB,
|
||
NRETRY_SCHEDULE => PKG_EXS.NRETRY_SCHEDULE_UNDEF,
|
||
NRETRY_STEP => 0,
|
||
NRETRY_ATTEMPTS => 0,
|
||
SEXSMSGTYPE => SEQUIPDS_MSGTYPE_CODE_MTCB,
|
||
NERR_NTF_SIGN => PKG_EXS.NERR_NTF_SIGN_NO,
|
||
SERR_NTF_MAIL => null,
|
||
NAUTH_ONLY => PKG_EXS.NAUTH_ONLY_NO,
|
||
NSAVE_QUEUE => PKG_EXS.NFN_SAVE_QUEUE,
|
||
NTIMEOUT_CONN => null,
|
||
NTIMEOUT_ASYNCH => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICEFN);
|
||
/* Загрузка функции сервиса обмена */
|
||
P_EXSSERVICEFN_BASE_LOAD(NPRN => NEXSSERVICE,
|
||
SCODE => SEQUIPDS_SRVCFN_CODE_REQCB,
|
||
SNAME => SEQUIPDS_SRVCFN_NAME_REQCB,
|
||
NFN_TYPE => NEQUIPDS_SRVCFN_FN_TYPE_REQCB,
|
||
SFN_URL => SEQUIPDS_SRVCFN_FN_URL_REQCB,
|
||
NFN_PRMS_TYPE => NEQUIPDS_SRVCFN_FNPR_TP_REQCB,
|
||
NRETRY_SCHEDULE => PKG_EXS.NRETRY_SCHEDULE_UNDEF,
|
||
NRETRY_STEP => 0,
|
||
NRETRY_ATTEMPTS => 0,
|
||
SEXSMSGTYPE => SEQUIPDS_MSGTYPE_CODE_REQCB,
|
||
NERR_NTF_SIGN => PKG_EXS.NERR_NTF_SIGN_NO,
|
||
SERR_NTF_MAIL => null,
|
||
NAUTH_ONLY => PKG_EXS.NAUTH_ONLY_NO,
|
||
NSAVE_QUEUE => PKG_EXS.NFN_SAVE_QUEUE,
|
||
NTIMEOUT_CONN => null,
|
||
NTIMEOUT_ASYNCH => null,
|
||
NFORCE_UPDATE => NFORCE_UPDATE,
|
||
NRN => NEXSSERVICEFN);
|
||
|
||
end INIT_EQUIPDS;
|
||
|
||
|
||
end UDO_PKG_EQUIPDS_EXS;
|
||
/
|