Процедура публикации выборки для прогноза
This commit is contained in:
parent
962e3208ce
commit
a895096dea
@ -124,6 +124,13 @@ is
|
|||||||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Публикация выборки для прогоноза */
|
||||||
|
procedure P_FORECAST_DATA
|
||||||
|
(
|
||||||
|
NIDENT in number, -- Идентификатор процесса
|
||||||
|
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||||||
|
);
|
||||||
|
|
||||||
/* Инициализация настроек расширения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
/* Инициализация настроек расширения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||||||
procedure INIT_EQUIPDS
|
procedure INIT_EQUIPDS
|
||||||
(
|
(
|
||||||
@ -391,7 +398,7 @@ is
|
|||||||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||||||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||||||
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор очереди обработки
|
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор очереди обработки
|
||||||
NPRECISION_F PKG_STD.tNUMBER; -- Точность Модели (факт)
|
NPRECISION PKG_STD.tNUMBER; -- Точность модели
|
||||||
begin
|
begin
|
||||||
/* Поиск записи очереди обмена */
|
/* Поиск записи очереди обмена */
|
||||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||||
@ -405,11 +412,11 @@ is
|
|||||||
SPATH => 'message');
|
SPATH => 'message');
|
||||||
|
|
||||||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||||||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||||||
SPATH => 'queue_id');
|
SPATH => 'queue_id');
|
||||||
NPRECISION_F := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
NPRECISION := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||||||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||||||
SPATH => 'precision');
|
SPATH => 'precision');
|
||||||
case UPPER(SSTATE)
|
case UPPER(SSTATE)
|
||||||
when 'OK' then
|
when 'OK' then
|
||||||
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESSED;
|
NSTATUS := UDO_PKG_EQUIPDS_BASE.NCMML_STATUS_PROCESSED;
|
||||||
@ -426,7 +433,7 @@ is
|
|||||||
SERR => SERR);
|
SERR => SERR);
|
||||||
if SERR is null then
|
if SERR is null then
|
||||||
/* Базовая установка фактической точности "Выборки данных оборудования (классы оборудования, модели)" */
|
/* Базовая установка фактической точности "Выборки данных оборудования (классы оборудования, модели)" */
|
||||||
UDO_PKG_EQUIPDS_BASE.CMML_SET_PRECISION_F(NRN => RCMML.RN, NPRECISION_F => ROUND(NPRECISION_F,0));
|
UDO_PKG_EQUIPDS_BASE.CMML_SET_PRECISION(NRN => RCMML.RN, NPRECISION => ROUND(NPRECISION,0));
|
||||||
end if;
|
end if;
|
||||||
end loop;
|
end loop;
|
||||||
|
|
||||||
@ -443,6 +450,56 @@ is
|
|||||||
SMSG => PKG_STATE.SQL_ERRM());
|
SMSG => PKG_STATE.SQL_ERRM());
|
||||||
|
|
||||||
end P_REQUIREMENTS_CB;
|
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
|
procedure INIT_EQUIPDS
|
||||||
|
Loading…
x
Reference in New Issue
Block a user