Wednesday, June 7, 2017

OA Frame Work Architecture


Difference between OAF/Oracle Forms:

OAF
Oracle Forms
1) OAF Pages are web based applications and can integrate Mobile devices
1) Oracle forms are not web based applications and can not integrate into Mobile devices
2) OAF Pages are followed with MVC Architecture as well as client server Architecture.
2) Oracle forms followed with only client server Architecture.
3) OAF Pages are look and feel is good.
3) Oracle forms are not look and feel good compare to OAF.
4) OAF Pages are light /weight components
4) oracle forms are not light /weight components compare to OAF
5) OAF Pages start with Region->items
5) Oracle forms start with window ->canvas->block->fields
6) OAF Pages Files followed with JAVA_TOP
6) Oracle forms files followed with AU_TOP



Difference between OAF/Oracle ADF:

OAF
Oracle ADF
1) OAF Pages followed with MVC Architecture
1) ADF Followed with MVC1 and MVC2 Architecture
2) OAF Pages doens not support drag and drop options
2) ADF does support drag and drop
3) OAF Pages can integrate only oracle EBS
3) ADF Page can integrate any other ERPS

4) OAF Pages can not see the design at design time
4) ADF Page can see the design at design time

Roles and Responsibilities in OAF:
1) Development of new pages from scratch(Custom Module)
2) Customization of Existing custom pages(Custom Module)
3) Extension of OAF Pages from oracle Std Modules (Std Modules)
4) Personalization of OAF PAGES FROM oracle Std Modules (Std Modules)
5) Upgradtion of OAF Pages from lower version of oracle apps to Higher version of oracle apps
Ex: 11i to R12

MVC Architecture:
1)OAF follows J2ee Architecture, j2ee follows MVC Architecture, ultimately OAF also follows MVC Architecture

2)MVC is clean design interface between model /view /controller

Overview of Model:

1) Model will interact all the DB related Objects and Transactions

2) Model will implement all the business logics for DB objects

3) Model will implement all the BC4J Componenets

BC4J:  (Business componenets for java): Represents directory structure of all your objects

BC4J Consist of 3 types

1) Entity Object and Entity Associations
2) View Objects and View Links
3) Application Module(OADB Transactions)

Entity Objects:

1) Entity Objects represents Tables/Views/synonyms/snapshots
2) Performing the DML operations on the page must have to create an entity object
3) All the EntityObjects naming convention end with EO
     AP_SUPPLIERS àApSuppliersEO
4) When you create entity object, OAF will generate two files
    ApSuppliersEO.xml and ApSuppliersEOImpl.java 
    ApSuppliersEO.xml  contains get methods and set methods for each attribute and also one validate method.  

Types of Entity Objects:

1) PL/SQL Based Entity Object  --  can perform DML operations on oracle Std Tables
2) Java Based Entity Objects    --  can perform the DML Operations on oracle Custom tables 

Entity Association:
1) Relationship Between Two entity Objects having common column between Two Entityobjects
2) All the Entity Association naming convention end with AO
    SupplierSitesAO
3) When u create an Entity Association , OAF will generate one xml file
    SupplierSitesAO.xml

View Objects
1) View Objects Access all the SQL Queries
2) All the View objects naming convention end with VO
     Ex: SupplierInfoVO
3) When you create view objects OAF will generate two manadatory files and one file optional
  1) SupplierInfoVO.xml    --  Attributes, Data Types, Precision
  2) SupplierInfoVOImpl.java   -- 
  3) SupplierInfoVORowimpl.java(optional)
4) Types of View Objects:
   a)Automatic VO(EO Based Vos)—
       1)perform DML Operations
       2) display data
       3)Search OPERATIONS
    b)SQL Based Vos(Manual Vos)—
      1) display the data
      2)perform search operations

View Links:

1) Is relation ship between Two View Objects having common column between two vos
2) All the view link objects end with VL
    DeptEmpVL
3) When you create View link OAF will generate one xml file
    DeptEmpVL.xml
4) To display data from multiple tables, will go for view link(display master and child records)

Application Module:
     
      1)     Interface Between All the Database transactions and Objects with OAF Page
2)   All the Application Module Objects end with AM
     Employee AM
3)  When you create Application Module OAF will generate two files
     EmployeeAM.xml   -- all the View Instances Mappings
     EmployeeAMImpl.java --  

Two types of Application Module
a) Root Application Module: Attaching AM to the Main Region of the page called as Root Application Module
b) Nested Application Module: Attaching AM to the Sub Region of the page called as Nested Application Module

Note: Any OAF Page, Main or Parent Region automatically will create.
Note: All the Regions have one property called AM Definition

VIEW:
      
      1)     Is the Output of OAF Page
      2)     All the view related Objects are -> Pages->Region->Fields(Items)
      3)     All the pages naming convention end With       
     EmployeePG
      4)     All the Regions Naming convention end with RN
     PersonalInfoRN

How the Output will generate in Oracle Apps?

1) Move the Page to Server
2) Run the xml importer script for the page
java oracle.jrad.tools.xml.importer.XMLImporter $JAVA_TOP/xxpj1/oracle/apps/ar/customerrebate/webui/ SupplierinfoPG.xml -rootdir  $JAVA_TOP -username apps -password apps -dbconnection "(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora.vamshi.com)(PORT=1521))(CONNECT_DATA=(SID=VIS)))"

    The page related information will store into JDR Table (MDS Tables)
1)  jdr_attributes      --  patchdocid -25
2)  jdr_componenets – patchdocid - 25

3)  jdr_paths             --  patchdocid -25

How to Recover the Page from Server?

begin
jdr_utils.printdocument('page_path');
end;


Controller:
1) Controller will invoke Http Get/Http Post
2) All the Controller objects naming convention end with CO
     SupplierCO
3) When u create the controller OAF will generate one java file
      SupplierCO.java

Controller have a 3 methods
1) Process Request: HttpGet
2) Process Form Request: Httppost
3) Process form Data:get/post

Public void processRequest()
{


}


No comments:

Post a Comment