360 likes | 718 Views
Oracle Application Express. Некоторые приемы работы при реализации WEB- доступа к Парус 8. Oracle Application Express – некоторые приемы работы при реализации WEB -доступа к Парус 8. Интерфейс пользователя Перехват сообщений об ошибках Настройка графиков AnyChart Сервисные функции
E N D
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–рег. номер организации) asbegin … P_EXCEPTION(0, ‘Ошибка формирования данных проекта!'); …end;
Интефейс пользователя – перехват сообщений об ошибках 1 2 3 3.1 2.1 2.2
Интефейс пользователя – перехват сообщений об ошибках
Интефейс пользователя – перехват сообщений об ошибках apex_application.g_print_success_message:= '<span style="color:red">'||serr||'</span>';
Oracle Application Express – некоторые приемы работы при реализации WEB-доступа к Парус 8 Настройка графиков AnyChart Интерфейс пользователя
Интерфейс пользователя – настройка графиков AnyChart
Интерфейс пользователя – настройка графиков AnyChart http://www.anychart.com/products/anychart/docs/xmlReference/index.html
Интерфейс пользователя – настройка графиков AnyChart
Интерфейс пользователя – настройка графиков AnyChart 12,26 12
Интерфейс пользователя – настройка графиков AnyChart numDecimals: 0 > numDecimals: 2
Oracle Application Express – некоторые приемы работы при реализации WEB-доступа к Парус 8 Контроль прав доступа Сервисные функции
Сервисные функции – контроль прав доступа
Сервисные функции – контроль прав доступа createorreplacefunctionUDO_F_SYSW0001_GET_USER ( PNCOMPANY number := GET_SESSION_COMPANY --рег. номер организации ) returnvarchar2as/*Получение имени пользователя */ 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;endif;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
Сервисные функции – контроль прав доступа createorreplacefunction UDO_F_SYSW0001_CHECK_PRIVS( PNCOMPANY number := GET_SESSION_COMPANY --рег. номер организации ,PSUNIT varchar2--код раздела WEB-интерфейса) returnbooleanasbegin select...fromUSERROLES T,ROLES RwhereT.AUTHID = UDO_F_SYSW0001_GET_USER(PNCOMPANY)and T.ROLEID = R.RNand R.ROLENAME = … if()then return true; else return false; end if’ …end; /*create public synonym UDO_F_SYSW0001_CHECK_PRIVS forUDO_F_SYSW0001_CHECK_PRIVS;grantexecute on UDO_F_SYSW0001_CHECK_PRIVS topublic; */ 2. Проверка назначения роли пользователю BOOLEAN
Сервисные функции – контроль прав доступа
Oracle Application Express – некоторые приемы работы при реализации WEB-доступа к Парус 8 Работа с файлами (Upload/Download) Сервисные функции
Сервисные функции – работа с файлами (Upload)
Сервисные функции – работа с файлами (Upload) ----загрузка данных в БД через WEB-интерфейс--procedurewww_upload_file (nusrnumber, --рег. номер пользователяsftypevarchar2, --тип файлаsfilepathvarchar2--файл )isstmpblob;begin--ищем данный файл в буфереbeginselectt.blob_contentintostmpfromapex_application_filestwheret.name=sfilepath;exceptionwhenno_data_foundthenexcept(0, 'Файл не загружен!');end;--обрабатываем … end;
Сервисные функции – работа с файлами (Download) ----выгрузка данных из БД через WEB-интерфейс-- procedurewww_downlod_file (nusrnumber, --рег. номер пользователяsftypevarchar2--тип файла )isstmpblob;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 http://www.theapexfreelancer.com/
Сервисные функции – работа с расширениями APEX (Plugins)
Сервисные функции – работа с расширениями APEX (Plugins)
Сервисные функции – работа с расширениями APEX (Plugins)
Сервисные функции – работа с расширениями APEX (Plugins)
Сервисные функции – работа с расширениями 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 /* начало WEB-сеанса */procedureLOGON_WEB (sCONNECTinvarchar2, -- уникальный идентификатор соединенияsUTILIZERinvarchar2, -- имя пользователя, выполняющего процессsPASSWORDinvarchar2, -- пароль пользователя, выполняющего процессsIMPLEMENTATIONinvarchar2, -- код приложения, выполняющего соединениеsAPPLICATIONinvarchar2, -- код приложения, выполняющего процессsCOMPANYinvarchar2-- наименование организацииdefaultnull ); • Восстановление сенасаWEB /* проверка доступности лицензии WEB-сеанса */procedureVALIDATE_WEB (sCONNECTinvarchar2-- уникальный идентификатор соединения );
Oracle Application Express – некоторые приемы работы при реализации WEB-доступа к Парус 8 Аутентификация и использование API Парус 8 Работа с серверным API парус 8 (8.5.6)
Работа с серверным API Парус 8 (8.5.6) – аутентификация и использование API Парус 8 declareserrvarchar2(2000);scompvarchar2(200);beginselectNAMEinto 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' );exceptionwhenothersthenserr:=sqlerrm; :P101_MSG:=serr;end;
Работа с серверным API Парус 8 (8.5.6) – аутентификация и использование API Парус 8 • Не требуется реализовывать свои или переписывать штатные хранимые функции и процедуры для работы с данными штатных разделов • Полная интеграция с системой разграничения прав доступа без дополнительных усилий • Корретная работа жураналов регистрации для WEB-приложений
Спасибо Ваши вопросы…