Процедура публикации выборки для прогноза
This commit is contained in:
parent
962e3208ce
commit
a895096dea
@ -124,6 +124,13 @@ is
|
||||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||||
);
|
||||
|
||||
/* Публикация выборки для прогоноза */
|
||||
procedure P_FORECAST_DATA
|
||||
(
|
||||
NIDENT in number, -- Идентификатор процесса
|
||||
NEXSQUEUE in number -- Регистрационный номер обрабатываемой позиции очереди обмена
|
||||
);
|
||||
|
||||
/* Инициализация настроек расширения для интеграции с фреймворк по прогнозированию ресурса оборудования */
|
||||
procedure INIT_EQUIPDS
|
||||
(
|
||||
@ -391,7 +398,7 @@ is
|
||||
NSTATUS PKG_STD.tNUMBER; -- состояния "Выборки данных оборудования (классы оборудования, файлы данных)"
|
||||
SERR PKG_STD.tSTRING; -- Текст ошибки
|
||||
SQUEUE_ID PKG_STD.tSTRING; -- Идентификатор очереди обработки
|
||||
NPRECISION_F PKG_STD.tNUMBER; -- Точность Модели (факт)
|
||||
NPRECISION PKG_STD.tNUMBER; -- Точность модели
|
||||
begin
|
||||
/* Поиск записи очереди обмена */
|
||||
REXSQUEUE := GET_EXSQUEUE_ID(NFLAG_SMART => 0, NRN => NEXSQUEUE);
|
||||
@ -407,7 +414,7 @@ is
|
||||
SQUEUE_ID := PKG_EXS.OPTIONS_READ(sOPTIONS => BLOB2CLOB(lbDATA => REXSQUEUE.MSG,
|
||||
sCHARSET => PKG_CHARSET.CHARSET_UTF_),
|
||||
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_),
|
||||
SPATH => 'precision');
|
||||
case UPPER(SSTATE)
|
||||
@ -426,7 +433,7 @@ is
|
||||
SERR => SERR);
|
||||
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 loop;
|
||||
|
||||
@ -444,6 +451,56 @@ is
|
||||
|
||||
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
|
||||
(
|
||||
|
Loading…
x
Reference in New Issue
Block a user