Давным давно, я писал о 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
Комментариев нет:
Отправить комментарий