You are on page 1of 31

Master-Detail Page in OA Framework Advertisements

Sudhakar Mani Published on 12 May 2009 Hits: 12804


OA Framework Book
Covers java
Master-Detail page is a very common requirement for OAF based project.This tutorial is based on Oracle's Toolbox basics,OAF
tutorial,it has been redone and explained step by step to help beginners.Below are the step by step by approach to customization and
implement the Master Detail Page using PPR.Source code for this tutorial is available as attachement. extensions
Learn More
Note: Only registered users can download the source code and registration is free.
OA Framework Training
Have a Look at Oracle Forms Style Master Detail Page Learn OAF from the
experts.Start at $299
Learn More

License: Oracle SOA Training


Learn SOA 11G from
{tab=Initial Steps -->} the industry leading
1. Right click Workspaces and click create new OAworkspace and name it as "CholaMasterDetail". Automatically a new OA professional trainer
Project is also created. Name the project as CholaMasterDetailand package as chola.oracle.apps.fnd.master. Learn More

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
{StickyNote}{/StickyNote}

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Set the project properties as per the screenshot below:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
2. We need to create two Business component package. Right click on CholaMasterDetail.jpr and click on new Business
Component Package.

Name - cholamd.oracle.apps.fnd.master.server

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
3.Right click on cholamd.oracle.apps.fnd.master.server and click new Application Module.

Name - CholaMdAM.
Package - cholamd.oracle.apps.fnd.master.server.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
{tab=VO -->}

4. Right click on cholamd.oracle.apps.fnd.master.server and click new View Object.

Name - SupplierPVO
Package - cholamd.oracle.apps.fnd.master.server.

Click Next and go to the attributes page.The VO is based on any EO.We need to create transient attributes.Click New and
create the below attributes.

Name - RowKey
DataType - String
Updatable - Always
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Key Attribute - Yes

Name - PoApproveReadOnly
DataType - Boolean
Updatable - Always

Name - PoApproveRequired
DataType - String
Updatable - Always

Name - PoApproveRender
DataType - Boolean
Updatable - Always

Name - PoApproveReject
DataType - Boolean
Updatable - Always

Name - DetailTableText
DataType - String
Updatable - Always

Click Next and Finish.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
5.Right click on cholamd.oracle.apps.fnd.master.server and click on new View Object.

Name - SupplierSitesVO
Package - cholamd.oracle.apps.fnd.master.server.

Click Next.Go to the query page and paste the following query:

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
SELECT SupplierSiteEO.SUPPLIER_ID,
SupplierSiteEO.SUPPLIER_SITE_ID,
SupplierSiteEO.SITE_NAME,
SupplierSiteEO.PURCHASING_SITE_FLAG,
SupplierSiteEO.START_DATE,
SupplierSiteEO.END_DATE
FROM FWK_TBX_SUPPLIER_SITES SupplierSiteEO

Click Next and Finish.

6.Right click on cholamd.oracle.apps.fnd.master.server and click on new View Object.

Name - SuppliersVO
Package - cholamd.oracle.apps.fnd.master.server.

Click Next.Go to the query page and paste the following query:

SELECT SupplierEO.SUPPLIER_ID,
SupplierEO.NAME,
SupplierEO.ON_HOLD_FLAG,
SupplierEO.START_DATE,
SupplierEO.END_DATE
FROM FWK_TBX_SUPPLIERS SupplierEO
WHERE SupplierEO.SUPPLIER_ID <= 100

Note : Add a new attribute SelectFlag as a transient attribute.Do not forget to do this step.

Edit the AM and shuttle the SuppliersVO and SupplierSitesVO to the right side and click ok. Only then the VO instances will
be accessible.
{tab=VL -->}
7.Right click on cholamd.oracle.apps.fnd.master.server and click on new View Link.

Name - SuppliertoSitesVL
Package - cholamd.oracle.apps.fnd.master.server.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
8.From the source view object select SuppliersVO and from destination view object select SupplierSitesVO.Click Next.

9.Select the SupplierId from the available attributes of SuppliersVO and shuttle it to the right side.Click Next.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
10.Select the SupplierId from the available attributes of SupplierSitesVO and shuttle it to the right side.Click Next.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
11.Choose the cardinality for the source(SuppliersVO) as 1 and destination(SupplierSitesVO) as *.Click Next and Finish.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
{tab=PG -->}

12.Right click on CholaMasterDetail.jpr and select new. Click on web tier and then OA Components and select Page.

Name - CholaMasterDetailPG
Package - cholamd.oracle.apps.fnd.master.webui.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
13.Select the CholaMasterDetailPG and go to the strcuture pane where a default region has been created.

14. Select region1 and set the following properties:

ID - PageLayoutRN
AM Definition - cholamd.oracle.apps.fnd.master.server.CholaMdAM
Window Title - Master Detail Page Demo
Title - Master Detail Page Demo

15.Right click on PageLayoutRN and select new Region.

Name - MasterDetailRN
Region Style - Header

16.Right click on MasterDetailRN and select new Region Using Wizard.

17.From the droplist select the CholaMdAM and then SuppliersVO1.Click Next.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
18.Set the RegionID as SuppliersTable and RegionStyle as Table.

19.Shuttle all the attributes to the right side and click next.

20.Change the Style of all the attributes to messageStyledText.Click Next and Finish.

Right click on SuppliersTable and select new - > singleSelection.Set the following properties for the singleSelection:

View Instance - SuppliersVO1

View Attribute - SelectFlag

Action Type - firePartialAction

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Event - supplierSelect

21.Right click on SuppliersTable and click new singleSelection.Set the following properties:

View Instance - SuppliersVO1


View Attribute - SelectFlag
Action Type - firePartialAction
Event - supplierSelect

21.Select MastersDetailRN and select new Region.

23.Set the RegionID as SupplierSitesHeader and RegionStyle as header.

24.Right click SupplierSitesHeader and select new Region Using Wizard.

25.From the droplist select the CholaMdAM and then SupplierSitesVO1.Click Next.

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
26.Set Name as SupplierSitesHeader and RegionStyle as Table.Click Next.

27.Shuttle all the attributes to the right side and click next.

28.Change the Style of all the attributes to messageStyledText.Click Next and Finish.

{tab=CO -->}

29.Right click on the PageLayoutRN in the page and select Set new Controller.

Name- MasterDetailCO
Package - cholamd.oracle.apps.fnd.master.webui

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Import Statements:

Im port Statem ents


1 import oracle.apps.fnd.common.VersionInfo;
2 import oracle.apps.fnd.framework.OAApplicationModule;
3 import oracle.apps.fnd.framework.webui.OAControllerImpl;
4 import oracle.apps.fnd.framework.webui.OADataBoundValueViewObject;
5 import oracle.apps.fnd.framework.webui.OAPageContext;
6 import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
7 import oracle.apps.fnd.framework.webui.beans.OAWebBean;
8 import oracle.apps.fnd.framework.webui.beans.layout.OAHeaderBean;
9 import oracle.apps.fnd.framework.webui.beans.table.OATableBean;

Code:

{slide=ProcessRequest}

1 OAHeaderBean sitesHeader =
2 (OAHeaderBean)webBean.findChildRecursive("SupplierSitesHeader");
3 sitesHeader.setAttributeValue(OAWebBeanConstants.TEXT_ATTR,
4 new OADataBoundValueViewObject(sitesHeader, "DetailTableText",
5 "SupplierPVO1"));
6 OAApplicationModule am =
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
7 (OAApplicationModule)pageContext.getApplicationModule(webBean);
8 am.invokeMethod("initializePPRExamplePage");
9 OATableBean table = (OATableBean)webBean.findChildRecursive("SuppliersTable");
10 table.queryData(pageContext, true);

{/slide}
{slide=ProcessFormRequest}

1 OAApplicationModule am =
2 (OAApplicationModule)pageContext.getApplicationModule(webBean);
3 String event = pageContext.getParameter("event");
4 if ("supplierSelect".equals(event))
5 {
6 am.invokeMethod("handleSupplierSelectionEvent");
7 }

{/slide}

{tab=AM Code -->}

Include the two methods in CholaMdAMImpl.java file.

handleSupplierSelectionEvent:

1 public void handleSupplierSelectionEvent()


2 {
3 OADBTransaction txn = getOADBTransaction();
4 String detailTableText = null;
5 OAViewObject vo = (OAViewObject)findViewObject("SuppliersVO1");
6 Row masterRow = vo.getFirstFilteredRow ("SelectFlag", "Y");
7 if (masterRow != null)
8 {
9 vo.setCurrentRow(masterRow);
10 String supplierName = (String)masterRow.getAttribute("Name");
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
11 MessageToken[] tokens = { new MessageToken("SUPPLIER_NAME", supplierName)};
12 detailTableText =
13 txn.getMessage("AK", "FWK_TBX_SITES_FOR_SUPPLIER", tokens);
14 }
15 else
16 {
17 detailTableText =
18 txn.getMessage("AK", "FWK_TBX_SUPPLIER_SITES", null);
19 }
20 SupplierPVOImpl appPropsVo = getSupplierPVO1();
21 Row appPropsRow = appPropsVo.getCurrentRow();
22 if (appPropsRow != null)
23 {
24 appPropsRow.setAttribute("DetailTableText", detailTableText);
25 }
26 } // end handleSupplierSelectionEvent()

initializePPRExamplePage:

1 public void initializePPRExamplePage()


2 {
3 OAViewObject appPropsVO = (OAViewObject)findViewObject("SupplierPVO1");
4 if (appPropsVO != null)
5 {
6 if (appPropsVO.getFetchedRowCount() == 0)
7 {
8 appPropsVO.setMaxFetchSize(0);
9 appPropsVO.executeQuery();
10 appPropsVO.insertRow(appPropsVO.createRow());
11 OARow row = (OARow)appPropsVO.first();
12 row.setAttribute("RowKey", new Number(1));
13 }
14 handleSupplierSelectionEvent();
15 }
16 else
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
16 else
17 {
18 // throw exception
19 }
20 }
21
22

{tab=Save and Run }

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
{/tabs}

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Search... Browse Post My Account
Share This Hits : 12804

Points : 1840

I am an Oracle Technical Architect working on Oracle Property Manager.My


Expertise includes Oracle ADF,OA Framework,SOA and OBIEE.

Sudhakar Mani
Contact Author Website Facebook Tw itter

Comment as a guest or login


open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Name * Email *

Sub scrib e to None

Submit comment

Sort by: Date Rating

41 Comments
evivek 44 Months Ago (0) Vote

Hi Aarthi,

I'm using 10.1.3.1.0 and its navigation seems to be different from that shown in the screenshot.

When i right click on .jpr, i cant view the "New Business Components package" option.

Thanks,

Vivek

Reply Quote

aarthi 10 Months Ago (0) Vote

Vivek,

It is done in 11i jdev.you can right click on your project and then goto business tier-ADF business
components and then select VO or EO.you can straight away specify the package name there.In r12
jdev it is not needed to create bc4j package explicitly.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Let me know if you have any problems doing it.

Regards,

Aarthi

Reply Quote

suryakanta.palai 3 Months Ago (0) Vote

Hi Aarthi,

Xlent article. Its really helpful.

Thanks

surya

Reply Quote

aarthi 8 Months Ago (+1) Vote

Thanks suryakanta..

Regards,

Aarthi

Reply Quote

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
contactriteshsharm a 18 Months Ago (0) Vote

Hi Aarathi,

My requirement is to develop a Oracle Form style Master-Detail data entry Form, is it possible in OAF
or Not?

I developed a sample form and created all required BC4J components like EO, VO, viewlink and entity
association but it is not picking up the foreign key value. What may be the reason? I have set the
newly created row as current row for Master VO.

Thanks in advance

Regards,

Reetesh Sharma

Reply Quote

aarthi 18 Months Ago (0) Vote

Reetesh,

No it is not straight forward in OAF. However you can achieve this by tweaking a little.Can you attach
your project zip file in the forums so that I can have a look at it.

Regards,

Aarthi

Reply Quote

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
contactriteshsharm a 33 Months Ago (0) Vote

Hi Arathi,

Thanks for your propmt response.

I've already compeleted that project and handelled Master-Detail Relationship manually means I
created two regions while querying I was firing query on both the regions simultaneously and while
saving the data I will pass foreign key value manually to child block.

I just want to know if any better approach is there.

Best Regards

Reetesh Sharma

Reply Quote

m uthuvadde 19 Months Ago (0) Vote

Hi Arthi,

Superb yaar

i do admire ur job

it is very helpful for working guys.

keep it up

thanks

muthu

Reply Quote
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Akila 40 Months Ago (0) Vote

Hi Aarthi,

I created a Master-Detail OAF page following the steps you listed in the document. But I am not
getting any data when I attach the detail region. If I just run the the page with the Master Region alone,
I could see the data.

I am fairly new to OAF and I am having hard time to figure out what I missed.

Could you please help me out on this.

Thanks,

Akila.

Reply Quote

adm in 33 Months Ago (-1) Vote

Hi Akila,

Please post your query in the forum to get a prompt response as well as it is easy to troubleshoot
from there.Do attach your myprojects as a zipped file.

http://oraclearea51.com/forums.html?func=showcat&catid=8

Regards

Sudhakar

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Reply Quote

Display # 10

Start Prev 1 2 3 4 5 Next End


Copyright Oraclearea51.com

< Prev Next >

Category: OA Fram ew ork

Designed by Cholaglobal.co

Back to Top

Powered by CholaTube

open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com

You might also like