create or replace package PKG_P8PANELS_PE as /* Список аргументов пользовательской процедуры */ procedure USERPROCS_DESC ( SCODE in varchar2, -- Мнемокод пользовательской процедуры COUT out clob -- Сериализованный список аргументов ); /* Получение списка панелей */ procedure PANEL_LIST ( COUT out clob -- Сериализованный список панелей ); /* Считывание базовой информации о панели */ procedure PANEL_ATTRS_GET ( NRN in number, -- Рег. номер панели NCHECK_ACCESS in number := 1, -- Признак проверки прав доступа (0 - нет, 1 - да) COUT out clob -- Базовой информация о панели ); /* Считывание базовой информации о панели (по мнемокоду) */ procedure PANEL_ATTRS_GET_BY_CODE ( SCODE in varchar2, -- Мнемокод панели NCHECK_ACCESS in number := 1, -- Признак проверки прав доступа (0 - нет, 1 - да) COUT out clob -- Базовой информация о панели ); /* Добавление панели */ procedure PANEL_INSERT ( SCODE in varchar2, -- Мнемокод SNAME in varchar2, -- Наименование NRN out number -- Рег. номер добавленной панели ); /* Исправление панели */ procedure PANEL_UPDATE ( NRN in number, -- Рег. номер панели SCODE in varchar2, -- Мнемокод SNAME in varchar2 -- Наименование ); /* Удаление панели */ procedure PANEL_DELETE ( NRN in number -- Рег. номер панели ); /* Установка признака "готовности" панели */ procedure PANEL_READY_SET ( NRN in number, -- Рег. номер панели NREADY in number -- Флаг готовности к использованию (0 - нет, 1 - да) ); /* Установка признака "публичности" панели */ procedure PANEL_PBL_SET ( NRN in number, -- Рег. номер панели NPBL in number -- Флаг публичности (0 - приватный, 1 - публичный) ); /* Импорт панели из файла */ procedure PANEL_IMPORT ( CPANEL in clob, -- Описание импортируемой панели NRN out number -- Рег. номер импортированной панели ); /* Получение описания панели */ procedure PANEL_DESC_GET ( NRN in number, -- Рег. номер панели COUT out clob -- Сериализованное описание панели ); /* Сохранение описания панели */ procedure PANEL_DESC_SET ( NRN in number, -- Рег. номер панели CPANEL in clob -- Описание панели ); end PKG_P8PANELS_PE; / create or replace package body PKG_P8PANELS_PE as /* Описание пользовательской процедуры */ procedure USERPROCS_DESC ( SCODE in varchar2, -- Мнемокод пользовательской процедуры COUT out clob -- Сериализованный список аргументов ) is begin /* Базовое описание пользовательской процедуры */ PKG_P8PANELS_PE_BASE.USERPROCS_DESC(SCODE => SCODE, COUT => COUT); end USERPROCS_DESC; /* Получение списка панелей */ procedure PANEL_LIST ( COUT out clob -- Сериализованный список панелей ) is begin /* Базово сформируем список */ COUT := PKG_P8PANELS_PE_BASE.PANEL_LIST_GET(SUSER => UTILIZER()); end PANEL_LIST; /* Считывание базовой информации о панели */ procedure PANEL_ATTRS_GET ( NRN in number, -- Рег. номер панели NCHECK_ACCESS in number := 1, -- Признак проверки прав доступа (0 - нет, 1 - да) COUT out clob -- Базовой информация о панели ) is begin /* Если права необходимо проверить */ if (NCHECK_ACCESS = 1) then /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_VIEW(NRN => NRN, SUSER => UTILIZER()); end if; /* Считываем базовую информацию о панели */ PKG_P8PANELS_PE_BASE.PANEL_ATTRS_GET(NRN => NRN, COUT => COUT); end PANEL_ATTRS_GET; /* Считывание базовой информации о панели (по мнемокоду) */ procedure PANEL_ATTRS_GET_BY_CODE ( SCODE in varchar2, -- Мнемокод панели NCHECK_ACCESS in number := 1, -- Признак проверки прав доступа (0 - нет, 1 - да) COUT out clob -- Базовой информация о панели ) is NRN PKG_STD.TREF; -- Рег. номер панели begin /* Считываем рег. номер панели */ PKG_P8PANELS_PE_BASE.PANEL_FIND_BY_CODE(NFLAG_SMART => 0, NFLAG_OPTION => 0, SCODE => SCODE, NRN => NRN); /* Если права необходимо проверить */ if (NCHECK_ACCESS = 1) then /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_VIEW(NRN => NRN, SUSER => UTILIZER()); end if; /* Считываем базовую информацию о панели */ PKG_P8PANELS_PE_BASE.PANEL_ATTRS_GET(NRN => NRN, COUT => COUT); end PANEL_ATTRS_GET_BY_CODE; /* Добавление панели */ procedure PANEL_INSERT ( SCODE in varchar2, -- Мнемокод SNAME in varchar2, -- Наименование NRN out number -- Рег. номер добавленной панели ) is begin /* Базовое добавление */ PKG_P8PANELS_PE_BASE.PANEL_INSERT(SCODE => SCODE, SNAME => SNAME, NRN => NRN); end PANEL_INSERT; /* Исправление панели */ procedure PANEL_UPDATE ( NRN in number, -- Рег. номер панели SCODE in varchar2, -- Мнемокод SNAME in varchar2 -- Наименование ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_MODIFY(NRN => NRN, SUSER => UTILIZER()); /* Базовое исправление */ PKG_P8PANELS_PE_BASE.PANEL_UPDATE(NRN => NRN, SCODE => SCODE, SNAME => SNAME); end PANEL_UPDATE; /* Удаление панели */ procedure PANEL_DELETE ( NRN in number -- Рег. номер панели ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_MODIFY(NRN => NRN, SUSER => UTILIZER()); /* Базовое удаление */ PKG_P8PANELS_PE_BASE.PANEL_DELETE(NRN => NRN); end PANEL_DELETE; /* Установка признака "готовности" панели */ procedure PANEL_READY_SET ( NRN in number, -- Рег. номер панели NREADY in number -- Флаг готовности к использованию (0 - нет, 1 - да) ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_MODIFY(NRN => NRN, SUSER => UTILIZER()); /* Базовая установка признака готовности */ PKG_P8PANELS_PE_BASE.PANEL_READY_SET(NRN => NRN, NREADY => NREADY); end PANEL_READY_SET; /* Установка признака "публичности" панели */ procedure PANEL_PBL_SET ( NRN in number, -- Рег. номер панели NPBL in number -- Флаг публичности (0 - приватный, 1 - публичный) ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_MODIFY(NRN => NRN, SUSER => UTILIZER()); /* Базовая установка признака публичности */ PKG_P8PANELS_PE_BASE.PANEL_PBL_SET(NRN => NRN, NPBL => NPBL); end PANEL_PBL_SET; /* Импорт панели из файла */ procedure PANEL_IMPORT ( CPANEL in clob, -- Описание импортируемой панели NRN out number -- Рег. номер импортированной панели ) is begin /* Базовое импортирование панели */ PKG_P8PANELS_PE_BASE.PANEL_IMPORT(CPANEL => CPANEL, NRN => NRN); end PANEL_IMPORT; /* Получение описания панели */ procedure PANEL_DESC_GET ( NRN in number, -- Рег. номер панели COUT out clob -- Сериализованное описание панели ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_VIEW(NRN => NRN, SUSER => UTILIZER()); /* Получим описание панели */ COUT := PKG_P8PANELS_PE_BASE.PANEL_DESC_GET(NRN => NRN); end PANEL_DESC_GET; /* Сохранение описания панели */ procedure PANEL_DESC_SET ( NRN in number, -- Рег. номер панели CPANEL in clob -- Описание панели ) is begin /* Проверим права доступа */ PKG_P8PANELS_PE_BASE.PANEL_ACCESS_MODIFY(NRN => NRN, SUSER => UTILIZER()); /* Сохраняем описание панели */ PKG_P8PANELS_PE_BASE.PANEL_DESC_SET(NRN => NRN, CPANEL => CPANEL); end PANEL_DESC_SET; end PKG_P8PANELS_PE; /