Apps To Fusion

.......contents copyright protected by FocusThread UK Ltd

 
  • Increase font size
  • Default font size
  • Decrease font size
We are glad to announce the launch of Forum for Customizations and Extensions. Click here to visit http://apps2fusion.com/forums
Our OA Framework, BPEL Development & Apps DBA Trainings from USD 299 only [on weekends] . Click here for details.
Also see here fully verifiable feedbacks/testimonials


OA Framework Screen Extension by Embedding a Custom Page

In this OA Framework training article, you will see step by step Audio-Visual demo to Develop a Custom screen using OA Framework and you will also see how that Custom Screen can be embedded/integrated within a Standard OA Framework screen, using Personalizations.

There are two options available to embed a Custom Screen into a standard OA Framework Screen:-
Option 1. Use personalization and create new item to reference the Custom Screen
Option 2. Extend the Controller, and programatically add custom bean into the Main Page's bean

For this demo, I will use the Personalization approach, and this should be the preferred approach too.

Important: These are bandwidth hungry video tutorials. If the website is non-responsive, then please visit after couple of hours to retry.

Firstly I will do some Q&A

Is this approach patching/upgrade safe?
Indeed, given that all the development happens within a custom java package. This will be deployed underneath a custom directory of $JAVA_TOP on your server.


Will this be a very long Audio Visual Demo?

Correct, hence I have broken this demo into four different Audio-Video sessions. All the four videos can be accessed from this article.
Obviously, you will need your headphones to follow the audio in these training sessions.


Which version of jDeveloper was used for this demo?
This demo was carried out on 11.5.10 Rollup4/CU4 level. If you wish to know the Metalink Patch Number for this version of jDeveloper, then kindly see the comment section of this link


Steps for this OA Framework Extension demo



Audio Video 1: Understand the business requirements.
In this video you will understand the business requirement, i.e. you will see the standard OA Frameworkk screen into which a custom region must be embedded. In this section, we will also create a custom database table that upon which our Custom Screen will be based.
CLICK HERE FOR THE PART 1 OF OA FRAMEWORK VIDEO DEMO


Audio Video 2: Create various BC4Js for our custom screen, followed by creating EO, VO, AM and a AdvancedTable based Custom screen.
In this section, we will design and develop a screen in OA Framework without writing a single line of code.
The steps are:-
1. Create BC4J and Entity Object
2. Create View Object and Entity Object
3. Create Application Module and attach VO
4. Create a package to hold Custom Page
5. Build a custom page within StackLayout region using Advanced Table Bean of OA Framework
CLICK HERE FOR THE PART 2 OF OA FRAMEWORK VIDEO DEMO


Audio Video 3: Write few lines of code for the Controller.
This code will be written in a manner that makes this custom screen pluggable into the standard OA Framework Screen.
The custom screen will execute query to display data for the current PO Header Id of the standard OA Framework Page.
The steps are:-
1. Find out the page parameter from standard screen that we can use in Custom Screen
2. In controller, call a AM method passing it the PO Header Id
3. In AM, set the where clause of the VO, and execute query for the Current PO Header Id of standard page.
CLICK HERE FOR THE PART 3 OF OA FRAMEWORK VIDEO DEMO


Audio Video 4: Finally, we will embed our custom screen into the Main OA Framework Screen.
Here you will see the steps for personalization, and you will also see this working demo of this tutorial
CLICK HERE FOR THE PART 4 OF OA FRAMEWORK VIDEO DEMO


Comments (33)add
...
written by ajaysingh , May 28, 2007
really good one this video
ajay
report abuse
vote down
vote up
Votes: +0
...
written by Sharad , May 29, 2007
Hi Anil,

The tutorial was very good. The sync between the audio and video was perfect this time. Can you do a similar kind of stuff for example with Extensions as well?

Thanks,
Sharad.
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , May 29, 2007
Hi Sharad,

I will consider doing that, although I have already covered all possible extensions using typed articles.

Cheers,
Anil Passi
report abuse
vote down
vote up
Votes: +0
...
written by balkrishna , May 30, 2007
It nice to here from you this Excellent Article After long gap in the writing on we site but the topic u have choose and the presentation is excellent .

Just Keep Going on so that we people get some good knowlege

Thanks
balkrishna
report abuse
vote down
vote up
Votes: +0
...
written by Abhishek , June 06, 2007
Hi Anil,
Thanks very much for this article, its very helpful. I had a request, I am very new to Jdeveloper and currently working on SSHR. I need to make some code changes in some self service pages. Can you please let me know how to get the pages on my local machine, which all files do we need and from where. And how to open them in Jdeveloper and migrate them back after changes.

Thanks Again!!
Abhishek
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , June 07, 2007
Hi Abhi

1.To get SSHR Pages, go to $PER_TOP/mds on mid-tier
FTP these into jDevhome/myprojects
2. For BC4J and webui etc
FTP all the classes from $JAVA_TOP/per and FTP those into jdevhome/myclasses/oracle/apps/per
3. Ftp all the xml files from $JAVA_TOP/per and FTP those into jdevhome/myprojects/oracle/apps/per
4. Open the BC4J that you wish to extend, by opening server.xml in respective directory
NOTE: You will also need to FTP all the dependent files in case you wish to Unit test your changes from jDev itself

Thanks
Anil Passi
report abuse
vote down
vote up
Votes: +0
...
written by ramkumar , June 22, 2007
hi anil,

what are all the files we need to download while doing EO or VO or CO or AM extensions.

regards
ram
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , June 22, 2007
Hi Ram,

I guess you wish to extend some BC4J, hence asking the question?

If so, the BC4J that you wish to extend must be FTP. To keep things simple, FTP everything from related directory java_top and then, FTP the dependent objects too. Doign so, you will be able to rebuild and run your extensions within jDeveloper itself

Thanks,
Anil
report abuse
vote down
vote up
Votes: +0
...
written by Gayathri , September 15, 2007
Hi,

I am working on a customization in which I am required to add two buttons-Accept and Reject.On the click of the Accept the flow should go to another JSP page. On click of the Reject button the flow should move on to a different page.I believe this is a workflow modification and personalization.Can someone help me out.
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , September 15, 2007
Hi Gayatri

I need more information, if you can please specify the page you are trying to extend.

In case you are extending a standard OA Framework page, then you need to extend the controller class. From the controller class, you can do
if pageContext.getParameter("NameOfButton") != null
pageContext.setForwardURL....

Thanks,
Anil
report abuse
vote down
vote up
Votes: +0
...
written by yaman , September 25, 2007
THE PART 2 OF OA FRAMEWORK VIDEO DEMO and PART 4 OF OA FRAMEWORK VIDEO DEMO are not working
report abuse
vote down
vote up
Votes: +0
...
written by Peter , September 27, 2007
Hi Anil,
Thanks very much for this article, its very helpful for a new to OA Framework extension, like me. I had a request, and currently working on AR Credit Management (CMGT). I need to add couple new fields into Create Credit Application page (/oracle/apps/ar/creditmgt/application/webui/ARCMCREDITAPPPAGE). The values in the new fields will be inserted or updated in a custom table when use submits the application. Could you please let me know how to extend this, specially how to save these values into the custom table?

Thanks Again!!

Peter
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , September 27, 2007
Hi Peter

Prior to embarking upon extension of the OAF Screen, see if this can be achieved in a conventional manner.

One idea could be
1. Enable DFF on that screen, for those additional fields
The ValueSet against the segment can be used for validation via LOV/poplist
2. Check if there is a business event that is fired, when the record is changed in that OAF Screen.
3. Subscribe to the businness event via pl/sql API, and in the pl/sql subscription of business event transfer values from DFF to custom table.

Thanks,
Anil Passi
PS: Some of the business events you can look at are
oracle.apps.ar.transaction.CreditMemo.complete
oracle.apps.ar.transaction.CreditMemo.incomplete
oracle.apps.ar.transaction.CreditMemo.modify
oracle.apps.ar.applications.CreditMemoApp.apply
oracle.apps.ar.applications.CreditMemoApp.unapply
oracle.apps.okl.cs.issuecreditmemo
oracle.apps.okl.so.creditapplication
oracle.apps.ar.cmgt.CreditRequestRecommendation.implement
oracle.apps.ar.transaction.SalesCredit.delete
report abuse
vote down
vote up
Votes: +0
...
written by Peter , September 27, 2007
Hi, Anil,

Thanks very much for your quick response.

Could you advice how to enable the DFF on the screen? I checked the base table of Create Credit Application page and the table does not have attribute fields for DFF. Is this mean I cannot use DFF to capture the values user entered?

I'll look at the business event you pointed.

Thanks again!!

Peter
report abuse
vote down
vote up
Votes: +0
Great
written by Rakesh Sreenivasa , October 06, 2007
Great tutorial
report abuse
vote down
vote up
Votes: +0
Very Good Article
written by Naveen Sreeramoju , October 09, 2007
Hi Anil,

This is a very good article and thanks for your effort.. smilies/smiley.gif

Regards,
Naveen S
report abuse
vote down
vote up
Votes: +0
hai Anil
written by loganathan s , October 19, 2007
This website is used for all kind OA framework users.From the beginners side its very usefull.

Thanks,
loganathan s
report abuse
vote down
vote up
Votes: +0
...
written by karan76 , January 08, 2008
Anil,

First thanks for spending time to help people in need.GREAT JOB.

1). I need help in create a self-service page, in which I need to get assignment_id of the person that logged into the sshr application.

2). Is there some source code available or able to rep some code from seeded self-serivce pages.

3). what is this about extending ? I know personalizations but how does this extensions work.

OA Framework Version 11.5.10.5RUP.
MDS Version 9.0.5.4.89 (build 555)
UIX Version 2.2.24.1.0
BC4J Version 9.0.3.13.97

Jdeveloper Version 9.0.3.5 ( build 1453)
Oa framework value : 11.5.10CU3 ( 903813_1550_4)

Please help
karan
report abuse
vote down
vote up
Votes: +0
...
written by Madhu Goyal , February 18, 2008
To get SSHR Pages, go to $PER_TOP/mds on mid-tier
FTP these into jDevhome/myprojects
2. For BC4J and webui etc
FTP all the classes from $JAVA_TOP/per and FTP those into jdevhome/myclasses/oracle/apps/per
3. Ftp all the xml files from $JAVA_TOP/per and FTP those into jdevhome/myprojects/oracle/apps/per
4. created work space and project.
how to run this application from jdeveloper before modifying it.
report abuse
vote down
vote up
Votes: +0
How to add a seeded region from another page?
written by Mike W. , March 12, 2008
Your website is terrific, I've been studying it daily. I hope you can help with a problem I'm having. In IExpense, OIE_AUD_AUDIT_PAGE has a tab with expense lines that have detail buttons for some of the lines. Another page, OIEMAINPAGE, has ExpensesSubTabsRN which shows the same expense lines with detail buttons for all of the lines. I'd like to hide the tab contents on OIE_AUD_AUDIT_PAGE and insert the ExpensesSubTabsRN. I've tried this by doing the personalization steps in AudioVideo 4, but it crashes. The 2 pages use the same AuditReportLinesVO, but OIE_AUD_AUDIT_PAGE has AuditAM, AuditPageCO, and ExpensesTabCO, whereas OIEMAINPAGE has WebExpensesAM and ConfirmationPageCO. Can you give any recommendations on how to proceed?
Thanks again for making such a great website!
report abuse
vote down
vote up
Votes: +0
Need help! to add custom region to a oracle apps seeded page.
written by Francis , March 14, 2008
Hi Anil,

I went thru the whole training videos fro this customization as I have a very similar task onhand. But this is on one of the iSupplier pages. Below is what I am doing: Any help is appreciated. Thanks in advance.
======================================================= =================
>> I have created a standalone custom region. Meaning, I haven't imported any seeded packages into this project. (All the packages are custom... mycompany.oracle.apps.pos.suppreg.schema.server (EO) and mycompany.oracle.apps.pos.suppreg.server (VO, AM) and mycompany.oracle.apps.pos.suppreg.webui (RN.xml, CO.java))

>> Compiled the region and it works fine on JDeveloper.
>> Imported the custom region into DB using import command successfully.
>> Zipped up all files from /myclasses/mycompany directory and unloaded into $JAVA_TOP on the middle tier.
>> Apache bounced.
>> Logged into Apps, opened up the page and personalized the page:
>>>>> Create new Item of type "FlexLayout" and underneath that layout created another Item of type "FlexLayout Container" and extended the custom region into it.
**** This works fine *** The custom region shows up on the seeded page. But, also comes out with an error:

**********Message not found. Application: FND, Message Name: FND_VIEWOBJECT_NOT_FOUND. Tokens: VONAME = xxSuppRegVO; APPLICATION_MODULE = oracle.apps.pos.suppreg.server.SupplierRegAM;
***********

I checked the "About Page" link and I see that the "FlexLayout" region is pointing to OAFlexibleCO and the "FlexConatinerLayout" is pointing to OAFlexibleContentCO and NOT picking up my custom CO that I created in the project !!!

Do I need to personalize this region to add the custom CO to this custom region ?

OR extend the stand VO and substitute with the custom one?

Or what am I missing ?

Please let me know and Thanks for your help.

FR
report abuse
vote down
vote up
Votes: +0
How to refresh advancedTable data after commit?
written by Saurabh1 , December 16, 2008
Hello Anil,
Your tutorials are awesome. I have learnt a lot from these. I am extending a std Oracle page similar to what you have mentioned in this tut. but am stuck. Can you please provide some tips?

I am creating a region based on advancedTable, which I will plug into standard Oracle page using personalization to store additional data about customers.

When the user is done with the changes and presses the Standard "Apply" button (which calls doCommit with pagecontext as parameter), the changes are posted to the db table. This works fine EXCEPT that when I requery the same customer / refresh the page, my advanced table does NOT display ANY records AT ALL. I have to close the session and re-run the page from JDeveloper for the updated records in the advancedTable to show up.

How can I refresh the records in the advancedTable?

Thank you very much.

report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , December 17, 2008
I assume user is not directly changing the values in advanced table fields.
In that case, you have to requery the data in VO, for which processRequest on embedded region should be made to fire again.
To achieve this, you can re-direct to the current page which will force processRequest on embedded region to fire

report abuse
vote down
vote up
Votes: +0
...
written by Saurabh1 , December 23, 2008
Anil,

Thanks for your reply.

In fact, since the advanced table is storing additional data about the customer (being viewed currently), the user does enter data directly in the advanced table. Once the user is done with the data updates / changes, the user presses the "Apply" button (provided by the standard page) and my data in the advancedtable gets committed to the db as well.

The user is then taken back to the initial customer search results (from where the user chose a specific customer to view the data for). It is there that if the user clicks on the same customer again, the standard customer detail page renders but not the data in my advancedtable region. From the backend I can see that the data is present in the db table.

I have to close the Jdev session and re-run the standard pages to search for the customer, click on it to see the details to view my updated data.

I assume that the processRequest in my custom region's controller is automatically called when the standard page renders (since my page is a part of the standard page now), why is it that the data is populated the first time but not when I navigate back to the customer details page the 2nd time and on?

Is it because I am just running the application in Jdev right now and it will run fine once I actually move my extension to the server? OR
Do I have to extend the controller for the standard page and explicitly call processrequest in my custom region's controller?

I appreciate your help.

report abuse
vote down
vote up
Votes: +0
Hi Anil .... Plz help !!!
written by Miss Mary , December 24, 2008
I followed the above tutorial to the "T" . But am not getting the desired output demonstrated in the video smilies/sad.gif .
When i click "Return to Application" after creating Flexible Layout and Flexible Layout Content and reference the Custom Region created ....am getting the
following error :

Message not found. Application: FND, Message Name: FND_VIEWOBJECT_NOT_FOUND. Tokens: VONAME = xxdemoPOExtraInfoVO; APPLICATION_MODULE = oracle.apps.fnd.framework.toolbox.tutorial.server.SearchAM;


I believe SearchAM was never in picture .... isn't it ???? We had created our own AM to which we have attached our custom VO ........
Iam Stuck ...Could you please Help ?????

Thanks In Advace
Mary D'Souza
report abuse
vote down
vote up
Votes: +0
...
written by anil- , December 27, 2008
You need to paste the full error stack

Ideally raise this on apps2fusion.com/forums


report abuse
vote down
vote up
Votes: +0
Thanks a lot !!!
written by Miss mary , December 27, 2008
Thanks Mr. Anil .. I never knew such a forum existed ..thanks for guiding me ... I will try to find sol. to my problem ..... And reagarding exception trace...
i didnt get any exception trace except for the message i posted above ... Anyways thanks for the reply
report abuse
vote down
vote up
Votes: +0
CO EXTENSION
written by kritika , May 21, 2009
I have extended my co. After deployment and personalization page shows the New CO but
It doesnt shows the difference. That is new changes that i have created.
I have changed the target of submitt button in controller.
Its going to the previously defined page only
Please help

Kritika
report abuse
vote down
vote up
Votes: +0
...
written by Anil Passi , May 22, 2009
Hi K

Please explain the full functionalty.
Also-if it is a submit button, then you should extend process form request to create new behaviour for that button

Thanks
Anil
report abuse
vote down
vote up
Votes: +0
...
written by kritika , June 08, 2009
Hi Anil,
actully i have to change the target page getting displayed after clicking the submitt button....
this target page already exists in the application but through different navigation.....
this much i have achived i.e the new page is getting displayed.....
but again on the new page there are two more buttons
1.export
2.cancel shipment notice

export button is workin fine but the "cancel" button is not workin....
actully this cancel button needs 4 parameters (shipment num/vendorId/vendorSiteId/HeaderId)....
we are facing problem in passing these parameters successfully through the new navigation path.....
Can u help us passing these aruguments from controller.

Kritika
report abuse
vote down
vote up
Votes: +0
How to remove standard links
written by Bobby Nielsen , July 15, 2009
Hi Anil,

Do you know how to remove/hide the standard page links like "Home" and "Logout" etc.?

I think it should be possible in the settings of the menu or function.

I have a custom oaf page, which is linked to from an non oaf page (an html on a ISS webserver).

But I can't figure out how to remove the mentioned links. The client do not want the links to be shown.

Can you help me?

Thanks for a great site full of valuable knowledge

Bobby
report abuse
vote down
vote up
Votes: +1
Data is not inserted into database through OA-Page
written by vinay , October 14, 2009
Hi Anil,
Your tutorials are awesome. I have learned a lot from these
Based on ur article I developed a region to store supplier additional information.In that region i'm able to enter data into fields and data is sucessfully stored into custom table.But when I embedded that region with Supplier-Address Book page(in R12) page through Personalization i'm facing a problem with inserting data into custom table.i.e After I entered data the data is not goes to custom table and the fields which are filled by data are also not cleared. Could u please help me..

Thanks in Advance,
Vinay

report abuse
vote down
vote up
Votes: +0
Unable to add a Region using Personalization
written by Ravi Nuka , December 07, 2009
Hi Anil,

I am working on R12 Oracle Application. I have a requirement to customize one of the Standard page of Quotation. I tried to follow steps as per your demo to add a custom region.
When I am following your demo. I am able to add a item with type as "Flexible Layout", but when I add that item, I am not able to find "Create item" icon enable for this item and I could not new item of type "FlexibleLayout Container" where to refer my custom region. Please advise.

Thanks & Regards,
Ravi Nuka.
report abuse
vote down
vote up
Votes: +0
Write comment
quote
bold
italicize
underline
strike
url
image
quote
quote
smile
wink
laugh
grin
angry
sad
shocked
cool
tongue
kiss
cry
smaller | bigger

security image
Write the displayed characters


busy