Implement Master Detail Relationship in OAF Page

Let us try to implement Master Detail Relationship in advanceedTable. We will create two tables master table and child table. Both have relationship with each other with Column1

 

(Note - Column1 is a primary key in both tables)

 

1. Create a New OA Workspace and Empty OA Project

File> New > General> Workspace Configured for Oracle Applications

File Name -- MasterDetailProj

Project Name – MasterDetailDemo

Default Package -- prajkumar.oracle.apps.fnd.masterdetaildemo

 

2. Create Application Module AM

MasterDetailDemo right click > New > ADF Business Components > Application Module

Name -- MasterdetailDemoAM

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.server

Check Generate JavaFile(s)

 

3. We need two tables one table will be act as Master table and second table will be act as Child or detail table. Lets Create two tables

-- Master Table

CREATE TABLE master_table_demo
(   -- ---------------------  
    -- Data Columns
    -- ---------------------
    Column1                     VARCHAR2(100),
    Column2                     VARCHAR2(100), 
    -- ---------------------- 
    -- Who Columns 
    -- ---------------------- 
    last_update_date        DATE             NOT NULL, 
    last_updated_by         NUMBER      NOT NULL, 
    creation_date               DATE             NOT NULL, 
    created_by                    NUMBER      NOT NULL, 
    last_update_login       NUMBER
);

 

-- Detail Table

CREATE TABLE detail_table_demo
(   -- ---------------------  
    -- Data Columns
    -- ---------------------
    Column1                     VARCHAR2(100),
    Column2                     VARCHAR2(100), 
    -- ---------------------- 
    -- Who Columns 
    -- ---------------------- 
    last_update_date        DATE             NOT NULL, 
    last_updated_by         NUMBER      NOT NULL, 
    creation_date               DATE             NOT NULL, 
    created_by                    NUMBER      NOT NULL, 
    last_update_login       NUMBER
);

 

Note – Consider Master Table is Linked to Detail Table with Column1

 

4. Lets put some data in the tables

-- Insert Data into Master Table

INSERT INTO master_table_demo VALUES ( ‘VAL1’, ‘VAL2’, SYSDATE, 0, SYSDATE, 0, 0);

INSERT INTO master_table_demo VALUES ( ‘VAL3’, ‘VAL4’, SYSDATE, 0, SYSDATE, 0, 0);

 

-- Insert Data into Detail Table

INSERT INTO detail_table_demo VALUES ( ‘VAL1’, ‘VAL6’, SYSDATE, 0, SYSDATE, 0, 0);

INSERT INTO detail_table_demo VALUES ( ‘VAL3’, ‘VAL8’, SYSDATE, 0, SYSDATE, 0, 0);

 

5. Create a New Entity Object (EO) for Master Table

Right click on MasterDetailDemo > New > ADF Business Components > Entity Object

Name – MasterEO

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.schema.server

Database Objects -- master_table_demo

 

Note -- Make Column1 as a primary key

 

 

Check the Accessors, Create Method, Validation Method and Remove Method

 

6. Create a New Entity Object (EO) for Detail Table

Right click on MasterDetailDemo > New > ADF Business Components > Entity Object

Name – DetailEO

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.schema.server

Database Objects -- detail_table_demo

 

Note -- Make Column1 as a primary key

 

 

Check the Accessors, Create Method, Validation Method and Remove Method

 

Note – Column1 in both tables is common Column to make parent child relationship

 

7. Lets Create View Object for Master Table

Right click on MasterDetailDemo > New > ADF Business Components > View Object

Name -- MasterVO

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.server

In Step2 in Entity Page select MasterEO and shuttle them to selected list

Create transient item by clicking on New

Name – DetailFlag

Type -- Boolean

 

 

In Step3 in Attributes Window select columns Column1, Column2, DetailFlag and shuttle them to selected list

In Java page deselect Generate Java file for View Object Class: MasterVOImpl

 

8. Lets Create View Object for Detail Table

Right click on MasterDetailDemo > New > ADF Business Components > View Object

Name -- DetailVO

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.server

In Step2 in Entity Page select DetailEO and shuttle them to selected list

In Step3 in Attributes Window select columns Column1, Column2 and shuttle them to selected list

In Java page deselect Generate Java file for View Object Class: DetailVOImpl

 

9. Create View Link Add Your View Object to Root UI Application Module

Right click on MasterDetailDemo > New > ADF Business Components > View Link

Name – MasterdetailDemoVL

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.server

 

 

10. Add Your View Object to Root UI Application Module

Right click on MasterdetailDemoAM > Application Modules > Data Model >

Select MasterVO, DetailVO via ViewLink, DetailVO and shuttle to Data Model list

 

 

11. Create a New Page

Right click on MasterdetailDemo > New > Web Tier > OA Components > Page

Name -- MasterdetailDemoPG

Package -- prajkumar.oracle.apps.fnd.masterdetaildemo.webui

 

12. Select MasterdetailDemoPG and go to the strcuture pane where a default region has been created

 

13. Select region1 and set the following properties:

ID -- PageLayoutRN

Region Style -- PageLayout

AM Definition -- prajkumar.oracle.apps.fnd.masterdetaildemo.server.MasterdetailDemoAM

Window Title – Master Detail Demo Page Window

Title – Master Detail Demo Page Header

Auto Footer – True

 

14. Add a New Region MainRN

Select PageLayoutRN right click > New > Region

ID -- MainRN

Region Style – header

 

15. Create a Master Table Region

Select MainRN > New > Region

ID – MainTableRN

Region Style -- advancedTable

View Instance -- MasterVO1

Detail View Attribute – DetailFlag

Child View Attribute -- Column1

View Link Instance -- MasterdetailDemoVL1

Width – 100%

Rendered – True

 

16. Create Columns and their items for MainTableRN

Create Column1

Select MainTableRN > New > column

Select column1 > New > Item

ID – item1

Item Style – messageStyledText

View Attribute – Column1

 

Create Column2

Select MainTableRN > New > column

Select column2 > New > Item

ID – item2

Item Style – messageStyledText

View Attribute – Column2

 

17. Create a Detail Region

Select MainTableRN > New > detail

A new Region will be get created under detail set following properties for that region

ID – DetailRN

Region Style – header

 

18. Create a DetailTable Region

Select DetailRN > New > Region

For New region set following Properties

ID – DetailTableRN

Region Style – advancedTable

View Instance -- DetailVO2

View Link Instance -- MasterdetailDemoVL1

Width – 100%

Rendered – True

 

19. Create Columns and their items for DetailTableRN

Create Column3

Select DetailTableRN > New > column

Select column3 > New > Item

ID – item3

Item Style – messageStyledText

View Instance – DetailVO2

View Attribute – Column1

 

Create Column4

Select DetailTableRN > New > column

Select column4 > New > Item

ID – item4

Item Style – messageStyledText

View Instance – DetailVO2

View Attribute – Column2

 

20. Add Controller for Page MasterdetailDemoPG Select PageLayoutRN right click Set New Controller

Package Name -- prajkumar.oracle.apps.fnd.masterdetaildemo.webui

Class Name -- MasterdetailDemoCO

Set Following Code in CO

 

import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import prajkumar.oracle.apps.fnd.masterdetaildemo.server.MasterdetailDemoAMImpl;

...

public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
 super.processRequest(pageContext, webBean);

 MasterdetailDemoAMImpl AM =
  (MasterdetailDemoAMImpl)pageContext.getApplicationModule(webBean);

 pageContext.writeDiagnostics(this, "Calling Method", 1);

 AM.MasterDetails(pageContext,webBean);
}

 

21. Add Following Code in your AMImpl Class (MasterdetailDemoAMImpl.java)

 

import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;

...

public void MasterDetails(OAPageContext pageContext,OAWebBean webBean) 

 MasterVOImpl pvo = getMasterVO1(); 
        pvo.executeQuery(); 
}

22. Final Structure pane will look like following picture

 

23. Congratulation you have successfully finished. Run Your MasterdetailDemoPG page and Test Your Work

 

 

 

请使用浏览器的分享功能分享到微信等