<-----Google Analytics Code Start----> <-----Google Analytics Code Close---->
Skip to content

Green

color

Default screen resolution  Wide screen resolution  Increase font size  Decrease font size  Default font size  Skip to content Default color Pink color Green color Green color
Home arrow Home arrow OA Framework Extensions
This website has now moved to http://apps2fusion.com





OA Framework Extensions | Print |  E-mail
Written by Anil Passi   
Saturday, 03 November 2007
Please find a PowerPoint presentation that explains the steps for doing various types of extensions to OA Framework.

Following topics have been covered in this OA Framework Extensions presentation
    Steps to extend Entity Object
    Steps to extend Application Module
    Steps to extend Controller Class
    Overview of Personalizations
    SPEL [Simplest Possible Expression Language]
    PPR – Partial Page Rendering
    JDR API’s
    How to embed a custom region into OA Framework Page
    Best practices when making changes to MDS Layer and personalization
    Limitations of personalizations [when doing extensions]


Please click here to view this presentation


Comments (29)add
Error while deploying OAF to Oracle Apps
written by Anil Kumar , November 05, 2007
Hi Anil,

First of all let me thank you for you great effort. Kudos..!

I am a regular visitor to the articles on this site.

I am trying to deploy the training Person OAF to Oracle Apps and using the Document written by Anjani Pandey for deploying. Unfotunately I am structup as I am getting arror when I click on the Menu Item from Oracle Apps I get the below error (I have shortened the error as its too big). Kindly let me know if I am missing anything?

oracle.apps.fnd.framework.OAException: Could not load application module 'xxt.oracle.apps.ak.xxperson.server.xxPersonAM'.
at oracle.apps.fnd.framework.webui.OAJSPApplicationRegistry.registerApplicationModule(OAJSPApplicationRegistry.java:279)

## Detail 0 ##
JBO-30003: The application pool (dataclone2.newbridge.bnm.ieSUPPORT1525xxt.oracle.apps.ak.xxperson.server.xxPersonAM) failed to checkout an application module due to the following exception:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.NoDefException, msg=JBO-25002: Definition xxt.oracle.apps.ak.xxperson.server.xxPersonAM of type ApplicationModule not found

oracle.jbo.NoDefException: JBO-25002: Definition xxt.oracle.apps.ak.xxperson.server.xxPersonAM of type ApplicationModule not found
at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:329)

JBO-30003: The application pool (dataclone2.newbridge.bnm.ieSUPPORT1525xxt.oracle.apps.ak.xxperson.server.xxPersonAM) failed to checkout an application module due to the following exception:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.NoDefException, msg=JBO-25002: Definition xxt.oracle.apps.ak.xxperson.server.xxPersonAM of type ApplicationModule not found
at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1619)

## Detail 0 ##
oracle.jbo.NoDefException: JBO-25002: Definition xxt.oracle.apps.ak.xxperson.server.xxPersonAM of type ApplicationModule not found
at oracle.jbo.mom.DefinitionManager.findDefinitionObject(DefinitionManager.java:329)


Thanks,
Anil K
...
written by Anil Passi , November 05, 2007
Hi Anil K

The main string in your message stack is
xxt.oracle.apps.ak.xxperson.server.xxPersonAM of type ApplicationModule not found

Please do
ls -l $JAVA_TOP/xxt/oracle/apps/ak/server/xxPersonAM*

There should be a class file and an XML file in this location for the AM

Is the class & XML file there?

Thanks,
Anil Passi

Steps for OAF customization
written by SATYABRAT PADHY , November 05, 2007
Hi Anil,

Thanks a lot...
I have couple of questions...Working in R12.
1. Please provide the steps i.e what are the things to be downloaded as from/to which locations so that we can start the customization of a OAF page by opening them in Jdev.
2. Which version of Jdev I should be using in-order-to go for R12 OAF customizations?
3. Can you please share a link of demo for a such a requirement?

Cheers,
Satya
...
written by Anil Passi , November 05, 2007
Hi Satya

For a step by step extension demo on R12, please see link
http://oracle.anilpassi.com/oa...ple-2.html

Thanks,
Anil Passi
how to display a picture in an OAF page ?
written by jarden.cheung , November 06, 2007
i face to a problem is that , when custome add a pic attachment, then it will be show in a detail page,not only show a download link , but full of pic will show in a region of page ~
how can i solve this problem ?
if u have some good idea to sovle the problem , plz tell me, ~ thx very much !
BTW,my english is not very well , NVM!
RE: Error while deploying OAF to Oracle Apps
written by Anil Kumar , November 06, 2007
Hi Anil,

Thanks for your reply. I tried as you said but now getting a diff. error messages. Kindly let me know what am I missing now?

oracle.apps.fnd.framework.OAException: Application: FND, Message Name: FND_NO_REGION_DATA. Tokens: REGIONCODE = /xxt/oracle/apps/ak/xxperson/webui/xxPersonMainPG;
at oracle.apps.fnd.framework.webui.JRAD2AKMapper.getRootMElement(JRAD2AKMapper.java:527)
at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getWebBeanTypeDataFromJRAD(OAWebBeanFactoryImpl.java:3719)
at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getRootApplicationModuleClass(OAWebBeanFactoryImpl.java:3452)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:999)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:502)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:423)

Exception:
oracle.adf.mds.MetadataDefException: Unable to find component with absolute reference = /xxt/oracle/apps/ak/xxperson/webui/xxPersonMainPG, XML Path = null. Please verify that the reference is valid and the definition of the component exists either on the File System or in the MDS Repository.
at oracle.adf.mds.internal.MetadataManagerBase.findElement(MetadataManagerBase.java:1350)
at oracle.adf.mds.MElement.findElement(MElement.java:97)
at oracle.apps.fnd.framework.webui.JRAD2AKMapper.getRootMElement(JRAD2AKMapper.java:501)

Exception:
oracle.adf.mds.MetadataDefException: Unable to find component with absolute reference = /xxt/oracle/apps/ak/xxperson/webui/xxPersonMainPG, XML Path = null. Please verify that the reference is valid and the definition of the component exists either on the File System or in the MDS Repository.
at oracle.adf.mds.internal.MetadataManagerBase.findElement(MetadataManagerBase.java:1350)
at oracle.adf.mds.MElement.findElement(MElement.java:97)
at oracle.apps.fnd.framework.webui.JRAD2AKMapper.getRootMElement(JRAD2AKMapper.java:501)
at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getWebBeanTypeDataFromJRAD(OAWebBeanFactoryImpl.java:3719)
at oracle.apps.fnd.framework.webui.OAWebBeanFactoryImpl.getRootApplicationModuleClass(OAWebBeanFactoryImpl.java:3452)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:999)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:502)

Thanks,
Anil K
...
written by Anil Passi , November 06, 2007
Hi Anil K

You haven't loaded the Page into MDS.
You need to use XML Importer to do so.

You can test the page upload in question, by running below scripts

set serveroutput on size 10000 ;
DECLARE
BEGIN
jdr_utils.listdocuments('/xxt/oracle/apps/ak/xxperson/webui', TRUE);
END;
/


DECLARE
BEGIN
jdr_utils.printdocument
(
p_document => '/xxt/oracle/apps/ak/xxperson/webui/xxPersonMainPG');
END;
/

Thanks,
Anil Passi
RE: Error while deploying OAF to Oracle Apps
written by Anil Kumar , November 06, 2007
Hi Anil,

Thanks for the resoponse. Yes the second block returns the following output

Error: Could not find document /xxt/oracle/apps/ak/xxperson/webui/xxPersonMainPG

That means the xml is not in MDS

I am using the xmlImporter for importing the file in MDS and as I am doing it for the first time following are the steps I am doing, kindly let me know if I am doing correct?

1. Trasfered the directory xxt to XXCUS_TOP
2. Transfered individual java files with chmod 777
3. Then using the xml Imorter to import the xxPersonMainPG.xml to MDS and there I get struct the error I get is Error: The input file xxPersonMainPG.xml does not exits

The code I am using for import is given below


java
oracle.jrad.tools.xml.importer.XMLImporter $XXCUS_TOP/mds/webui/xxPersonMainPG.xml
-rootdir $XXCUS_TOP/
-username apps
-password bmw002
-dbconnection "(description=(address_list=(address=(community=tcp. world)(protocol=tcp)(host=DEV1)(port=1531)))(connect_da ta=(sid=XXDEV)))"
-rootPackage /xxt/oracle/apps/ak/xxperson/webui

Kindly let me know your views

Thanks
Anil K.

...
written by Anil Passi , November 06, 2007
Hi Anil K

Please try the below

adjava
oracle.jrad.tools.xml.importer.XMLImporter $XXCUS_TOP/mds/webui/xxPersonMainPG.xml
-rootdir $XXCUS_TOP/mds/webui
-username apps
-password bmw002
-dbconnection "(description=(address_list=(address=(community=tcp. world)(protocol=tcp)(host=DEV1)(port=1531)))(connect_da ta=(sid=XXDEV)))"
-rootPackage /xxt/oracle/apps/ak/xxperson/webui


Thanks,
Anil Passi
...
written by Anil Kumar , November 06, 2007
Thx for quick response
Extending controller question
written by Shree , November 10, 2007
I'm a new comer to OA Framework.. I learned a lot from your blog regarding OA Framework.. Excellent jon explaining things in a easy to understand manner..

I have one question.. if you are extensing EO, VO or AM then you need to get the BC4J from the server into the Jdeveloper and crete a cusom BC4J Package and extend it.. Create a substitution and import that jpx file using XML Importer

But when you extend the controller, Can you write your custom controller class without importing into local jdeveloper? Because we are not creating any substitution and we chose the custom controller for that region via personalization..

Can you please provide an explanation for my question..

Thank you,
Shree
XML Publisher Integration with OA Framework
written by Suneetha , November 12, 2007
Hi Anil,

Great job sharing your wealth of knowlwdege with all of us.. Can you write an article on
XML Publisher Integration with OA Framework with a simple example..

Thanks for your help!!
Suneetha
hi there!
written by Santosh , November 13, 2007
i m new to OA Framework, ur articles r very gud n impressive to gain knowledge.
however i m nt able to get the PPT opened neither i m able to clich that link to c the PPT..
could u plz guide..
Thanx n Regrds
Santosh Bhumkar
Re:OA Framework Extensions
written by praveen44u , November 14, 2007
Hi,

Thanks for the pitch on OA Framework Extensions but when i am trying to open the presentation...its getting error out saying that the file has been corrupted.

Request you to please if you can post againg the ppt or if you can send me via email that will be gr8 help for me...

Thanks
Praveen
RE: Error while deploying OAF to Oracle Apps
written by Anil Kumar , November 14, 2007
Hi Anil,

I was away and came back y'day. I tried to deploy my test(Hello) page to OA but I am not
getting success. It works fine when I run the page from jDeveloper but when I deploy it give
out error's. Request you to let me know where am I going wrong. Following are the steps which I do,

1. Develop the Project/ JSP form using jDeveloper and test running the page HelloWorldPG.xml and it works fine.
2. The project is saved in the following directory structure.
C:softwareoajdevhomejdevmyprojectsoracleappsak xxtest --> this directory has the usual directories
mapped with the BC Packages of the project (Server and Webui)

Following are the Business Comp Pkgs of the project
. oracle.apps.ak.xxtest.server
. oracle.apps.ak.xxtest.webui

2. move the folder/ directory xxfwork to the server directory $JAVA_TOP/oracle/apps/ak in text transfer mode

3. After copying again transfer the .java/ .class files in binary transfer mode and give the permission 777.

4. import the new directory structure/ path of the page in MDS repository

import C:softwareoajdevhomejdevmyprojectsoracleappsak xxtestwebuiHelloWorldPG.xml -jdk13 -mmddir "C:softwareoajdevhomejdevmyhtmlOA_HTMLjrad" -username apps -password bmw007 -rootdir C:softwareoajdevhomejdevmyprojects -dbconnection " (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=DEV2)(PORT=15 21))(CONNECT_DATA=(SID=DEV2)))"

5. Register the Function and attach the function to a menu.

OA.jsp?page=/oracle/apps/ak/xxtest/webui/HelloWorldPG

Now when I access the page I get the below errors - ( I am pasting few lines of error as I cannot paste the full text)


oracle.apps.fnd.framework.OAException: Could not load application module 'oracle.apps.ak.xxtest.server.HelloWorldAM'.
at oracle.apps.fnd.framework.webui.OAJSPApplicationRegistry.registerApplicationModule(OAJSPApplicationRegistry.java:279)
at oracle.apps.fnd.framework.webui.OAJSPApplicationRegistry.registerApplicationModule(OAJSPApplicationRegistry.java:7smilies/cool.gif
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1177)

## Detail 0 ##
JBO-30003: The application pool (dataclone2.newbridge.bnm.ieSUPPORT1525oracle.apps.ak.xxtest.server.HelloWorldAM) failed to checkout an application module due to the following exception:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.CustomClassNotFoundException, msg=JBO-26022: Could not find and load the custom class oracle.apps.ak.xxtest.server.HelloWorldAMImpl

## Detail 0 ##
oracle.jbo.CustomClassNotFoundException: JBO-26022: Could not find and load the custom class oracle.apps.ak.xxtest.server.HelloWorldAMImpl
at oracle.jbo.common.JBOClass.findCustomClass(JBOClass.java:162)
## Detail 0 ##
java.lang.ClassNotFoundException: oracle.apps.ak.xxtest.server.HelloWorldAMImpl
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
JBO-30003: The application pool (dataclone2.newbridge.bnm.ieSUPPORT1525oracle.apps.ak.xxtest.server.HelloWorldAM) failed to checkout an application module due to the following exception:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: oracle.jbo.CustomClassNotFoundException, msg=JBO-26022: Could not find and load the custom class oracle.apps.ak.xxtest.server.HelloWorldAMImpl
at oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:1619)

..... ETC

Kindly see if you can help me.


Thanks,
Anil K
Error while opening the OA Framework Extension pitch
written by praveen44u , November 16, 2007

Hi,

Request you to please help me..I am trying to go thru the presentation of OA Framework extensions but not able to.Its saying that file has been corrupted.

Please help me.

Thanks
Praveen
RE Error while deploying OAF to Oracle Apps
written by Anil Kumar , November 20, 2007
Hi Anil,

I managed to successfully deploy my first test page to Oracle Apps and view it using Apps menu.

Thanks for all your help.

Anil K
...
written by michal , November 21, 2007
Can't download presentation. Message : File corrupted ....

MK ?


...
written by Anil Passi , November 21, 2007
Hi MK,

Blame it on Bill Gates. Perhaps some version problem.
I have fwd'ed this link to my friends, and they all can open it.

Usually I avoid deploying ppt files, as that facilitates copyright infringement of the work.

Please email me, I will reply to you with ppt.

Thanks,
Anil Passi
Regd PPT
written by Hussein , November 23, 2007
Hi Anil,

Thanks a lot for your good work its really very much helpfull for novice who are fond of learning OA Framework.

Unable to download the PPT, so kindly request you to send me the PPT to my mail.

With Best Regards,
Hussein
Plz mail me the Presentation
written by sujoy bhattacharjee , November 29, 2007
Could not open the ppt(blamed it on Mr.Gates smilies/wink.gif). Please mail it to me.
Error after controller extension
written by Manjula , December 19, 2007
have done a customization in OAF. I have added a transient attribute column in a VO and assigned that to the page thru personalization.
and in the COntroller, i have added the code to assign the transient value to ATTRIBUTE5 of the database table.
Here transiet attribute is of DATE type and ATTRIBUTE5 is of VARCHAR2 type.

when i run this page, i am getting this error:

oracle.apps.fnd.framework.OAException: oracle.jbo.NoDefException: JBO-25002: Definition ATTRIBUTE5 of type Attribute not found
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException (OAPageErrorHandler.java:1223)
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:140smilies/cool.gif
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2381)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1734)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:50smilies/cool.gif
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage (OAPageBean.java:429)
at _oa__html._OA._jspService(_OA.java:85)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch (JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:58smilies/cool.gif
at oracle.jsp.provider.Jsp20RequestDispatcher.forward (Jsp20RequestDispatcher.java:162)
at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
at _oa__html._OA._jspService(_OA.java:95)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service (JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:58smilies/cool.gif
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java :294)
at java.lang.Thread.run(Thread.java:595)


Does any one have idea why this is coming.

Need your inputs on this.
Thanx
Replace an existing OAF page with custom page
written by Srini319 Reddy , January 28, 2008
Hi Anil,
Hats off to your knowledge and your service to the community.

I just want to find out a way to replace an existing OAF page with a custom page. I couldn't add a new item to the existing page through personalization because create item button is not available. I had no choice except to replace the page. This page is being invoked through buttons created by controller class and I couldn't personalize the link to hit the new custom page.

Please help..
...
written by Anil Passi , January 28, 2008
Hi Srini

You can extend the controller against that page.
Effectively, you will have to override the processFormRequest, to handle the click on the link.

If the link has standard page hardcoded at design time, then, you will can extend processRequest itself, with logic as below
1. get a handle to the link bean
2. set the Destination URL property, to make it point to your custom page.

Thanks,
Anil Passi
Depending upon analysis of the standard page, another option would have been to:-
1. extend the controller on main page
2. in processRequest hide the standard region that you wish to replace
3. Embed the custom stacklayout region programatically.

Replace an existing OAF page with custom page
written by Srini319 Reddy , January 28, 2008
Thanks very much for your quick reply, Anil.

Here is what I am trying to accomplish. I need to add attachment functionality to supplier purchase order acknowledgement form (PosVpoAckPG). This page is being accessed from PosViewPOPG. 'Create Item' is not available through personalization for this page. I have added the attachmentLink to PosVpoAckPG page in JDev and I am able to deliver the required functionality. I can rename this page and create a new function to invoke this page. I am trying to see if there is an easy way.

Thanks again for your commendable work.
...
written by Anil Passi , January 28, 2008
Hi Srini

You should be able to extend the controller, and then should be able to add the attachment bean programatically to the existing page.

Thanks,
Anil Passi
...
written by Srini319 Reddy , January 28, 2008
That is great. I really appreciate it if you can point me to the source explaining the steps. This is very helpful and really admire your passion.

Srini
...
written by Srini319 Reddy , January 31, 2008
Hi Anil,
Can you please let me know how I can add attachment bean in the Controller programatically. I have followed the javadoc for OAMessageAttachmentLinkBean class and added the following code in the Controller..

OAMessageAttachmentLinkBean attachBean = new OAMessageAttachmentLinkBean();
//OAWebBean attachWebBean = attachBean.createLabel(oawebbean, "PosTest");
attachBean.setAddButtonText("Attachment");
attachBean.setEntityId("PO_HEADERS");
attachBean.setViewUsageName("PosPOSummaryVO");
Dictionary firstEntity = new Hashtable();
firstEntity.put("entityId", "PO_HEADERS"); // entity id
firstEntity.put("showAll", Boolean.FALSE); // show all property
firstEntity.put("insertAllowed", Boolean.TRUE);
firstEntity.put("deleteAllowed", Boolean.TRUE);
firstEntity.put("updateAllowed", Boolean.TRUE);
Integer[] categories = new Integer[2]; // categories
categories[0] = new Integer(13);
categories[1] = new Integer(14);
firstEntity.put("categories", categories);

Dictionary[] entityMaps = new Dictionary[1];
entityMaps[0] = firstEntity;


attachBean.setEntityMappings(entityMaps);

String[] catList = {"FromSupplier"};
attachBean.setCategoryMap("PO_HEADERS", catList, oapagecontext);
OAWebBeanDataAttribute oawebbeandataattribute1 = (OAWebBeanDataAttribute) attachBean;
oafieldtablelayoutbean.addIndexedChild(oawebbeandataattribute1);

I am getting the following error..

This region has an invalid root bean . This can be caused in one of the following two ways: 1) An attempt has been made to reference an application module or view object which is not yet known. Be sure to add this bean to its parent before setting or getting any attributes which is associated to an application module or view object. 2) All regions must have an OABodyBean as it's root bean.

Please help me..

Thanks!
Srini
Not getting the Server.xml for extending a VO
written by AjitRaut , March 09, 2008
Hi Anil,
I need to extend a VO RiskVO,
is under oracle/apps/amw/opinions/server/RiskVO.xml

But am not getting the respective server.xml file under this directory.

how to extend this VO?
Without server.xml is it possible to extend the VO?

Please suggest,

Thnx In Advance,
Ajit
You must be logged in to a comment. Please register if you do not have an account yet.

busy