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



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

Related Items

Home arrow Technical Articles arrow Oracle Application Framework arrow OA Framework Extension of AM - Steps - How To
This website has now moved to http://apps2fusion.com

OA Framework Extension of AM - Steps - How To | Print |  E-mail
Written by Anil Passi   
Friday, 12 January 2007
In the Part-1 of Application Module extension, we saw the business case for extending an Application Module. Here in the Part-2 of OA Framework Training, for Extensions of AM, I will display Steps with screenshots. Step 1. Download the jad utility
Go to www.google.com

Step 2. In my case, I have <jdevhome>/jdev/myprojects included in my CLASSPATH. Hence I ftp'ed the files to <jdevhome>/jdev/myprojects/oracle/apps/per directory tree.

Step 3. ->Create a new BC4J Package, by right clicking on Project.

->The AM that we wish to extend resides in oracle.apps.per.irc.candidateSelfService.server
Hence, our package name will be oracle.apps.xxper.irc.candidateSelfService.server
Ensure that XXPER is valid Application short name.
select 'x' from fnd_application_vl where application_short_name = 'XXPER'

->Click on Finish.

Step 4. We can see that, for VisitorAM, the RETENTION_LEVEL is MANAGE_STATE.
Hence we will ensure that our new AM will have the same property too.

Step 5.
--> Right click on the new BC4J, and create a new AM.

-->Name of the new AM will be xxircVisitorAM
In the Extends field, click browse and select the AM as shown below.

-> Keep on clicking next until you see Finish. Click on Finish.

--> You will notice that class xxircVisitorAMImpl has been created. Add the below method to that class.
    public String validateLogin(String s, String s1)
        String parentValidationResult = super.validateLogin(s,s1) ;
        if (parentValidationResult.compareTo("Y")==0)
          //raise your event here, or insert into some bespoke table
        return parentValidationResult;

Step 6. Ensure that the properties and the same, and also ensure that your method being replaced is selected.
Double click on the newly created AM xxircVisitorAM and ensure that RETENTION_LEVEL is MANAGE_STATE.
Also, click on ClientMethods, and ensure that the method validateLogin has been selected.

Step 7. Perform Substitution. Right click on the project, and select "Edit Business Components Project"
Click on Substitution, and select xxIrcVisitorAM on left hand side, and VisitorAM on right hand side. Click on Add button.

Step 8. Your jpx file will look like below
<?xml version="1.0" encoding='windows-1252'?>
<!DOCTYPE JboProject SYSTEM "jbo_03_01.dtd">
   PackageName="" >
      <Attr Name="_version" Value="" />
      <Attr Name="_jprName" Value="xxircVisitorAM.jpr" />
      <Attr Name="_ejbPackage" Value="false" />
      <Substitute OldName ="oracle.apps.xxper.irc.candidateSelfService.server.xxircVisitorAM" NewName ="oracle.apps.per.irc.candidateSelfService.server.VisitorAM" />

Name this file as xxVisitorAM.jpx

Now, load this jpx into Database using a shell similar to below.
export APPS_PWD

    MACHINE_NAME=`sqlplus -s apps/$APPS_PWD <<EOF
                       set pages 0
                       set lines 1023
                       select fnd_profile.value('CSF_EMAP_DS_HOST') || '.ad.ic.ac.uk' from dual ;

    PORT_NUMBER=`sqlplus -s apps/$APPS_PWD <<EOF
                        set pages 0
                        set feed off
                        select fnd_profile.value('CSF_MAP_DB_PORT') from dual ;


adjava \
oracle.jrad.tools.xml.importer.JPXImporter ./xxVisitorAM.jpx \
-username apps \
-password $APPS_PWD \
-dbconnection "(description=(address_list=(address=(community=tcp.world)(protocol=tcp)(host=$MACHINE_NAME)(port=$PORT_NUMBER)))(connect_data=(sid=$TWO_TASK)))"

Step 9. FTP all the files from directory tree xxper to $JAVA_TOP/oracle/apps/xxper/..

Bounce apache, and you will notice that your custom logic is now being invoked.

Comments (9)add
written by Jay , May 04, 2007
Hi Anil,
Your site and articles are very good.
can you please post tutorials for Extending Oracle Applications (like Installed Base forms) through JDeveloper?. It would be really helpful.

written by anil passi , May 04, 2007
Hi Jay

when you say base form, are you refering to OA Fwk forms or the D2K forms?

written by Isha , July 04, 2007
Hi Anil,
I find your postings really very nice. I have been given a problem to solve in Oracle OAF. The problem is that I have to add a button in an OAF page. This button will have to launch a concurrent request automatically and auto feed the parameters list with values on the screen. Finally it should display the report or result automatically.

All these by just a click of a button.

Do you think it is possible?

If yes could you please post something concerning this topic?

Please if you could also email me directly on isha0108@hotmail.com

written by Anil Passi , July 04, 2007
Hi There

Basically you need to do the below
1. Extend Controller
2. In ProcessFormRequest, call a method in AM either by extending the AM or by instantiating a new AM. A quick and dirty way would be to make jdbc within Controller itself[not recommended but some people do this]
3. The idea is that you can call a pl/sql package which internally calls fnd_request.submit_request


written by suresh kommula , August 31, 2007
Can you please brief this with an example anil. your help will be greatly appreciated
written by Kannan Balasubramanian , September 10, 2007
Hi Anil,
I just want to customize a page in Oracle Incentive Compensation Module. The page name is "cnytdsum.jsp" and i cant see any personalization links appear in this screen. I enabled personalization and its enabled in other modules.

I want to change a hyperlink in this page. I want to develop a new page when the user clicks the hyperlink the control should move to my new page. How can i achieve this. Please help.

Your site contains very good informations. Thanks for your articles.

Kannan Balasubramanian
written by Anil Passi , September 10, 2007
Hi Kannan

This isn't a OA Framework page, hence you aren't getting hyperlinks to personalize.

Please edit $OA_HTML/cnytdsum.jsp

Anil Passi
written by SenthilKumar , October 30, 2007
Hi Anil,

I extended an AM in one of the standard Oracle Apps Page. After substituting the new AM, all the LOVs in the standard page stopped working. I think it is a know issue. Do you have a solution for this?

Thanks and Regards,
New AM causes Lov Failure
written by Ronel T , February 06, 2008
Hi Anil,

Now i have done a workaround and not done the modification of the old method in AM.
Now i have just added a new method in which i have incoperated everything.
And i have the followed normal steps for extending an AM and as per the article above.
But after i have done the substitution. I am facing an error , when i am trying to using any lov. it gives me an error saying that the region is not able to find any view instance.
I believe this is an issue which senthil kumar was asking in the above on oct 30 2007.

Please advise me if how i can handle this issue.

Ronel T.
You must be logged in to a comment. Please register if you do not have an account yet.