Search Results


Thursday, June 19, 2008

OAF vs ADF 10g

OAF vs ADF 10g

Hi all,

With the emergence of next generation Fusion technology middleware stack there is confusion between the technologies OA framework and ADF among Oracle developers especially for the people who are developing extensions for Oracle Applications 11i/R12. Both are Oracle technologies for developing web based User Interface with Jdeveloper. Hence I decided to bring out the detailed overview of OA framework and ADF, and identify the rite technology for your web development projects.


OA Framwork


OAF (Oracle Applications Framework) is used to create the web based Oracle Application extensions and it is the default web technology for 11i and R12 development. It is closely integrated with Oracle Apps hence it is meaningless outside apps context. OAF is a model-view-controller technology stack which comprised of OA framework View (regions and pages) and BC4j respectively as view and model layers.

OAF and Oracle Applications 11i/R12
  • OAF includes AOL which provides e-business functionality like functions, menus, responsibility, functional security, data security, messages, profiles, flexfields, and concurrent programs.
  • List of Values – validation, auto complete, auto clear is available in OAF.
  • Transactional Search – Query Bean is available in OAF.
  • Data export, Configurable pages and Rich text editor is available in OAF.
  • OAF supports translatable table (TL tables).
  • Who columns like created by, modified by, creation date, modified date are supported in OAF.
  • Since OAF is tightly integrated with E-Business session management is done automatically.
  • Menu that appears at the top of the page is integrated with AOL menus. Hence the menus can be configured dynamically by manipulating AOL menus and no coding is required.
  • Functional security is available in OAF which allows you to configure the responsibility dynamically for the user.
  • User authentication is done from SSO. So no need to configure or write any code.
  • Data security is available.
  • Secured against cross site scripting attack.
  • OAF page access can be tracked.
  • Standards and guidelines are available for developing extensions in OAF which is the most important thing.
  • Reusable regions are available in OAF.
  • UI cannot be migrated to ADF 11g (may be in the future Oracle will come up with migration utility for UI but even then only declarative pages would be migrated and the UI pages should have followed the coding standards strictly).
  • BC4J can be migrated with minimal code change.
  • Controller cannot be migrated hence you have to rewrite all the logics in the controller if you want to migrate it to ADF 11g.

ADF 10g

ADF 10g (Application Development Framework) is the core technology for Fusion Applications and uses lot of open standards and technologies. ADF can also be used for common J2EE applications because ADF technology stack allows you choose between various options. ADF is primarily comprised of ADF Faces, ADF model and ADFbc (which is previously known as bc4j in OAF)

ADF 10g and Oracle Applications 11i/R12
  • ADF 10g does not include any support for AOL
  • List of Values and its associated features like validation, auto complete and clear does not exists in ADF.
  • No Transactional search, Data Export, Configurable pages or Rich text editor.
  • No support of Translatable Table and who columns.
  • No support for E-business suite session management.
  • No support for integration with Oracle Workflow.
  • E-business security features are totally unavailable in ADF 10g. (security features include Data security, functionally security, SSO etc)
  • Page access cannot be tracked in ADF 10g.
  • No support of for menus in ADF.
  • Reusable regions cannot be created in ADF 10g.
  • ADF 10g can be easily migrated to ADF 11g.
  • And most of all you cannot extend or personalize the existing page with the help of ADF.

And the advantage of ADF 10g over OA framework is that your investments would be protected when you want to migrate to ADF 11g.

(ADF has many advantages starting from the underlying architecture, the level of support for Web Services and SOA development and going all the way to the actual development experience of UIs using visual editor and drag and drop binding. -- Shay)

Conclusion

Consider following points when choosing technology.
  • If you want to build few pages with close integration of e-business suite then opt for OA framework. Remember if you want to migrate your code to ADF 11g in the future, you have to follow the coding standards strictly and code all the business logic in bc4j rather than handling the logic in controller.
  • If you don’t want a close integration e-business suite or your building entirely new application then go for ADF 10g.



Article By:
Prasanna Jayaraman

Please post your Ideas and Comments

15 comments :

Anonymous said...

I'm not sure that saying that the only advantage of ADF is the fact that it will migrate to JDev 11g is accurate.
ADF has many advantages starting from the underlying architecture, the level of support for Web Services and SOA development and going all the way to the actual development experience of UIs using visual editor and drag and drop binding.

Pras said...

Hi shay,

Thanks for your comments.
yes, your right and ADF is the latest technology. I forgot to mention those points.

I actually said the advantages from the Oracle applications 11i/R12 perspective.

Anonymous said...

Hi Prasanna,

In fact, my comment does not related to your Entry "OAF vs ADF 10g" but it is related to JBO exception. I found in Oracle forum that you posted a question about JBO and Frank suggested to use Error Handler. So, my question is : Did you manage to overcome JBOxxxx error from displaying

Best Regards,

Pras said...

Hi,

Sorry For my late reply..
Actually I tried out Franks suggestions, but i could not get rid of multiple exception lines.
So I changed my error reporting code. Instead of throwing JboException(), I created a method validator in the EO at Enitity level.

Like follow

public boolean validateEmp(){
......
if(ExceptionCondition)
return false;
else
return true;
}


Here when I return false, the message which I defined at the entity level validation is displayed to the user.

Cheers,
Prasanna

Anonymous said...

Hi Prasanna,

Do you think if it is possible to extend/customize iStore R12 using ADF?

Pras said...

You cannot extend any page in R12 using ADF.

--Prasanna

Unknown said...

Hi Prasanna,

Hi,

im trying to extend the timecard container by adding extra Lov "location"displaying location name . actually im downloading the timecard layout file and making necessary changes and uploading the file using FNDLOAD.i have created a new view object, lov region and its attributes .

After uploading the definition (layout) , i could see the lov ,but when i click on it , im getting the following error.pls
assistance need in resolving it.

error:
## Detail 0 ##
oracle.apps.fnd.framework.OAException: oracle.jbo.NoDefException: JBO-25002: Definition oracle.apps.hxc.selfservice.server.CustomLovAM of type ApplicationModule not found
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:896)
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1169)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:2149)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:538)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:426)
at _OA._jspService(_OA.java:212)

layout file:
BEGIN HXC_LAYOUT_COMPONENTS "Projects Timecard Layout - Location"
OWNER = "ORACLE"
COMPONENT_VALUE = "LOCATION"
REGION_CODE = "MY_CUSTOM_AK_PROMPT_REGION"
REGION_CODE_APP_SHORT_NAME = "HXC"
ATTRIBUTE_CODE = "HXC_CUI_LOCATION_LABEL"
ATTRIBUTE_CODE_APP_SHORT_NAME = "HXC"
SEQUENCE = "240"
COMPONENT_DEFINITION = "LOV"
RENDER_TYPE = "WEB"
PARENT_COMPONENT =
"Projects Timecard Layout - Day Scope Building blocks for worker timecard matrix"
LAST_UPDATE_DATE = "2004/05/24"


BEGIN HXC_LAYOUT_COMP_QUALIFIERS "Projects Timecard Layout - Location"
OWNER = "CUSTOM"
QUALIFIER_ATTRIBUTE_CATEGORY = "LOV"
QUALIFIER_ATTRIBUTE1 = "CustomLocationVO"
QUALIFIER_ATTRIBUTE2 = "N"
QUALIFIER_ATTRIBUTE3 = "HXC_CUI_LOCATION_LOV"
QUALIFIER_ATTRIBUTE4 = "809"
QUALIFIER_ATTRIBUTE5 = "12"
QUALIFIER_ATTRIBUTE6 =
"HxcCuiLocationCode|LOCATION-DISPLAY|CRITERIA|N|HxcCuiLocationId|LOCATION|RESULT|N|HxcCuiLocationCode|LOCATION-DISPLAY|RESULT|N"
QUALIFIER_ATTRIBUTE8 = "LocationCode"
QUALIFIER_ATTRIBUTE9 = "LocationId#NUMBER"
QUALIFIER_ATTRIBUTE10 =
"my.custom.server.CustomLocationVO"
QUALIFIER_ATTRIBUTE17 = "OraTableCellText"
QUALIFIER_ATTRIBUTE20 = "N"
QUALIFIER_ATTRIBUTE21 = "Y"
QUALIFIER_ATTRIBUTE22 = "L"
QUALIFIER_ATTRIBUTE25 = "FLEX"
QUALIFIER_ATTRIBUTE26 = "PROJECTS"
QUALIFIER_ATTRIBUTE27 = "Attribute1"
QUALIFIER_ATTRIBUTE28 = "LOCATION"
LAST_UPDATE_DATE = "2004/05/24"
END HXC_LAYOUT_COMP_QUALIFIERS


END HXC_LAYOUT_COMPONENTS

view object:
select location_id,location_code from hr_locationsoracle_edu

Pras said...

Check if your $JAVA_TOP contains /oracle/apps/hxc/selfservice/server/CustomLovAM.java file

Bounce apache or middletier if needed.

--Prasanna

Raja Ramasamy said...

Hi Prasanna,

I am new to ADF, but have been working on OA framework for quiet a long time now. I was wondering if it is possible to open an ADF page (which will be in a separate 10g as) from an OA page in e-biz.

There is a custom app built using OA in ebiz 11i. We would like to give a link in this OA page to open an ADF page in a new window and also, pass parameters back and forth.

If you have information about the interoperability between these two frameworks, please let us know. Much appreciate your help.

Thanks in advance
Raja

Dileep said...

Hi Prasanna...
I am Dileep kumar, interested to learn OAF.so plz suggest me some websites or let me know if there is anybody to teach me individually in bangalore.

Dileep said...

Hi prasanna...
I am interested in learning OAF n i ve started reading some tutorials. plz suggest me some websites r let me
know if there is anybody who r teaching OAF in Bangalore

shrikant K said...

Prasanna,
This is a very good information. Precise and up to the point. Thanks.
By the way how life is going.

Balaganesh said...

Hi Prasanna,
Can we call Oracle Apps APIs from ADF? I want to create a page from where we should be able to create sales order using API.

Thanks,
Balaganesh

Pras said...

yes, you could call any plsql APIs from ADF. You can create pages based on tables in Oracle Application.

--Prasanna

KITS Technologies said...

wow, awesome article post.Really looking forward to read more. Want more.
hadoop training
hadoop online training