Давным давно, я писал о ADF Security(Использование ADF Security в Oracle JDeveloper 12c ).
После той статьи, я хотел рассказать о кастомизации приложения для пользователей, но забыл)
Исправляюсь : )
В этой статье я расскажу как кастомизировать и персонализировать наше приложение. То есть сделаю так, что бы каждый отдельный пользователь приложения мог настроить форму под себя. Для этого нужно выполнить несколько пунктов:
- Создать кастомизационные классы
- Включить кастомизацию в приложении
- Прописать кастомизационные файлы в adf-config.xml и при необходимости установить ограничения для кастомизации
- Взаимодействие с пользвователем (наш случай это кастомизация компонентов)
- Управление бизнесс процесами (данные связанные с BPEL и BPM)
- Конфигурационные файлы
- Веб сервисы (WSDL файлы, XML схемы, трансформации)
Более подробно о MDS можно прочитать здесь: http://www.oracle.com/technetwork/developer-tools/jdev/metadataservices-fmw-11gr1-130345.pdf
Приступим.
1.Создайте кастомизационный файл (Java Class).
Расшарьте его классом oracle.mds.cust.CustomizationClass
Замените данные внутри класса на:
| package by.perevertkin.mds.cc; | |
| import oracle.adf.share.ADFContext; | |
| import oracle.adf.share.security.SecurityContext; | |
| import oracle.mds.core.MetadataObject; | |
| import oracle.mds.core.RestrictedSession; | |
| import oracle.mds.cust.CacheHint; | |
| import oracle.mds.cust.CustomizationClass; | |
| public class Customization extends CustomizationClass { | |
| private String mLayerName; | |
| public Customization() { | |
| super(); | |
| } | |
| @Override | |
| public CacheHint getCacheHint() { | |
| return CacheHint.ALL_USERS; | |
| } | |
| @Override | |
| public String getName() { | |
| return mLayerName; | |
| } | |
| @Override | |
| public String[] getValue(RestrictedSession restrictedSession, MetadataObject metadataObject) { | |
| ADFContext adfCtx = ADFContext.getCurrent(); | |
| SecurityContext secCntx = adfCtx.getSecurityContext(); | |
| String user = secCntx.getUserName(); | |
| return new String[] { user }; | |
| } | |
| } |
У этого класса 2 основные функции:
- getName() - возвращает название папки в которой хранятся все пользовательские изменения.
- getValue() - возвращает название папки для вошедшего пользователя. Название папки должно быть уникальное и будет сохранено в getName() папке
2. Включите кастомизацию в свойствах вашего ViewController проекта. Для этого нужно поставить галочку Enabled seeded customizations и Enable User Customizations( выбрать Across Sessions using MDS) в ADF view:
3. Теперь нужно прописать кастомизационный файл, и выбрать компоненты которые вы хотите кастомизировать
Для тестирования локально нужно не запускать приложение, а запустить Integrated Server и задеплоить туда приложение. При удачной настройке, при деплое появится окно в котором нужно указать раздел в который вы деплоите MDS и название репозитория.
Кастомизация работает. И если зайти в EM, то можно заметить, что создан необходимый раздел.
После того как вы кастомизировали приложение, часто возникает необходимость редактирования или удаления кастомизации. В далеких 2012-х Andrejus Baranovskis создал task-flow который с легкостью можно добавить в любой ADF и Webcenter Portal проект
Описание работы с MDS в ADF на сайте Oracle: https://docs.oracle.commmiddleware/1212/adf/ADFFD/customize.htm#ADFFD2079
Так же можно почитать о использовании mds в Oracle SOA Suite у сурового челябинского программиста: http://samolisov.blogspot.com.by/2011/11/oracle-mds.html








Комментариев нет:
Отправить комментарий