Oracle Application Express Некоторые приемы работы при реализации WEB- доступа к Парус 8
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Интерфейс пользователя Перехват сообщений об ошибках Настройка графиков AnyChart Сервисные функции Контроль прав доступа Работа с файлами (Upload/Download) Работа с расширениями APEX (Plugins) Работа с серверным API Парус 8 (8.5.6) Изменения в механизме лицензирования Аутентификация и использование API Парус 8
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Перехват сообщений об ошибках Интерфейс пользователя
Интефейс пользователя – перехват сообщений об ошибках create or replace procedure UDO_P_PRJ_INFO /* Сбор информации по проектам */ ( NIDENT number – идентификатор процесса,NCOMPANY number – рег. номер организации ) as begin … P_EXCEPTION(0, Ошибка формирования данных проекта !'); … end;
Интефейс пользователя – перехват сообщений об ошибках
Интефейс пользователя – перехват сообщений об ошибках
apex_application.g_print_success_message := ' '||serr||' ';
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Настройка графиков AnyChart Интерфейс пользователя
Интерфейс пользователя – настройка графиков AnyChart
Интерфейс пользователя – настройка графиков AnyChart
12,26 12
Интерфейс пользователя – настройка графиков AnyChart numDecimals: 0 > numDecimals: 2
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Контроль прав доступа Сервисные функции
Сервисные функции – контроль прав доступа
create or replace function UDO_F_SYSW0001_GET_USER ( PNCOMPANY number := GET_SESSION_COMPANY -- рег. номер организации ) return varchar2 as /* Получение имени пользователя */ SWWWUSER CONSTLST.STRVALUE%type; SRES USERLIST.AUTHID%type := null; begin -- считаем имя интернет - пользователя SWWWUSER := UDO_F_SYS0006_GET_CONST_VAL( NCOMPANY => PNCOMPANY,SCONST => 'WEB_ ПОЛЬЗОВАТЕЛЬ '); -- если текущее подключение от имени интернет - пользователя if (user = SWWWUSER) then -- то вернем реальное имя авторизованного пользователя функциями APEX SRES := WWV_FLOW_CUSTOM_AUTH_STD.GET_USERNAME; else -- иначе это обычный пользователь, вернем его имя SRES := user; end if; return SRES; end; /* create public synonym UDO_F_SYSW0001_GET_USER for UDO_F_SYSW0001_GET_USER; grant execute on UDO_F_SYSW0001_GET_USER to public; */ 1. Получение имени аутентифицированного пользователя WWV_FLOW_CUSTOM_AUTH_STD.GET_USERNAME
Сервисные функции – контроль прав доступа create or replace function UDO_F_SYSW0001_CHECK_PRIVS ( PNCOMPANY number := GET_SESSION_COMPANY -- рег. номер организации,PSUNIT varchar2 -- код раздела WEB- интерфейса ) return boolean as begin select... from USERROLES T,ROLES R where T.AUTHID = UDO_F_SYSW0001_GET_USER(PNCOMPANY) and T.ROLEID = R.RN and R.ROLENAME = … if()then return true; else return false; end if … end; /* create public synonym UDO_F_SYSW0001_CHECK_PRIVS for UDO_F_SYSW0001_CHECK_PRIVS; grant execute on UDO_F_SYSW0001_CHECK_PRIVS to public; */ 2. Проверка назначения роли пользователю BOOLEAN
Сервисные функции – контроль прав доступа
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Работа с файлами (Upload/Download) Сервисные функции
Сервисные функции – работа с файлами (Upload)
-- -- загрузка данных в БД через WEB- интерфейс -- procedure www_upload_file ( nusr number, -- рег. номер пользователя sftype varchar2, -- тип файла sfilepath varchar2 -- файл ) is stmp blob; begin -- ищем данный файл в буфере begin select t.blob_content into stmp from apex_application_files t where t.name=sfilepath; exception when no_data_found then except(0, ' Файл не загружен !'); end; -- обрабатываем … end;
Сервисные функции – работа с файлами (Download) выгрузка данных из БД через WEB- интерфейс -- procedure www_downlod_file ( nusr number, -- рег. номер пользователя sftype varchar2 -- тип файла ) is stmp blob; begin -- создадим буферы dbms_lob.createtemporary(lob_loc => stmp, cache => false); -- подготовим данные stmp:= формируем HTTP- ответ на скачивание owa_util.mime_header('application/octet', false); htp.p('Content-length: '||dbms_lob.getlength(stmp)); htp.p('Content-Disposition: attachment; filename="'||sfilename|| '"'); owa_util.http_header_close; wpg_docload.download_file(stmp); end;
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Работа с расширениями APEX (Plugins) Сервисные функции
Сервисные функции – работа с расширениями APEX (Plugins) Multi File Upload Поддержка AJAX Настраиваемый интерфейс Массовая загрузка файлов Поддержка Drag-and-Drop
Сервисные функции – работа с расширениями APEX (Plugins)
Настраиваемый пользовательский интерфейс Поддержка Drag-and-Drop Поддержка массовой загрузки
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Изменения в механизме лицензирования Работа с серверным API парус 8 (8.5.6)
Работа с серверным API Парус 8 (8.5.6) – изменения в механизме лицензирования Отдельные процедуры аутентификации для WEB и WIN Разделение пользователей на WIN и WEB Возможность явного указания имени пользователя, создающего сеанс Возможность явного указания приложения, создающего сеанс и приложения, от имени которого будет использоваться серверный API Возможность мгновенного восстановления завершенной сессии по её идентификатору из кэша
Работа с серверным API Парус 8 (8.5.6) – изменения в механизме лицензирования /* начало WEB- сеанса */ procedure LOGON_WEB ( sCONNECT in varchar2, -- уникальный идентификатор соединения sUTILIZER in varchar2, -- имя пользователя, выполняющего процесс sPASSWORD in varchar2, -- пароль пользователя, выполняющего процесс sIMPLEMENTATION in varchar2, -- код приложения, выполняющего соединение sAPPLICATION in varchar2, -- код приложения, выполняющего процесс sCOMPANY in varchar2 -- наименование организации default null ); /* проверка доступности лицензии WEB- сеанса */ procedure VALIDATE_WEB ( sCONNECT in varchar2 -- уникальный идентификатор соединения ); Начало сенаса WEB Восстановление сенаса WEB
Oracle Application Express – некоторые приемы работы при реализации WEB- доступа к Парус 8 Аутентификация и использование API Парус 8 Работа с серверным API парус 8 (8.5.6)
Работа с серверным API Парус 8 (8.5.6) – аутентификация и использование API Парус 8 declare serr varchar2(2000); scomp varchar2(200); begin select NAME into SCOMP from COMPANIES where RN=:P101_COMPANY; pkg_session.LOGON_WEB ( sWEBSID => v('APP_SESSION'), sIMPLEMENTATION => 'Others', sUTILIZER => :P101_USERNAME, sAPPLICATION => :P101_MODULE, sCOMPANY => SCOMP ); wwv_flow_custom_auth_std.login( P_UNAME => :P101_USERNAME, P_PASSWORD => :P101_PASSWORD, P_SESSION_ID => v('APP_SESSION'), P_FLOW_PAGE => :APP_ID||':1' ); exception when others then serr:=sqlerrm; :P101_MSG:=serr; end;
Работа с серверным API Парус 8 (8.5.6) – аутентификация и использование API Парус 8 Не требуется реализовывать свои или переписывать штатные хранимые функции и процедуры для работы с данными штатных разделов Полная интеграция с системой разграничения прав доступа без дополнительных усилий Корретная работа жураналов регистрации для WEB- приложений
Спасибо Ваши вопросы …