You are on page 1of 31

Master-Detail Page in OA Framework

Sudhakar Mani Published on 12 May 2009 Hits: 12804

Advertisements
OA Framework Book
Covers java basics,OAF customization and extensions Learn More

Master-Detail page is a very common requirement for OAF based project.This tutorial is based on Oracle's Toolbox tutorial,it has been redone and explained step by step to help beginners.Below are the step by step by approach to implement the Master Detail Page using PPR.Source code for this tutorial is available as attachement. Note: Only registered users can download the source code and registration is free. Have a Look at Oracle Forms Style Master Detail Page

OA Framework Training
Learn OAF from the experts.Start at $299 Learn More

License: {tab=Initial Steps -->} 1. Right click Workspaces and click create new OAworkspace and name it as "CholaMasterDetail". Automatically a new OA Project is also created. Name the project as CholaMasterDetailand package as chola.oracle.apps.fnd.master.

Oracle SOA Training


Learn SOA 11G from the industry leading professional trainer 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:

1 2 3 4 5 6 7 8 9

import import import import import import import import import

Im port Statem ents oracle.apps.fnd.common.VersionInfo; oracle.apps.fnd.framework.OAApplicationModule; oracle.apps.fnd.framework.webui.OAControllerImpl; oracle.apps.fnd.framework.webui.OADataBoundValueViewObject; oracle.apps.fnd.framework.webui.OAPageContext; oracle.apps.fnd.framework.webui.OAWebBeanConstants; oracle.apps.fnd.framework.webui.beans.OAWebBean; oracle.apps.fnd.framework.webui.beans.layout.OAHeaderBean; oracle.apps.fnd.framework.webui.beans.table.OATableBean;

Code: {slide=ProcessRequest} 1 2 3 4 5 6 OAHeaderBean sitesHeader = (OAHeaderBean)webBean.findChildRecursive("SupplierSitesHeader"); sitesHeader.setAttributeValue(OAWebBeanConstants.TEXT_ATTR, new OADataBoundValueViewObject(sitesHeader, "DetailTableText", "SupplierPVO1")); OAApplicationModule am =
Are you a developer? Try out the HTML to PDF API

open in browser PRO version

pdfcrowd.com

7 8 9 10

(OAApplicationModule)pageContext.getApplicationModule(webBean); am.invokeMethod("initializePPRExamplePage"); OATableBean table = (OATableBean)webBean.findChildRecursive("SuppliersTable"); table.queryData(pageContext, true);

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

{/slide} {tab=AM Code -->} Include the two methods in CholaMdAMImpl.java file. handleSupplierSelectionEvent: 1 2 3 4 5 6 7 8 9 10 public void handleSupplierSelectionEvent() { OADBTransaction txn = getOADBTransaction(); String detailTableText = null; OAViewObject vo = (OAViewObject)findViewObject("SuppliersVO1"); Row masterRow = vo.getFirstFilteredRow ("SelectFlag", "Y"); if (masterRow != null) { vo.setCurrentRow(masterRow); String supplierName = (String)masterRow.getAttribute("Name");
Are you a developer? Try out the HTML to PDF API

open in browser PRO version

pdfcrowd.com

11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

MessageToken[] tokens = { new MessageToken("SUPPLIER_NAME", supplierName)}; detailTableText = txn.getMessage("AK", "FWK_TBX_SITES_FOR_SUPPLIER", tokens); } else { detailTableText = txn.getMessage("AK", "FWK_TBX_SUPPLIER_SITES", null); } SupplierPVOImpl appPropsVo = getSupplierPVO1(); Row appPropsRow = appPropsVo.getCurrentRow(); if (appPropsRow != null) { appPropsRow.setAttribute("DetailTableText", detailTableText); } } // end handleSupplierSelectionEvent()

initializePPRExamplePage: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 public void initializePPRExamplePage() { OAViewObject appPropsVO = (OAViewObject)findViewObject("SupplierPVO1"); if (appPropsVO != null) { if (appPropsVO.getFetchedRowCount() == 0) { appPropsVO.setMaxFetchSize(0); appPropsVO.executeQuery(); appPropsVO.insertRow(appPropsVO.createRow()); OARow row = (OARow)appPropsVO.first(); row.setAttribute("RowKey", new Number(1)); } handleSupplierSelectionEvent(); } else
Are you a developer? Try out the HTML to PDF API

open in browser PRO version

pdfcrowd.com

16 17 18 19 20 21 22

else { // throw exception } }

{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
Share This

Post

My Account

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
Are you a developer? Try out the HTML to PDF API

open in browser PRO version

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
Category: OA Fram ew ork

Next >

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