forked from CITKParus/P8-ExchangeService
Удалил объекты БД учитываемые в СХС
This commit is contained in:
parent
5d7b5109f4
commit
735909787c
@ -1,9 +0,0 @@
|
||||
create global temporary table EXSRNLIST
|
||||
(
|
||||
RN number(17),
|
||||
IDENT number(17) not null,
|
||||
DOCUMENT number(17) not null,
|
||||
constraint C_EXSRNLIST_PK primary key(RN),
|
||||
constraint C_EXSRNLIST_UK unique(IDENT, DOCUMENT)
|
||||
)
|
||||
on commit preserve rows;
|
@ -1,13 +0,0 @@
|
||||
create or replace function F_EXSQUEUE_GET_CHILD_COUNT
|
||||
(
|
||||
NRN in number -- Ðåãèñòðàöèîííûé íîìåð çàïèñè î÷åðåäè îáìåíà
|
||||
) return number -- Êîëè÷åñòâî ñâÿçàííûõ çàïèñåé
|
||||
as
|
||||
NCHILD_COUNT PKG_STD.TNUMBER; -- Íàéäåííîå êîëè÷åñòâî ñâÿçàííûõ çàïèñåé
|
||||
begin
|
||||
/* Îïðåäåëåíèå êîëè÷åñòâà */
|
||||
select count(*) - 1 into NCHILD_COUNT from EXSQUEUE T connect by prior T.RN = T.EXSQUEUE start with T.RN = NRN;
|
||||
/* Âîçâðàùåíèå ðåçóëüòàòà */
|
||||
return NCHILD_COUNT;
|
||||
end;
|
||||
/
|
@ -1,70 +0,0 @@
|
||||
create or replace procedure P_EXSQUEUE_BASE_EXPORT
|
||||
(
|
||||
NRN in number, -- Ðåãèñòðàöèîííûé íîìåð î÷åðåäè îáìåíà
|
||||
NIDENT in number, -- Èäåíòèôèêàòîð ïðîöåññà
|
||||
STYPE_FILE in varchar2, -- Ðàñøèðåíèå ôàéëà
|
||||
NMSG in number, -- Ïðèçíàê âûãðóçêè ñîîáùåíèÿ î÷åðåäè îáìåíà (0 - íå âûãðóæàòü, 1 - âûãðóæàòü)
|
||||
NRESP in number, -- Ïðèçíàê âûãðóçêè îòâåòà î÷åðåäè îáìåíà (0 - íå âûãðóæàòü, 1 - âûãðóæàòü)
|
||||
NMSG_ORIGINAL in number, -- Ïðèçíàê âûãðóçêè îðèãèíàëà ñîîáùåíèÿ î÷åðåäè îáìåíà (0 - íå âûãðóæàòü, 1 - âûãðóæàòü)
|
||||
NRESP_ORIGINAL in number -- Ïðèçíàê âûãðóçêè îðèãèíàëà îòâåòà î÷åðåäè îáìåíà (0 - íå âûãðóæàòü, 1 - âûãðóæàòü)
|
||||
)
|
||||
as
|
||||
SFILENAME PKG_STD.TSTRING; -- Íàèìåíîâàíèå ôàéëà
|
||||
DIN_DATE EXSQUEUE.IN_DATE%type; -- Äàòà è âðåìÿ ïîñòàíîâêè â î÷åðåäü
|
||||
SIN_AUTHID EXSQUEUE.IN_AUTHID%type; -- Ïîëüçîâàòåëü, ïîñòàâèâøèé â î÷åðåäü
|
||||
BMSG EXSQUEUE.MSG%type; -- Ñîîáùåíèå î÷åðåäè îáìåíà
|
||||
BRESP EXSQUEUE.RESP%type; -- Îòâåò î÷åðåäè îáìåíà
|
||||
BMSG_ORIGINAL EXSQUEUE.MSG_ORIGINAL%type; -- Îðèãèíàë ñîîáùåíèÿ î÷åðåäè îáìåíà
|
||||
BRESP_ORIGINAL EXSQUEUE.RESP_ORIGINAL%type; -- Îðèãèíàë îòâåòà î÷åðåäè îáìåíà
|
||||
begin
|
||||
/* Ïîèñê íåîáõîäèìûõ çíà÷åíèé î÷åðåäè îáìåíà */
|
||||
begin
|
||||
select IN_DATE,
|
||||
IN_AUTHID,
|
||||
MSG,
|
||||
RESP,
|
||||
MSG_ORIGINAL,
|
||||
RESP_ORIGINAL
|
||||
into DIN_DATE,
|
||||
SIN_AUTHID,
|
||||
BMSG,
|
||||
BRESP,
|
||||
BMSG_ORIGINAL,
|
||||
BRESP_ORIGINAL
|
||||
from EXSQUEUE
|
||||
where RN = NRN;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NRN);
|
||||
end;
|
||||
/* Ôîðìèðîâàíèå íàèìåíîâàíèÿ ôàéëà */
|
||||
SFILENAME := TO_CHAR(NRN) || '_' || TO_CHAR(DIN_DATE, 'dd_mm_yyyy_hh24_mi') || '_' || SIN_AUTHID ||
|
||||
NULLIF('.' || STYPE_FILE, '.');
|
||||
/* Âûãðóçêà ñîîáùåíèÿ */
|
||||
if (NMSG = 1) then
|
||||
/* Äîáàâëåíèå äàííûõ â áóôåð äëÿ âûãðóçêè â ôàéë */
|
||||
P_FILE_BUFFER_INSERT(NIDENT => NIDENT, CFILENAME => 'MESSAGE_' || SFILENAME, CDATA => null, BLOBDATA => BMSG);
|
||||
end if;
|
||||
/* Âûãðóçêà îòâåòà */
|
||||
if (NRESP = 1) then
|
||||
/* Äîáàâëåíèå äàííûõ â áóôåð äëÿ âûãðóçêè â ôàéë */
|
||||
P_FILE_BUFFER_INSERT(NIDENT => NIDENT, CFILENAME => 'RESPOND_' || SFILENAME, CDATA => null, BLOBDATA => BRESP);
|
||||
end if;
|
||||
/* Âûãðóçêà îðèãèíàëà ñîîáùåíèÿ */
|
||||
if (NMSG_ORIGINAL = 1) then
|
||||
/* Äîáàâëåíèå äàííûõ â áóôåð äëÿ âûãðóçêè â ôàéë */
|
||||
P_FILE_BUFFER_INSERT(NIDENT => NIDENT,
|
||||
CFILENAME => 'MESSAGE_ORIGINAL_' || SFILENAME,
|
||||
CDATA => null,
|
||||
BLOBDATA => BMSG_ORIGINAL);
|
||||
end if;
|
||||
/* Âûãðóçêà îðèãèíàëà îòâåòà */
|
||||
if (NRESP_ORIGINAL = 1) then
|
||||
/* Äîáàâëåíèå äàííûõ â áóôåð äëÿ âûãðóçêè â ôàéë */
|
||||
P_FILE_BUFFER_INSERT(NIDENT => NIDENT,
|
||||
CFILENAME => 'RESPOND_ORIGINAL_' || SFILENAME,
|
||||
CDATA => null,
|
||||
BLOBDATA => BRESP_ORIGINAL);
|
||||
end if;
|
||||
end;
|
||||
/
|
@ -1,62 +0,0 @@
|
||||
create or replace procedure P_EXSQUEUE_BASE_INSERT
|
||||
(
|
||||
DIN_DATE in date, -- Äàòà è âðåìÿ ïîñòàíîâêè â î÷åðåäü
|
||||
SIN_AUTHID in varchar2, -- Ïîëüçîâàòåëü, ïîñòàâèâøèé â î÷åðåäü
|
||||
NEXSSERVICEFN in number, -- Ññûëêà íà çàïèñü òàáëèöû "Ñåðâèñû îáìåíà (ôóíêöèè)"
|
||||
DEXEC_DATE in date, -- Äàòà è âðåìÿ îáðàáîòêè
|
||||
NEXEC_CNT in number, -- Êîëè÷åñòâî ïîïûòîê îáðàáîòêè
|
||||
NEXEC_STATE in number, -- Ñòàòóñ îáðàáîòêè
|
||||
SEXEC_MSG in varchar2, -- Ñîîáùåíèå îáðàáîòêè
|
||||
BMSG in blob, -- Ñîîáùåíèå
|
||||
BRESP in blob, -- Îòâåò
|
||||
NEXSQUEUE in number, -- Ñâÿçàííàÿ ïîçèöèÿ î÷åðåäè
|
||||
NLNK_COMPANY in number, -- Ñâÿçàííàÿ îðãàíèçàöèÿ
|
||||
NLNK_DOCUMENT in number, -- Ñâÿçàííàÿ çàïèñü
|
||||
SLNK_UNITCODE in varchar2, -- Ñâÿçàííûé ðàçäåë
|
||||
SOPTIONS in varchar2, -- Ïàðàìåòðû
|
||||
NRN out number -- Ðåãèñòðàöèîííûé íîìåð
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Ãåíåðàöèÿ ðåãèñòðàöèîííîãî íîìåðà */
|
||||
NRN := GEN_ID;
|
||||
|
||||
/* Äîáàâëåíèå çàïèñè â òàáëèöó */
|
||||
insert into EXSQUEUE
|
||||
(RN,
|
||||
IN_DATE,
|
||||
IN_AUTHID,
|
||||
EXSSERVICEFN,
|
||||
EXEC_DATE,
|
||||
EXEC_CNT,
|
||||
EXEC_STATE,
|
||||
EXEC_MSG,
|
||||
MSG,
|
||||
RESP,
|
||||
EXSQUEUE,
|
||||
LNK_COMPANY,
|
||||
LNK_DOCUMENT,
|
||||
LNK_UNITCODE,
|
||||
MSG_ORIGINAL,
|
||||
RESP_ORIGINAL,
|
||||
OPTIONS)
|
||||
values
|
||||
(NRN,
|
||||
DIN_DATE,
|
||||
SIN_AUTHID,
|
||||
NEXSSERVICEFN,
|
||||
DEXEC_DATE,
|
||||
NEXEC_CNT,
|
||||
NEXEC_STATE,
|
||||
SEXEC_MSG,
|
||||
BMSG,
|
||||
BRESP,
|
||||
NEXSQUEUE,
|
||||
NLNK_COMPANY,
|
||||
NLNK_DOCUMENT,
|
||||
SLNK_UNITCODE,
|
||||
BMSG,
|
||||
BRESP,
|
||||
SOPTIONS);
|
||||
end;
|
||||
/
|
@ -1,34 +0,0 @@
|
||||
create or replace procedure P_EXSQUEUE_BASE_REPEAT
|
||||
(
|
||||
NRN in number -- Ðåãèñòðàöèîííûé íîìåð
|
||||
)
|
||||
as
|
||||
NRN_NEW PKG_STD.TREF; -- Ðåãèñòðàöèîííûé íîìåð äîáàâëåííîãî ñîîáùåíèÿ
|
||||
begin
|
||||
/* Îòáîð çàïèñè */
|
||||
for REC in (select T.*,
|
||||
S.SRV_TYPE
|
||||
from EXSQUEUE T,
|
||||
EXSSERVICEFN F,
|
||||
EXSSERVICE S
|
||||
where T.RN = NRN
|
||||
and T.EXSSERVICEFN = F.RN
|
||||
and F.PRN = S.RN)
|
||||
loop
|
||||
/* Åñëè ýòî íå îòïðàâêà ñîîáùåíèÿ */
|
||||
if (REC.SRV_TYPE != PKG_EXS.NSRV_TYPE_SEND) then
|
||||
P_EXCEPTION(0,
|
||||
'Ïîâòîðèòü îòïðàâêó ìîæíî òîëüêî äëÿ èñõîäÿùåãî ñîîáùåíèÿ.');
|
||||
end if;
|
||||
/* Ïîìåùåíèå ñîîáùåíèÿ îáìåíà â î÷åðåäü */
|
||||
PKG_EXS.QUEUE_PUT(NEXSSERVICEFN => REC.EXSSERVICEFN,
|
||||
BMSG => REC.MSG_ORIGINAL,
|
||||
NEXSQUEUE => REC.RN,
|
||||
NLNK_COMPANY => REC.LNK_COMPANY,
|
||||
NLNK_DOCUMENT => REC.LNK_DOCUMENT,
|
||||
SLNK_UNITCODE => REC.LNK_UNITCODE,
|
||||
SOPTIONS => REC.OPTIONS,
|
||||
NNEW_EXSQUEUE => NRN_NEW);
|
||||
end loop;
|
||||
end;
|
||||
/
|
@ -1,40 +0,0 @@
|
||||
create or replace procedure P_EXSQUEUE_EXPORT
|
||||
(
|
||||
NRN in number, -- Регистрационный номер очереди обмена
|
||||
NIDENT in number, -- Идентификатор процесса
|
||||
STYPE_FILE in varchar2, -- Расширение файла
|
||||
NMSG in number, -- Признак выгрузки сообщения очереди обмена (0 - не выгружать, 1 - выгружать)
|
||||
NRESP in number, -- Признак выгрузки ответа очереди обмена (0 - не выгружать, 1 - выгружать)
|
||||
NMSG_ORIGINAL in number, -- Признак выгрузки оригинала сообщения очереди обмена (0 - не выгружать, 1 - выгружать)
|
||||
NRESP_ORIGINAL in number -- Признак выгрузки оригинала ответа очереди обмена (0 - не выгружать, 1 - выгружать)
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Фиксация начала выполнения действия */
|
||||
PKG_ENV.PROLOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => null,
|
||||
SUNIT => 'EXSQueue',
|
||||
SACTION => 'EXSQUEUE_EXPORT',
|
||||
STABLE => 'EXSQUEUE',
|
||||
NDOCUMENT => NRN);
|
||||
|
||||
/* Базовая выгрузка */
|
||||
P_EXSQUEUE_BASE_EXPORT(NRN => NRN,
|
||||
NIDENT => NIDENT,
|
||||
STYPE_FILE => STYPE_FILE,
|
||||
NMSG => NMSG,
|
||||
NRESP => NRESP,
|
||||
NMSG_ORIGINAL => NMSG_ORIGINAL,
|
||||
NRESP_ORIGINAL => NRESP_ORIGINAL);
|
||||
|
||||
/* Фиксация окончания выполнения действия */
|
||||
PKG_ENV.EPILOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => null,
|
||||
SUNIT => 'EXSQueue',
|
||||
SACTION => 'EXSQUEUE_EXPORT',
|
||||
STABLE => 'EXSQUEUE',
|
||||
NDOCUMENT => NRN);
|
||||
end;
|
||||
/
|
@ -1,272 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICEFN_BASE_CHECK
|
||||
(
|
||||
SMODE in varchar2, -- Тип действия ('I' - Добавление, 'U' - Исправление, 'D' - Удаление)
|
||||
REXSSERVICEFN in EXSSERVICEFN%rowtype -- Запись функции сервиса обмена
|
||||
)
|
||||
as
|
||||
/* Процедура проверки значений, которые зависят от типа сервиса обмена*/
|
||||
procedure CHECK_SRV_TYPE
|
||||
(
|
||||
NPRN in number, -- Регистрационный номер сервиса обмена
|
||||
NRETRY_SCHEDULE in number, -- Расписание повторного исполнения
|
||||
NRETRY_STEP in number, -- Шаг расписания повторного исполнения
|
||||
NRETRY_ATTEMPTS in number -- Количество попыток повторного исполнения
|
||||
)
|
||||
as
|
||||
NSRV_TYPE EXSSERVICE.SRV_TYPE%type; -- Тип сервиса обмена
|
||||
begin
|
||||
/* Определение типа сериса обмена */
|
||||
begin
|
||||
select SRV_TYPE into NSRV_TYPE from EXSSERVICE where RN = NPRN;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NDOCUMENT => NPRN, SUNIT_TABLE => 'EXSService');
|
||||
end;
|
||||
/* Если тип сервиса обмена "Получение сообщений" */
|
||||
if (NSRV_TYPE = 1) then
|
||||
/* Проверка расписания повторного исполнения */
|
||||
if (NRETRY_SCHEDULE != 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Недопустимое значение расписания повторного исполнения функции сервиса обмена.');
|
||||
end if;
|
||||
/* Проверка шага расписания повторного исполнения */
|
||||
if (NRETRY_STEP != 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Недопустимое значение шага расписания повторного исполнения функции сервиса обмена.');
|
||||
end if;
|
||||
/* Проверка количества попыток повторного исполнения */
|
||||
if (NRETRY_ATTEMPTS != 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Недопустимое значение количества попыток повторного исполнения функции сервиса обмена.');
|
||||
end if;
|
||||
end if;
|
||||
end CHECK_SRV_TYPE;
|
||||
|
||||
/* Процедура проверки значений, которые зависят от расписания повторного исполнения функции сервиса обмена */
|
||||
procedure CHECK_RETRY_SCHEDULE
|
||||
(
|
||||
NRETRY_SCHEDULE in number, -- Расписание повторного исполнения
|
||||
NRETRY_STEP in number, -- Шаг расписания повторного исполнения
|
||||
NRETRY_ATTEMPTS in number -- Количество попыток повторного исполнения
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Если расписание повторного исполнения не определено */
|
||||
if (NRETRY_SCHEDULE = 0) then
|
||||
/* Проверка шага расписания повторного исполнения */
|
||||
if (NRETRY_STEP != 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Недопустимое значение шага расписания повторного исполнения функции сервиса обмена.');
|
||||
end if;
|
||||
/* Проверка количества попыток повторного исполнения */
|
||||
if (NRETRY_ATTEMPTS != 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Недопустимое значение количества попыток повторного исполнения функции сервиса обмена.');
|
||||
end if;
|
||||
end if;
|
||||
end CHECK_RETRY_SCHEDULE;
|
||||
|
||||
/* Проверка функций типа "Начало сеанса" и "Завершение сеанса" */
|
||||
procedure CHECK_FN_TYPE
|
||||
(
|
||||
NRN in number, -- Регистрационный номер проверяемой записи
|
||||
NPRN in number, -- Регистрационный номер сервиса обмена
|
||||
NFN_TYPE in number -- Типовая функция
|
||||
)
|
||||
as
|
||||
REXSSERVICEFN EXSSERVICEFN%rowtype; -- Текущая запись
|
||||
NCOUNT PKG_STD.TNUMBER; -- Количество найденных записей
|
||||
begin
|
||||
/* Считаем текущую запись */
|
||||
REXSSERVICEFN := GET_EXSSERVICEFN_ID(NFLAG_SMART => 1, NRN => NRN);
|
||||
/* Если типовая функция "Начало сеанса" или "Завершение сеанса" */
|
||||
if (NFN_TYPE in (1, 2)) then
|
||||
/* Определение количества записей */
|
||||
select count(*)
|
||||
into NCOUNT
|
||||
from EXSSERVICEFN
|
||||
where PRN = NPRN
|
||||
and FN_TYPE = NFN_TYPE
|
||||
and ((NRN is null) or ((NRN is not null) and (RN <> NRN)));
|
||||
/* Если есть записи с такой же типовой функцией */
|
||||
if (NCOUNT > 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Сервис не может содержать более одной функции начала/завершения сеанса.');
|
||||
end if;
|
||||
end if;
|
||||
/* Если данная функция была началом сеанса, а теперь нет */
|
||||
if ((REXSSERVICEFN.FN_TYPE = 1) and (NFN_TYPE <> 1)) then
|
||||
/* Проверка на существование функций с установленным признаком "Требуется аутентификация" */
|
||||
select count(*)
|
||||
into NCOUNT
|
||||
from EXSSERVICEFN
|
||||
where PRN = NPRN
|
||||
and AUTH_ONLY = 1
|
||||
and ((NRN is not null and RN != NRN) or (NRN is null));
|
||||
/* Если есть функции с установленным признаком "Требуется аутентификация" */
|
||||
if (NCOUNT > 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Изменение типа функции "Начало сеанаса" невозможно, т.к. имеются функции с установленным признаком "Требуется аутентификация".');
|
||||
end if;
|
||||
end if;
|
||||
end CHECK_FN_TYPE;
|
||||
|
||||
/* Проверка активности сервера приложений */
|
||||
procedure CHECK_ACTIVE_APPSRV
|
||||
(
|
||||
SMODE in varchar2 -- Тип действия ('I' - Добавление, 'U' - Исправление, 'D' - Удаление)
|
||||
)
|
||||
as
|
||||
SACTION PKG_STD.TSTRING; -- Наименование действия
|
||||
begin
|
||||
/* Если сервер приложений активен - не допускать добавление, исправление, удаление функции сервиса обмена */
|
||||
if (PKG_EXS.UTL_APPSRV_IS_ACTIVE) then
|
||||
/* Тип действия */
|
||||
case SMODE
|
||||
/* Добавление */
|
||||
when 'I' then
|
||||
SACTION := 'добавление';
|
||||
/* Исправление */
|
||||
when 'U' then
|
||||
SACTION := 'исправление';
|
||||
/* Удаление */
|
||||
when 'D' then
|
||||
SACTION := 'удаление';
|
||||
/* Иначе */
|
||||
else
|
||||
return;
|
||||
end case;
|
||||
P_EXCEPTION(0,
|
||||
'Сервер приложений активен, ' || SACTION || ' функции сервиса обмена недопустимо.');
|
||||
end if;
|
||||
end CHECK_ACTIVE_APPSRV;
|
||||
|
||||
/* Проверка списка адресов E-Mail для уведомления об ошибках обработки */
|
||||
procedure CHECK_ERR_NTF_MAIL
|
||||
(
|
||||
SERR_NTF_MAIL in varchar2 -- Список адресов E-Mail для уведомления
|
||||
)
|
||||
as
|
||||
SSEQSYMB PKG_STD.TSTRING; -- Символ-разделитель элементов списка
|
||||
SREG_EXP_EMAIL PKG_STD.TSTRING; -- Маска для регулярного выражения
|
||||
NCOUNT_SEQSYMB PKG_STD.TNUMBER; -- Количество вхождений символа группирования перечислений в строке списка адресов E-Mail
|
||||
NREG PKG_STD.TNUMBER; -- Результат выполнения REGEXP_LIKE
|
||||
begin
|
||||
/* Определение символа-разделителя элементов списка */
|
||||
SSEQSYMB := ',';
|
||||
/* Определение количества вхождений символа группирования перечислений в строке списка адресов E-Mail */
|
||||
NCOUNT_SEQSYMB := LENGTH(SERR_NTF_MAIL) - LENGTH(replace(SERR_NTF_MAIL, SSEQSYMB));
|
||||
/* Определение маски */
|
||||
SREG_EXP_EMAIL := '^((([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]+)\' || SSEQSYMB || '?){' ||
|
||||
TO_CHAR(NCOUNT_SEQSYMB + 1) || '}[a-z]*$';
|
||||
/* Проверка списка адресов */
|
||||
begin
|
||||
select 1 into NREG from DUAL where REGEXP_LIKE(LOWER(SERR_NTF_MAIL), SREG_EXP_EMAIL);
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
P_EXCEPTION(0,
|
||||
'Неверный формат поля "Список адресов E-Mail для уведомления об ошибках обработки".' || CR ||
|
||||
'Пример: example@mail.ru' || CR ||
|
||||
'Для указания нескольких адресов следует использовать запятую в качестве разделителя (без пробелов).' || CR ||
|
||||
'Пример: example@mail.ru' || SSEQSYMB || 'e-mail@gmail.com');
|
||||
end;
|
||||
end CHECK_ERR_NTF_MAIL;
|
||||
|
||||
/* Проверка признака "Требуется аутентификация" */
|
||||
procedure CHECK_AUTH_ONLY
|
||||
(
|
||||
NRN in number, -- Регистрационный номер
|
||||
NPRN in number, -- Регистрационный номер сервиса обмена
|
||||
NAUTH_ONLY in number -- Требуется аутентификация
|
||||
)
|
||||
as
|
||||
NCOUNT PKG_STD.TNUMBER; -- Количество функций с типом "Начало сеанса"
|
||||
begin
|
||||
/* Если указан признак */
|
||||
if (NAUTH_ONLY = 1) then
|
||||
/* Проверка на существование функции с типом "Начало сеанса" */
|
||||
select count(*)
|
||||
into NCOUNT
|
||||
from EXSSERVICEFN
|
||||
where PRN = NPRN
|
||||
and FN_TYPE = 1
|
||||
and ((NRN is not null and RN != NRN) or (NRN is null));
|
||||
/* Если нет функций с типом "Начало сеанса" */
|
||||
if (NCOUNT < 1) then
|
||||
P_EXCEPTION(0,
|
||||
'Для установки признака "Требуется аутентификация" необходима функция с типом "Начало сеанса".');
|
||||
end if;
|
||||
end if;
|
||||
end CHECK_AUTH_ONLY;
|
||||
|
||||
/* Проверка признака "Требуется аутентификация" при удалении */
|
||||
procedure CHECK_AUTH_ONLY_DELETE
|
||||
(
|
||||
NRN in number, -- Регистрационный номер
|
||||
NPRN in number, -- Регистрационный номер сервиса обмена
|
||||
NFN_TYPE in number -- Типовая функция
|
||||
)
|
||||
as
|
||||
NCOUNT PKG_STD.TNUMBER; -- Количество функций с установленным признаком "Требуется аутентификация"
|
||||
begin
|
||||
/* Если удаляемая функция "Начало сеанса" */
|
||||
if (NFN_TYPE = 1) then
|
||||
/* Проверка на существование функций с установленным признаком "Требуется аутентификация" */
|
||||
select count(*)
|
||||
into NCOUNT
|
||||
from EXSSERVICEFN
|
||||
where PRN = NPRN
|
||||
and AUTH_ONLY = 1
|
||||
and ((NRN is not null and RN != NRN) or (NRN is null));
|
||||
/* Если есть функции с установленным признаком "Требуется аутентификация" */
|
||||
if (NCOUNT > 0) then
|
||||
P_EXCEPTION(0,
|
||||
'Удаление функции с типом "Начало сеанаса" невозможно, т.к. имеются функции с установленным признаком "Требуется аутентификация".');
|
||||
end if;
|
||||
end if;
|
||||
end CHECK_AUTH_ONLY_DELETE;
|
||||
|
||||
begin
|
||||
/* Проверка активности сервера приложений */
|
||||
CHECK_ACTIVE_APPSRV(SMODE => SMODE);
|
||||
/* Тип действия */
|
||||
case SMODE
|
||||
/* Добавление */
|
||||
when 'I' then
|
||||
/* Проверка значений функции сервиса обмена */
|
||||
CHECK_SRV_TYPE(NPRN => REXSSERVICEFN.PRN,
|
||||
NRETRY_SCHEDULE => REXSSERVICEFN.RETRY_SCHEDULE,
|
||||
NRETRY_STEP => REXSSERVICEFN.RETRY_STEP,
|
||||
NRETRY_ATTEMPTS => REXSSERVICEFN.RETRY_ATTEMPTS);
|
||||
CHECK_RETRY_SCHEDULE(NRETRY_SCHEDULE => REXSSERVICEFN.RETRY_SCHEDULE,
|
||||
NRETRY_STEP => REXSSERVICEFN.RETRY_STEP,
|
||||
NRETRY_ATTEMPTS => REXSSERVICEFN.RETRY_ATTEMPTS);
|
||||
CHECK_FN_TYPE(NRN => REXSSERVICEFN.RN, NPRN => REXSSERVICEFN.PRN, NFN_TYPE => REXSSERVICEFN.FN_TYPE);
|
||||
if (REXSSERVICEFN.ERR_NTF_MAIL is not null) then
|
||||
CHECK_ERR_NTF_MAIL(SERR_NTF_MAIL => REXSSERVICEFN.ERR_NTF_MAIL);
|
||||
end if;
|
||||
CHECK_AUTH_ONLY(NRN => REXSSERVICEFN.RN, NPRN => REXSSERVICEFN.PRN, NAUTH_ONLY => REXSSERVICEFN.AUTH_ONLY);
|
||||
/* Исправление */
|
||||
when 'U' then
|
||||
/* Проверка значений функции сервиса обмена */
|
||||
CHECK_SRV_TYPE(NPRN => REXSSERVICEFN.PRN,
|
||||
NRETRY_SCHEDULE => REXSSERVICEFN.RETRY_SCHEDULE,
|
||||
NRETRY_STEP => REXSSERVICEFN.RETRY_STEP,
|
||||
NRETRY_ATTEMPTS => REXSSERVICEFN.RETRY_ATTEMPTS);
|
||||
CHECK_RETRY_SCHEDULE(NRETRY_SCHEDULE => REXSSERVICEFN.RETRY_SCHEDULE,
|
||||
NRETRY_STEP => REXSSERVICEFN.RETRY_STEP,
|
||||
NRETRY_ATTEMPTS => REXSSERVICEFN.RETRY_ATTEMPTS);
|
||||
CHECK_FN_TYPE(NRN => REXSSERVICEFN.RN, NPRN => REXSSERVICEFN.PRN, NFN_TYPE => REXSSERVICEFN.FN_TYPE);
|
||||
if (REXSSERVICEFN.ERR_NTF_MAIL is not null) then
|
||||
CHECK_ERR_NTF_MAIL(SERR_NTF_MAIL => REXSSERVICEFN.ERR_NTF_MAIL);
|
||||
end if;
|
||||
CHECK_AUTH_ONLY(NRN => REXSSERVICEFN.RN, NPRN => REXSSERVICEFN.PRN, NAUTH_ONLY => REXSSERVICEFN.AUTH_ONLY);
|
||||
/* Удаление */
|
||||
when 'D' then
|
||||
/* Проверка значений функции сервиса обмена */
|
||||
CHECK_AUTH_ONLY_DELETE(NRN => REXSSERVICEFN.RN, NPRN => REXSSERVICEFN.PRN, NFN_TYPE => REXSSERVICEFN.FN_TYPE);
|
||||
else
|
||||
P_EXCEPTION(0, 'Тип действия определен неверно.');
|
||||
end case;
|
||||
end;
|
||||
/
|
@ -1,34 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICEFN_BASE_DELETE_LNK
|
||||
(
|
||||
NRN in number, -- Ðåãèñòðàöèîííûé íîìåð
|
||||
NDLT_LINK_SIGN in number -- Óäàëèòü ñâÿçàííûå çàïèñè æóðíàëà ðàáîòû ñåðâèñà èíòåãðàöèè è î÷åðåäè îáìåíà
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé î÷åðåäè îáìåíà */
|
||||
for REC in (select T.RN
|
||||
from EXSQUEUE T
|
||||
where T.EXSSERVICEFN = NRN
|
||||
and NDLT_LINK_SIGN = 1)
|
||||
loop
|
||||
/* Ïðîâåðêà íà ñóùåñòâîâàíèå çàïèñè */
|
||||
for REC_CHECK in (select 1 from EXSQUEUE T1 where T1.RN = REC.RN)
|
||||
loop
|
||||
/* Áàçîâîå óäàëåíèå ñ çàâèñèìîñòÿìè */
|
||||
P_EXSQUEUE_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||
end loop;
|
||||
end loop;
|
||||
|
||||
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé æóðíàëà ðàáîòû */
|
||||
for REC in (select T.RN
|
||||
from EXSLOG T
|
||||
where T.EXSSERVICEFN = NRN
|
||||
and NDLT_LINK_SIGN = 1)
|
||||
loop
|
||||
P_EXSLOG_BASE_DELETE(NRN => REC.RN);
|
||||
end loop;
|
||||
|
||||
/* Áàçîâîå óäàëåíèå */
|
||||
P_EXSSERVICEFN_BASE_DELETE(NRN => NRN);
|
||||
end;
|
||||
/
|
@ -1,154 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICEFN_FORM_EDIT
|
||||
(
|
||||
NMODE in number, -- Тип действия (0 - Добавление, 1 - Исправление)
|
||||
NFIRST in out number, -- Признак первого обращения (0 - вторичное обращение, 1 - первое обращение)
|
||||
SATTRIB in varchar2, -- Измененный атрибут
|
||||
NRN in number, -- Регистрационный номер функции сервиса обмена
|
||||
NPRN in number, -- Регистрационный номер сервиса обмена
|
||||
NFN_TYPE in number, -- Типовая функция
|
||||
NRETRY_SCHEDULE in out number, -- Расписание повторного исполнения
|
||||
NRETRY_STEP in out number, -- Шаг расписания повторного исполнения
|
||||
NRETRY_ATTEMPTS in out number, -- Количество попыток повторного исполнения
|
||||
NERR_NTF_SIGN in out number, -- Уведомлять об ошибках обработки
|
||||
SERR_NTF_MAIL in out varchar2, -- Список адресов E-Mail для уведомления об ошибках обработки
|
||||
NAUTH_ONLY in out number, -- Требуется аутентификация
|
||||
NE_RETRY_SCHEDULE in out number, -- Признак доступности элемента "NRETRY_SCHEDULE" (Расписание повторного исполнения)
|
||||
NE_RETRY_STEP in out number, -- Признак доступности элемента "NRETRY_STEP" (Шаг расписания повторного исполнения)
|
||||
NE_RETRY_ATTEMPTS in out number, -- Признак доступности элемента "NRETRY_ATTEMPTS" (Количество попыток повторного исполнения)
|
||||
NE_ERR_NTF_MAIL in out number, -- Признак доступности элемента "SERR_NTF_MAIL" (Список адресов E-Mail для уведомления об ошибках обработки)
|
||||
NE_AUTH_ONLY in out number, -- Признак доступности элемента "NAUTH_ONLY" (Требуется аутентификация)
|
||||
NR_ERR_NTF_MAIL in out number -- Признак обязательности элемента "SERR_NTF_MAIL" (Список адресов E-Mail для уведомления об ошибках обработки)
|
||||
)
|
||||
as
|
||||
/* Установка доступности и значений элементов, которые зависят от типа сервиса обмена */
|
||||
procedure SET_ENABLED_SRV_TYPE
|
||||
as
|
||||
NSRV_TYPE EXSSERVICE.SRV_TYPE%type; -- Тип сервиса обмена
|
||||
begin
|
||||
/* Определение типа сервиса обмена */
|
||||
begin
|
||||
select SRV_TYPE into NSRV_TYPE from EXSSERVICE where RN = NPRN;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NFLAG_SMART => 0, NDOCUMENT => NPRN, SUNIT_TABLE => 'EXSService');
|
||||
end;
|
||||
/* Если тип сервиса обмена "Получение сообщений" */
|
||||
if (NSRV_TYPE = 1) then
|
||||
NE_RETRY_SCHEDULE := 0;
|
||||
NE_RETRY_STEP := 0;
|
||||
NE_RETRY_ATTEMPTS := 0;
|
||||
NRETRY_SCHEDULE := 0;
|
||||
NRETRY_STEP := 0;
|
||||
NRETRY_ATTEMPTS := 0;
|
||||
else
|
||||
NE_RETRY_SCHEDULE := 1;
|
||||
NE_RETRY_STEP := 1;
|
||||
NE_RETRY_ATTEMPTS := 1;
|
||||
end if;
|
||||
end SET_ENABLED_SRV_TYPE;
|
||||
|
||||
/* Установка доступности и значений элементов, которые зависят от расписания повторного исполнения функции сервиса обмена */
|
||||
procedure SET_ENABLED_RETRY_SCHEDULE
|
||||
as
|
||||
begin
|
||||
/* Если расписание повторного исполнения не определено */
|
||||
if (NRETRY_SCHEDULE = 0) then
|
||||
NE_RETRY_STEP := 0;
|
||||
NE_RETRY_ATTEMPTS := 0;
|
||||
NRETRY_STEP := 0;
|
||||
NRETRY_ATTEMPTS := 0;
|
||||
else
|
||||
NE_RETRY_STEP := 1;
|
||||
NE_RETRY_ATTEMPTS := 1;
|
||||
end if;
|
||||
end SET_ENABLED_RETRY_SCHEDULE;
|
||||
|
||||
/* Установка доступности, обязательности и значений элементов, которые зависят от признака "Уведомлять об ошибках обработки" */
|
||||
procedure SET_ENABLED_ERR_NTF_SIGN
|
||||
as
|
||||
begin
|
||||
/* Если не установлен признак "Уведомлять об ошибках обработки" */
|
||||
if (NERR_NTF_SIGN = 0) then
|
||||
NE_ERR_NTF_MAIL := 0;
|
||||
NR_ERR_NTF_MAIL := 0;
|
||||
SERR_NTF_MAIL := null;
|
||||
else
|
||||
NE_ERR_NTF_MAIL := 1;
|
||||
NR_ERR_NTF_MAIL := 1;
|
||||
/* Если значение не задано */
|
||||
if (SERR_NTF_MAIL is null) then
|
||||
/* Определение списка адресов из заголовка */
|
||||
begin
|
||||
select T.UNAVLBL_NTF_MAIL into SERR_NTF_MAIL from EXSSERVICE T where T.RN = NPRN;
|
||||
exception
|
||||
when NO_DATA_FOUND then
|
||||
PKG_MSG.RECORD_NOT_FOUND(NDOCUMENT => NPRN, SUNIT_TABLE => 'EXSService');
|
||||
end;
|
||||
end if;
|
||||
end if;
|
||||
end SET_ENABLED_ERR_NTF_SIGN;
|
||||
|
||||
/* Установка доступности и значения элемента "Требуется аутентификация" */
|
||||
procedure SET_ENABLED_AUTH_ONLY
|
||||
as
|
||||
NCOUNT PKG_STD.TNUMBER; -- Количество функций с типом "Начало сеанса"
|
||||
begin
|
||||
/* Проверка на существование функции с типом "Начало сеанса" */
|
||||
select count(*)
|
||||
into NCOUNT
|
||||
from EXSSERVICEFN
|
||||
where PRN = NPRN
|
||||
and FN_TYPE = 1;
|
||||
/* Если есть функции с типом "Начало сеанса" */
|
||||
if (NCOUNT > 0) then
|
||||
/* Если функция "Обмен данными" */
|
||||
if (NFN_TYPE = 0) then
|
||||
NE_AUTH_ONLY := 1;
|
||||
/* Если функция "Начало сеанса" */
|
||||
elsif (NFN_TYPE = 1) then
|
||||
NAUTH_ONLY := 0;
|
||||
NE_AUTH_ONLY := 0;
|
||||
/* Если функция "Завершение сеанса" */
|
||||
elsif (NFN_TYPE = 2) then
|
||||
NAUTH_ONLY := 1;
|
||||
NE_AUTH_ONLY := 0;
|
||||
end if;
|
||||
/* Если нет функций с типом "Начало сеанса" */
|
||||
else
|
||||
NAUTH_ONLY := 0;
|
||||
NE_AUTH_ONLY := 0;
|
||||
end if;
|
||||
end;
|
||||
|
||||
begin
|
||||
/* Если это первое обращение */
|
||||
if (NFIRST = 1) then
|
||||
/* Установка доступности и значений элементов */
|
||||
SET_ENABLED_SRV_TYPE;
|
||||
SET_ENABLED_RETRY_SCHEDULE;
|
||||
SET_ENABLED_ERR_NTF_SIGN;
|
||||
SET_ENABLED_AUTH_ONLY;
|
||||
end if;
|
||||
|
||||
/* Если измененный атрибут "NRETRY_SCHEDULE" (Расписание повторного исполнения) */
|
||||
if (SATTRIB = 'NRETRY_SCHEDULE') then
|
||||
/* Установка доступности и значений элементов */
|
||||
SET_ENABLED_RETRY_SCHEDULE;
|
||||
end if;
|
||||
|
||||
/* Если измененный атрибут "NERR_NTF_SIGN" (Уведомлять об ошибках обработки) или это первое обращение */
|
||||
if (SATTRIB = 'NERR_NTF_SIGN') then
|
||||
/* Установка доступности, обязательности и значений элементов */
|
||||
SET_ENABLED_ERR_NTF_SIGN;
|
||||
end if;
|
||||
|
||||
/* Если измененный атрибут "NFN_TYPE" (Типовая функция) */
|
||||
if (SATTRIB = 'NFN_TYPE') then
|
||||
/* Установка доступности и значения элемента "Требуется аутентификация" */
|
||||
SET_ENABLED_AUTH_ONLY;
|
||||
end if;
|
||||
|
||||
/* Установка признака первого обращение */
|
||||
NFIRST := 0;
|
||||
end;
|
||||
/
|
@ -1,40 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICE_BASE_DELETE_LNK
|
||||
(
|
||||
NRN in number, -- Ðåãèñòðàöèîííûé íîìåð
|
||||
NDLT_LINK_SIGN in number -- Óäàëèòü ñâÿçàííûå çàïèñè æóðíàëà ðàáîòû ñåðâèñà èíòåãðàöèè è î÷åðåäè îáìåíà
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé î÷åðåäè îáìåíà */
|
||||
for REC in (select T.RN
|
||||
from EXSQUEUE T
|
||||
where T.EXSSERVICEFN in (select T1.RN from EXSSERVICEFN T1 where T1.PRN = NRN)
|
||||
and NDLT_LINK_SIGN = 1)
|
||||
loop
|
||||
/* Ïðîâåðêà íà ñóùåñòâîâàíèå çàïèñè */
|
||||
for REC_CHECK in (select 1 from EXSQUEUE T1 where T1.RN = REC.RN)
|
||||
loop
|
||||
/* Áàçîâîå óäàëåíèå ñ çàâèñèìîñòÿìè */
|
||||
P_EXSQUEUE_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||
end loop;
|
||||
end loop;
|
||||
|
||||
/* Óäàëåíèå ñâÿçàííûõ çàïèñåé æóðíàëà ðàáîòû */
|
||||
for REC in (select T.RN
|
||||
from EXSLOG T
|
||||
where T.EXSSERVICE = NRN
|
||||
and NDLT_LINK_SIGN = 1)
|
||||
loop
|
||||
P_EXSLOG_BASE_DELETE(NRN => REC.RN);
|
||||
end loop;
|
||||
|
||||
/* Óäàëåíèå ôóíêöèé ñ çàâèñèìîñòÿìè */
|
||||
for REC in (select T.RN from EXSSERVICEFN T where T.PRN = NRN)
|
||||
loop
|
||||
P_EXSSERVICEFN_BASE_DELETE_LNK(NRN => REC.RN, NDLT_LINK_SIGN => NDLT_LINK_SIGN);
|
||||
end loop;
|
||||
|
||||
/* Áàçîâîå óäàëåíèå */
|
||||
P_EXSSERVICE_BASE_DELETE(NRN => NRN);
|
||||
end;
|
||||
/
|
@ -1,10 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICE_BASE_LOGIN
|
||||
(
|
||||
NRN in number -- Ðåã. íîìåð çàïèñè ñåðâèñà îáìåíà
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Ïîñòàâèì â î÷åðåäü çàäàíèå íà àóòåíòèôèêàöèþ */
|
||||
PKG_EXS.SERVICE_AUTH_PUT_INQUEUE(NEXSSERVICE => NRN);
|
||||
end;
|
||||
/
|
@ -1,10 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICE_BASE_LOGOUT
|
||||
(
|
||||
NRN in number -- Ðåã. íîìåð çàïèñè ñåðâèñà îáìåíà
|
||||
)
|
||||
as
|
||||
begin
|
||||
/* Ïîñòàâèì â î÷åðåäü çàäàíèå íà îòìåíó àóòåíòèôèêàöèè */
|
||||
PKG_EXS.SERVICE_UNAUTH_PUT_INQUEUE(NEXSSERVICE => NRN);
|
||||
end;
|
||||
/
|
@ -1,32 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICE_LOGIN
|
||||
(
|
||||
NRN in number -- Ðåã. íîìåð çàïèñè ñåðâèñà îáìåíà
|
||||
)
|
||||
as
|
||||
REXSSERVICE EXSSERVICE%rowtype; -- Çàïèñü ñåðâèñà îáìåíà
|
||||
begin
|
||||
/* Ñ÷èòûâàíèå çàïèñè */
|
||||
REXSSERVICE := GET_EXSSERVICE_ID(NFLAG_SMART => 0, NRN => NRN);
|
||||
|
||||
/* Ôèêñàöèÿ íà÷àëà âûïîëíåíèÿ äåéñòâèÿ */
|
||||
PKG_ENV.PROLOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => REXSSERVICE.CRN,
|
||||
SUNIT => 'EXSService',
|
||||
SACTION => 'EXSSERVICE_LOGIN',
|
||||
STABLE => 'EXSSERVICE',
|
||||
NDOCUMENT => REXSSERVICE.RN);
|
||||
|
||||
/* Áàçîâîå íà÷àëî ñåàíñà */
|
||||
P_EXSSERVICE_BASE_LOGIN(NRN => REXSSERVICE.RN);
|
||||
|
||||
/* Ôèêñàöèÿ îêîí÷àíèÿ âûïîëíåíèÿ äåéñòâèÿ */
|
||||
PKG_ENV.EPILOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => REXSSERVICE.CRN,
|
||||
SUNIT => 'EXSService',
|
||||
SACTION => 'EXSSERVICE_LOGIN',
|
||||
STABLE => 'EXSSERVICE',
|
||||
NDOCUMENT => REXSSERVICE.RN);
|
||||
end;
|
||||
/
|
@ -1,32 +0,0 @@
|
||||
create or replace procedure P_EXSSERVICE_LOGOUT
|
||||
(
|
||||
NRN in number -- Ðåã. íîìåð çàïèñè ñåðâèñà îáìåíà
|
||||
)
|
||||
as
|
||||
REXSSERVICE EXSSERVICE%rowtype; -- Çàïèñü ñåðâèñà îáìåíà
|
||||
begin
|
||||
/* Ñ÷èòûâàíèå çàïèñè */
|
||||
REXSSERVICE := GET_EXSSERVICE_ID(NFLAG_SMART => 0, NRN => NRN);
|
||||
|
||||
/* Ôèêñàöèÿ íà÷àëà âûïîëíåíèÿ äåéñòâèÿ */
|
||||
PKG_ENV.PROLOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => REXSSERVICE.CRN,
|
||||
SUNIT => 'EXSService',
|
||||
SACTION => 'EXSSERVICE_LOGOUT',
|
||||
STABLE => 'EXSSERVICE',
|
||||
NDOCUMENT => REXSSERVICE.RN);
|
||||
|
||||
/* Áàçîâîå çàâåðøåíèå ñåàíñà */
|
||||
P_EXSSERVICE_BASE_LOGOUT(NRN => REXSSERVICE.RN);
|
||||
|
||||
/* Ôèêñàöèÿ îêîí÷àíèÿ âûïîëíåíèÿ äåéñòâèÿ */
|
||||
PKG_ENV.EPILOGUE(NCOMPANY => null,
|
||||
NVERSION => null,
|
||||
NCATALOG => REXSSERVICE.CRN,
|
||||
SUNIT => 'EXSService',
|
||||
SACTION => 'EXSSERVICE_LOGOUT',
|
||||
STABLE => 'EXSSERVICE',
|
||||
NDOCUMENT => REXSSERVICE.RN);
|
||||
end;
|
||||
/
|
@ -1,47 +0,0 @@
|
||||
create or replace view v_exsqueue
|
||||
(nrn, din_date, sin_authid, nexsservicefn, sexsservicefn_code, dexec_date, nexec_cnt, nexec_state, sexec_msg, bmsg, bresp, nexsqueue, nexsservice, sexsservice_code, nexsservice_srv_type, nexsmsgtype, nretry_schedule, nretry_step, nretry_attempts, sexsmsgtype_code, nlnk_company, slnk_company, nlnk_document, slnk_unitcode, slnk_unitname, bmsg_original, bresp_original, nchild_count, soptions)
|
||||
as
|
||||
select
|
||||
T.RN, -- NRN
|
||||
T.IN_DATE, -- DIN_DATE
|
||||
T.IN_AUTHID, -- SIN_AUTHID
|
||||
T.EXSSERVICEFN, -- NEXSSERVICEFN
|
||||
E.CODE, -- SEXSSERVICEFN_CODE
|
||||
T.EXEC_DATE, -- DEXEC_DATE
|
||||
T.EXEC_CNT, -- NEXEC_CNT
|
||||
T.EXEC_STATE, -- NEXEC_STATE
|
||||
T.EXEC_MSG, -- SEXEC_MSG
|
||||
T.MSG, -- BMSG
|
||||
T.RESP, -- BRESP
|
||||
T.EXSQUEUE, -- NEXSQUEUE
|
||||
E.PRN, -- NEXSSERVICE
|
||||
S.CODE, -- SEXSSERVICE_CODE
|
||||
S.SRV_TYPE, -- NEXSSERVICE_SRV_TYPE
|
||||
E.EXSMSGTYPE, -- NEXSMSGTYPE
|
||||
E.RETRY_SCHEDULE, -- NRETRY_SCHEDULE
|
||||
E.RETRY_STEP, -- NRETRY_STEP
|
||||
E.RETRY_ATTEMPTS, -- NRETRY_ATTEMPTS
|
||||
M.CODE, -- SEXSMSGTYPE_CODE
|
||||
T.LNK_COMPANY, -- NLNK_COMPANY
|
||||
C.NAME, -- SLNK_COMPANY
|
||||
T.LNK_DOCUMENT, -- NLNK_DOCUMENT
|
||||
T.LNK_UNITCODE, -- SLNK_UNITCODE
|
||||
U.UNITNAME, -- SLNK_UNITNAME
|
||||
T.MSG_ORIGINAL, -- BMSG_ORIGINAL
|
||||
T.RESP_ORIGINAL, -- BRESP_ORIGINAL
|
||||
F_EXSQUEUE_GET_CHILD_COUNT(T.RN), -- NCHILD_COUNT
|
||||
T.OPTIONS -- SOPTIONS
|
||||
from
|
||||
EXSQUEUE T,
|
||||
EXSSERVICE S,
|
||||
EXSSERVICEFN E,
|
||||
EXSMSGTYPE M,
|
||||
COMPANIES C,
|
||||
UNITLIST U
|
||||
where T.EXSSERVICEFN = E.RN
|
||||
and E.EXSMSGTYPE = M.RN
|
||||
and E.PRN = S.RN
|
||||
and T.LNK_COMPANY = C.RN (+)
|
||||
and T.LNK_UNITCODE = U.UNITCODE (+)
|
||||
and exists (select null from V_USERPRIV UP where UP.UNITCODE = 'EXSQueue')
|
||||
;
|
@ -1,23 +0,0 @@
|
||||
create or replace view v_exsservice
|
||||
(nrn, ncrn, scode, sname, nsrv_type, ssrv_root, ssrv_user, ssrv_pass, nunavlbl_ntf_sign, nunavlbl_ntf_time, sunavlbl_ntf_mail, nis_auth, ncnt_login)
|
||||
as
|
||||
select
|
||||
T.RN, -- NRN
|
||||
T.CRN, -- NCRN
|
||||
T.CODE, -- SCODE
|
||||
T.NAME, -- SNAME
|
||||
T.SRV_TYPE, -- NSRV_TYPE
|
||||
T.SRV_ROOT, -- SSRV_ROOT
|
||||
T.SRV_USER, -- SSRV_USER
|
||||
T.SRV_PASS, -- SSRV_PASS
|
||||
T.UNAVLBL_NTF_SIGN, -- NUNAVLBL_NTF_SIGN
|
||||
T.UNAVLBL_NTF_TIME, -- NUNAVLBL_NTF_TIME
|
||||
T.UNAVLBL_NTF_MAIL, -- SUNAVLBL_NTF_MAIL
|
||||
T.IS_AUTH, -- NIS_AUTH
|
||||
(select count(F.RN)
|
||||
from EXSSERVICEFN F
|
||||
where F.PRN = T.RN
|
||||
and F.FN_TYPE = 1) -- NCNT_LOGIN
|
||||
from
|
||||
EXSSERVICE T
|
||||
where exists (select null from V_USERPRIV UP where UP.CATALOG = T.CRN);
|
Loading…
x
Reference in New Issue
Block a user