From 735909787cc31ed35a45b1c52bc0167cb08ab329 Mon Sep 17 00:00:00 2001 From: Mikhail Chechnev Date: Fri, 8 Mar 2019 20:26:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A3=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20=D0=BE?= =?UTF-8?q?=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D1=8B=20=D0=91=D0=94=20=D1=83?= =?UTF-8?q?=D1=87=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D0=B5=D0=BC=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=B2=20=D0=A1=D0=A5=D0=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/EXSRNLIST.sql | 9 - db/F_EXSQUEUE_GET_CHILD_COUNT.fnc | 13 -- db/P_EXSQUEUE_BASE_EXPORT.prc | 70 ------- db/P_EXSQUEUE_BASE_INSERT.prc | 62 ------ db/P_EXSQUEUE_BASE_REPEAT.prc | 34 ---- db/P_EXSQUEUE_EXPORT.prc | 40 ---- db/P_EXSSERVICEFN_BASE_CHECK.prc | 272 -------------------------- db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc | 34 ---- db/P_EXSSERVICEFN_FORM_EDIT.prc | 154 --------------- db/P_EXSSERVICE_BASE_DELETE_LNK.prc | 40 ---- db/P_EXSSERVICE_BASE_LOGIN.prc | 10 - db/P_EXSSERVICE_BASE_LOGOUT.prc | 10 - db/P_EXSSERVICE_LOGIN.prc | 32 --- db/P_EXSSERVICE_LOGOUT.prc | 32 --- db/v_exsqueue.sql | 47 ----- db/v_exsservice.sql | 23 --- 16 files changed, 882 deletions(-) delete mode 100644 db/EXSRNLIST.sql delete mode 100644 db/F_EXSQUEUE_GET_CHILD_COUNT.fnc delete mode 100644 db/P_EXSQUEUE_BASE_EXPORT.prc delete mode 100644 db/P_EXSQUEUE_BASE_INSERT.prc delete mode 100644 db/P_EXSQUEUE_BASE_REPEAT.prc delete mode 100644 db/P_EXSQUEUE_EXPORT.prc delete mode 100644 db/P_EXSSERVICEFN_BASE_CHECK.prc delete mode 100644 db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc delete mode 100644 db/P_EXSSERVICEFN_FORM_EDIT.prc delete mode 100644 db/P_EXSSERVICE_BASE_DELETE_LNK.prc delete mode 100644 db/P_EXSSERVICE_BASE_LOGIN.prc delete mode 100644 db/P_EXSSERVICE_BASE_LOGOUT.prc delete mode 100644 db/P_EXSSERVICE_LOGIN.prc delete mode 100644 db/P_EXSSERVICE_LOGOUT.prc delete mode 100644 db/v_exsqueue.sql delete mode 100644 db/v_exsservice.sql diff --git a/db/EXSRNLIST.sql b/db/EXSRNLIST.sql deleted file mode 100644 index e6485fe..0000000 --- a/db/EXSRNLIST.sql +++ /dev/null @@ -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; diff --git a/db/F_EXSQUEUE_GET_CHILD_COUNT.fnc b/db/F_EXSQUEUE_GET_CHILD_COUNT.fnc deleted file mode 100644 index b940b05..0000000 --- a/db/F_EXSQUEUE_GET_CHILD_COUNT.fnc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSQUEUE_BASE_EXPORT.prc b/db/P_EXSQUEUE_BASE_EXPORT.prc deleted file mode 100644 index 09e6a77..0000000 --- a/db/P_EXSQUEUE_BASE_EXPORT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSQUEUE_BASE_INSERT.prc b/db/P_EXSQUEUE_BASE_INSERT.prc deleted file mode 100644 index cbbceee..0000000 --- a/db/P_EXSQUEUE_BASE_INSERT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSQUEUE_BASE_REPEAT.prc b/db/P_EXSQUEUE_BASE_REPEAT.prc deleted file mode 100644 index 3a14b3d..0000000 --- a/db/P_EXSQUEUE_BASE_REPEAT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSQUEUE_EXPORT.prc b/db/P_EXSQUEUE_EXPORT.prc deleted file mode 100644 index 97e1194..0000000 --- a/db/P_EXSQUEUE_EXPORT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICEFN_BASE_CHECK.prc b/db/P_EXSSERVICEFN_BASE_CHECK.prc deleted file mode 100644 index f0becf9..0000000 --- a/db/P_EXSSERVICEFN_BASE_CHECK.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc b/db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc deleted file mode 100644 index 1e466d8..0000000 --- a/db/P_EXSSERVICEFN_BASE_DELETE_LNK.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICEFN_FORM_EDIT.prc b/db/P_EXSSERVICEFN_FORM_EDIT.prc deleted file mode 100644 index 19e7a63..0000000 --- a/db/P_EXSSERVICEFN_FORM_EDIT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICE_BASE_DELETE_LNK.prc b/db/P_EXSSERVICE_BASE_DELETE_LNK.prc deleted file mode 100644 index b980617..0000000 --- a/db/P_EXSSERVICE_BASE_DELETE_LNK.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICE_BASE_LOGIN.prc b/db/P_EXSSERVICE_BASE_LOGIN.prc deleted file mode 100644 index 4c4392b..0000000 --- a/db/P_EXSSERVICE_BASE_LOGIN.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICE_BASE_LOGOUT.prc b/db/P_EXSSERVICE_BASE_LOGOUT.prc deleted file mode 100644 index d6b2d1e..0000000 --- a/db/P_EXSSERVICE_BASE_LOGOUT.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICE_LOGIN.prc b/db/P_EXSSERVICE_LOGIN.prc deleted file mode 100644 index 01f465d..0000000 --- a/db/P_EXSSERVICE_LOGIN.prc +++ /dev/null @@ -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; -/ diff --git a/db/P_EXSSERVICE_LOGOUT.prc b/db/P_EXSSERVICE_LOGOUT.prc deleted file mode 100644 index c9a7b8a..0000000 --- a/db/P_EXSSERVICE_LOGOUT.prc +++ /dev/null @@ -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; -/ diff --git a/db/v_exsqueue.sql b/db/v_exsqueue.sql deleted file mode 100644 index 166aad6..0000000 --- a/db/v_exsqueue.sql +++ /dev/null @@ -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') -; diff --git a/db/v_exsservice.sql b/db/v_exsservice.sql deleted file mode 100644 index 276773d..0000000 --- a/db/v_exsservice.sql +++ /dev/null @@ -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);