Tuesday, November 25, 2014

Data Presenter Framework - Webcenter Portal PS7

Data Presenter

One of the most useful features of Webcenter Portal is Data Presenter. Data Presenter allows developers/administrators to create data controls at runtime, and they are readily and immediately available for application usage, without any restart of servers. One more advantage of Data Presenter is ability to create task flows at runtime. Both data controls and task flows can be created at runtime in the Webcenter Portal PS7, with no coding needed in JDeveloper. These newly created data controls can be used in the task flows to create UI and these task flows can be reused wherever needed across the application.

This is useful for Developers, Technical Leads and Technical Architects as earlier, they need to take a decision to create custom task flows separately in JDeveloper and deploy them on Weblogic and use them inside the Webcenter Portal. This is highly useful for developers and Webcenter administrators due to easy learning, and saves significant effort. All this requires quite an effort and is little cumbersome to set it up at the beginning. Data Presenter marks this problem and provides solution to this in quite good way.This article provides an overview of WebCenter Data Presenter and hands-on instructions, steps to implement above functionality.

Monday, November 24, 2014

Persisting to MDS Store using Programmatic API's in ADF

In last some of the posts regarding MDS, we saw how to achieve Personalizations and Seeded Customizations in Enterprise applications using Oracle ADF. There was explanation how to leverage Oracle ADF MDS framework for this purpose. Most of the personalization and customization is provided OOTB by the framework and just requires correct configurations and steps to achieve. These are declarative user customizations which allow to implicit save component changes done by the user.

But there are scenarios where some custom persistence is required to be saved to MDS Store. This means, that state of the components needs to be changes based on certain conditions. This explicit saving of state of components can be done using Java API provided by the framework.

Lets take an example for this post:
This example uses a ShowDetailFrame which is webcenter component. There is a button show/hide SDF which hides and shows the below SDF. Now this hide and show of SDF is being persisted in MDS Store. For now we will take File system based MDS Store. So for a particular user, when user performs show or hide of SDF, its state is stored in MDS and is presented to the user when it Logins next time into the application.

Tuesday, November 11, 2014

Sangam 14 - My Experience

It was a proud moment for myself to attend and present in Largest Independent Oracle Event in India. The conference was very well organised by AIOUG and was a way to network and learn about latest trends in Oracle Stack. Though the conference had large number of  DBA's (Yes they are super people) sessions but there were also good amount of sessions for Oracle Fusion Middleware.

Session on Big Data by Satyender was an eye opener of where we are heading towards in way to store data apart from conventional RDMS. Its the way ahead and also for Application Developers. For application developers, we should know how to use NoSQL and Big Data databases for our applications.

Friday, October 17, 2014

Session at Sangam 2014 - AIOUG

I am proud to announce that I will be Presenting a Session at Sangam 2014 this year in Bangalore India.

Sangam is a yearly Oracle User Group Conference Hosted by All India Oracle User Group (AIOUG) and is the largest Independent Oracle event in India.


Below are the details of my Session :

Session           : 201421

Session Title   : Customizations of Enterprise Applications using Meta Data Services in Oracle ADF

Duration          : 50 Minutes

Track               : Development Track


The Session will be about Customizations and Personalizations of Applications using powerful XML based MDS framework provided by Oracle ADF. It will consist of introduction to Meta Data Services (MDS) and how MDS framework is enabled in ADF applications using Jdeveloper. There will be an explanation of how MDS works behind the scenes and how requests for Customizations are being persisted in MDS Store. Finally there will be a Demo of Personalization using Jdeveloper 12c.

I am excited to talk about this topic @ Sangam14.

See you there !!


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