Friday, September 19, 2014

Customization Classes for MDS in Oracle ADF

In last blog posts Seeded Customizations using MDS in Oracle ADF & Personalization using MDS in Oracle ADF Personalization and Customizations were described using power of MDS framework. The most important part in configuring/implementing Customizations which we can say is heart are Customization Classes. So it becomes very important to know and have a clear concept about what Customization classes are , what they do and how to implement them for use cases.

Customization Classes

First we need to understand what are Customization Classes. Customization classes provide a layer of customization. This is a very common technical definition for MDS Customization classes. In very simple terms, they return a single/multiple values for which different customizations are applied to the base document.
This means suppose while configuring/designing customizations, developer configured ABC changes (Customizations) for X value, then at the runtime when the Customization class method(will the method later in article) will return X value, ABC Changes will be applied on the document. Thus Customization classes return values and changes stored in MDS are applied to the base document based on these Classes.

Sunday, August 24, 2014

Seeded Customizations using MDS in Oracle ADF

In the last post Personalization using MDS in Oracle ADF we saw the power of MDS Framework in Oracle ADF using which Users can personalize pages, components etc according to their own need. MDS saves these changes in MDS Store based on every user and applies on the runtime to the base document.

In Personalization, user is at the driver seat , changing things according to the needs. But there are cases where the application is developed and after there is a requirement of two different flavours of the same application. For example, there is a ADF application and there are two clients. One client wants some fields to be visible and some specific color settings while other client wants other fields to be hidden and different color settings. We can also put in this way, that one client want some regions (task flows) to be displayed and other client says other regions to be displayed.

Now in these cases the , making changes to the existing application will be difficult. Most common solution will be we create two versions of application , each version having specific changes required by the client. Hmm that works good for two clients but what will happen if there are hundreds, thousands of clients. One has to create / maintain same number of versions of applications. More to it, what will happen if there will be a common functionality change which needs to go to all versions. Maintenance will become a nightmare.

So by using Seeded Customizations provided by MDS, changes for specific needs / clients can be done on base document. There will be a single Base Application and changes corresponding to all the clients/layers will be done and these changes will be applied on runtime depending upon which client is using it..

Friday, August 15, 2014

Personalization using MDS in Oracle ADF

Personalization for the users is the most wanted features in Enterprise applications nowadays. This gives user good experience and makes him to decide what and how he needs to see things in Enterprise Applications .

This post we will see how can we do User level Personalizations in Oracle ADF Applications and steps to configure it.

Example uses Jdev 11.1.1.7. Lets get started !


Created a simple ADF Application. Created BC from HR schema consist of EmployeesEO/VO and DepartmentsEO/VO and AppModule.

Implemented ADF Security. This is required since we are doing personalization for a particular user


Saturday, August 2, 2014

SecurityContext TaskFlowViewabe in ADF

Many times in our ADF Applications, we create Module workspaces which are specific to module and use these workspaces as ADF Shared Libraries in the Master Application. Master application has JSPX pages which uses adf task flows from shared libraries as regions in them.

While enabling ADF Security and granting permissions, authorizations are given to only Pages and task flows. There are other components on the page which also requires authorizations. For example Widgets/Buttons/Headers ,they should be shown to the user only when they are authorize to.

So for the above said use case, most common solution is SecurityContext which is provided by ADF Framework. Below code is being set to rendered/visible property.

#{securityContext.userInRole['UserRoles']}

Sunday, June 15, 2014

Attributes in Page Templates ADF

In most of the applications, one of the most versatile reusable component that is being used is Page Templates. Page templates serve as a generic component which is used to define the structure and layout of the pages.

There are many use cases where there is a requirement to have different behaviour for some of the pages than rest of the pages using the same Page Template. In this scenario, the components for which different behaviour is required are made parametrize. These parametrized are provided in the form of attributes. These are simply variables which can be set in the Page which is using the Page Template having these variables.

Use Case : In this use case, we have a requirement that some of the pages should show error messages on the top of the adf editable form, while some pages should not show error message on top.

Thursday, June 12, 2014

Drag and Drop Movable Box in Webcenter Portal

Webcenter provides Out of the box component to create a wrapper (widget) which is movable. Moveable box provides drag and drop features where drag and drop can be done between the moveable boxes.

The component used to do this is panelCustomizable. One can use this component in through both Portal Builder as well as Portal Framework Application.

In framework application in Jdeveloper, panelCustomizable can be found in composer option in Components Palette.

Friday, May 23, 2014

AutoSelect & Deselect Checkbox in ADF Tree Component

This post is about how to implement a use case having checkboxes in ADF Tree component. Below is the use case :

Use Case
There is an ADF Tree component using Departments as master and Employees as child. Departments acts as parent node and has all the child employees under it in the Tree. Departments as well as child employees should have checkbox. When user checks the checkbox of a department , all the checkboxes of the child employees should be autoselected. And when user deselects the department, they should be deselected.