OAF Training
-
Upload
sridhar-yerram -
Category
Documents
-
view
297 -
download
36
Transcript of OAF Training
Oracle Application Framework
041723 1
By Sridhar Yerram
Outlinebull Introduction to OA Framework
ndash Definitionsndash General Principles
bull MVC Architecturendash Understanding the basics of Model
bull View Objectsbull View Linksbull Entity Objectsbull Entity Expertsbull Validation AMbull Validation VO
ndash Understanding the basics of Viewndash Understanding the basics of Controller
bull Jdeveloper Structure and configuration in your desktopbull Fundamental OA Framework UI Objects
ndash Checkboxesndash Pop Listsndash Simple List of Valuesndash Exception Handlingndash Advanced Tablesndash Partial Page Refreshndash Dialog Pagesndash Passive Criteria List of Values
041723 2
Outlinebull Implementing Server Side Features
ndash Calling PLSQL procedures and functions ndash Error Handling
bull Debugging OA Framework Applications ndash Debugging OA Framework Applications using Jdeveloperndash Logging Infrastructure in OA Framework
bull Finding out the right version of Jdeveloper IDEbull List of OAF Files Generated and their importancebull Directory Structure of Application Serverbull Deploying OA Framework Applicationsbull OA Framework Personalization Concepts
ndash Personalizationndash Extensionndash Substitution
bull SPELbull JDR(TablePackages)
041723 3
Overview
Oracle Application Framework(OA Framework) is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite
Available to customers for personalization customizations and custom-application development
The OA Framework is a Model-view-controller (MVC) framework built using J2EE (Java 2 Platform Enterprise Edition)technologies
Historical Perspective
Very first HTML screen in oracle apps was created using PLSQL code using PLSQL toolkit
AK Developer repository for storing structure and definition of the WebPagesCurrent Technology OAF with MDS
041723 4
Overview (Cont)
bull OA Framework is based on JSP technology which executes in a servlet engine When the browser issues an OAjsp request for one of the Self-Service pages page processing takes place within a servlet engine which in turn can access the application data as well as user interface metadata from the database
041723 5
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Outlinebull Introduction to OA Framework
ndash Definitionsndash General Principles
bull MVC Architecturendash Understanding the basics of Model
bull View Objectsbull View Linksbull Entity Objectsbull Entity Expertsbull Validation AMbull Validation VO
ndash Understanding the basics of Viewndash Understanding the basics of Controller
bull Jdeveloper Structure and configuration in your desktopbull Fundamental OA Framework UI Objects
ndash Checkboxesndash Pop Listsndash Simple List of Valuesndash Exception Handlingndash Advanced Tablesndash Partial Page Refreshndash Dialog Pagesndash Passive Criteria List of Values
041723 2
Outlinebull Implementing Server Side Features
ndash Calling PLSQL procedures and functions ndash Error Handling
bull Debugging OA Framework Applications ndash Debugging OA Framework Applications using Jdeveloperndash Logging Infrastructure in OA Framework
bull Finding out the right version of Jdeveloper IDEbull List of OAF Files Generated and their importancebull Directory Structure of Application Serverbull Deploying OA Framework Applicationsbull OA Framework Personalization Concepts
ndash Personalizationndash Extensionndash Substitution
bull SPELbull JDR(TablePackages)
041723 3
Overview
Oracle Application Framework(OA Framework) is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite
Available to customers for personalization customizations and custom-application development
The OA Framework is a Model-view-controller (MVC) framework built using J2EE (Java 2 Platform Enterprise Edition)technologies
Historical Perspective
Very first HTML screen in oracle apps was created using PLSQL code using PLSQL toolkit
AK Developer repository for storing structure and definition of the WebPagesCurrent Technology OAF with MDS
041723 4
Overview (Cont)
bull OA Framework is based on JSP technology which executes in a servlet engine When the browser issues an OAjsp request for one of the Self-Service pages page processing takes place within a servlet engine which in turn can access the application data as well as user interface metadata from the database
041723 5
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Outlinebull Implementing Server Side Features
ndash Calling PLSQL procedures and functions ndash Error Handling
bull Debugging OA Framework Applications ndash Debugging OA Framework Applications using Jdeveloperndash Logging Infrastructure in OA Framework
bull Finding out the right version of Jdeveloper IDEbull List of OAF Files Generated and their importancebull Directory Structure of Application Serverbull Deploying OA Framework Applicationsbull OA Framework Personalization Concepts
ndash Personalizationndash Extensionndash Substitution
bull SPELbull JDR(TablePackages)
041723 3
Overview
Oracle Application Framework(OA Framework) is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite
Available to customers for personalization customizations and custom-application development
The OA Framework is a Model-view-controller (MVC) framework built using J2EE (Java 2 Platform Enterprise Edition)technologies
Historical Perspective
Very first HTML screen in oracle apps was created using PLSQL code using PLSQL toolkit
AK Developer repository for storing structure and definition of the WebPagesCurrent Technology OAF with MDS
041723 4
Overview (Cont)
bull OA Framework is based on JSP technology which executes in a servlet engine When the browser issues an OAjsp request for one of the Self-Service pages page processing takes place within a servlet engine which in turn can access the application data as well as user interface metadata from the database
041723 5
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Overview
Oracle Application Framework(OA Framework) is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite
Available to customers for personalization customizations and custom-application development
The OA Framework is a Model-view-controller (MVC) framework built using J2EE (Java 2 Platform Enterprise Edition)technologies
Historical Perspective
Very first HTML screen in oracle apps was created using PLSQL code using PLSQL toolkit
AK Developer repository for storing structure and definition of the WebPagesCurrent Technology OAF with MDS
041723 4
Overview (Cont)
bull OA Framework is based on JSP technology which executes in a servlet engine When the browser issues an OAjsp request for one of the Self-Service pages page processing takes place within a servlet engine which in turn can access the application data as well as user interface metadata from the database
041723 5
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Overview (Cont)
bull OA Framework is based on JSP technology which executes in a servlet engine When the browser issues an OAjsp request for one of the Self-Service pages page processing takes place within a servlet engine which in turn can access the application data as well as user interface metadata from the database
041723 5
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Overview (Cont)
bull Browser Supportndash Firefoxndash IE
bull Session ndash ICXSession Timeoutndash ICXLimit Time
041723 6
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Overview(Cont)bull User selects a responsibility
and a functionbull MDS Tables(JDR_)bull XML representation cached
in memorybull Web Bean hierarchy is
instantiated top level bean is pageLayoutBean and then for each component of the page there is a web-bean
041723 7
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OA Framework Features
Advantages bull Enterprise-Grade Performance and Scalabilitybull Improved End User Productivitybull Highly extensible architecturebull Browser Look and Feel (BLAF terminology) for
all applicationsbull Open industry Standards such as XML HTML
Java JSP SQL and Web Services
041723 8
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OA Framework Architecture
bull OA Framework architecture is based on Model-View-Controller (MVC)design pattern
041723 9
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
041723 10
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Components of MVC Architecturebull Model
ndash Data ndash Implemented using Oracle Business Components for Java (BC4J)
bull 1EO (Entity Object)bull 2VO (View Object) bull 3AM (Application Module)
ndash AM is a container for EO VO viewLink and entityAssociationndash AM retention
raquo Get request not retained by defaultraquo Multipage transactions have same rootAM Use retainAM=Yraquo Post request by default it is retainedraquo Originally Bc4j was named jbo(Java Business Objects)
bull Viewndash User Interfacendash Implemented using an Oracle technology called UIX (UIX = User Interface XML)
bull Controllerndash Codendash User actions are handled by the OA Controller (Ex Clicking SUBMIT button)
041723 11
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Components of MVC Architecture(Cont)
041723 12
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Interaction between model view and controller
041723 13
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Entity Object (EO)
bull Entity Object is based on database table or other data source
bull Entity Object contains attributes which represent database columns
bull All insertupdatedelete (DML Operations) transactions go through EO to database
041723 14
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
View Object (VO)
bull Two types1 SQL based2 EO based
bull Represents a query result bull Is used for joining filtering projecting and
sorting your business databull Can be based on any number of entity objects
(EOs) and provides access to EOs
041723 15
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
View Links
bull View link defines a relationship between two view objects that BC4J uses to automatically query and coordinate the destination view object based on the current source view objectView links can be based on an association or a
declarative join relationship between two view objects For example suppose two tables have a master-detail
relationship based on a foreign key The corresponding entity objects are related via an association and view objects based on those entity objects can be related by a view link based on the association
041723 16
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Application Module (AM)
bull Container for VOsbull Every page must have a root application
modulebull Handles transactions
041723 17
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Web Bean Architecturebull Each OA Framework web bean also implements a group of interfaces whose
implementations collectively define the behaviors that the OA Framework adds to the base UIX beans
bull oracleapppsfndframeworkwebuibeansOAWebBean - defines core behavior common to all web beans (for example among other key behaviors this defines the processRequest processFormData and processFormRequest methods that individual beans implement for themselves)
bull oracleappsfndframeworkwebuiOAWebBeanConstants - a collection of constants used in the viewcontroller modules
bull oracleappsfndframeworkwebuibeansOAWebBeanData - defines common personalization definition and data source management behavior
bull oracleappsfndframeworkwebuibeansOAWebBeanContainer - defines the characteristics of all web beans that can act as containers for other web beans For instance all the layout web beans implement this interface Only beans which implement this interface can have associated controllers
bull OAWebBeanltTypegt - defines a beans inherent behaviors within the context of the OA Framework
bull For example the OATableBean implements the oracleappsfndframeworkwebuibeansOAWebBeanTable interface
041723 18
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Web Bean Architecture
041723 19
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
MDS ndash Meta Data Servicebull Meta- In technical world meta work symbolizes dictionary Think of a web page
broken into small units which are fields buttons list boxes These small individual units[fields buttons etc] are stored in a dictionary in the database These units when combined together they become a webpage that gets rendered on the browser
bull Data- Those meta pieces are not stored as binary files but as data in tables Those tables begin with jdr for example JDR_ATTRIBUTES JDR_ATTRIBUTES_TRANS JDR_COMPONENTS amp JDR_PATHS The definition and relationship of each fieldregioncomponent is stored in these JDR tables OA framework reads that data when you request a page The page structure is then built based on MetaData
bull Service- Meta Data is available as a service(plain service not webservice) The data is there in JDR tables but all such data has to be co-related all fields regionsbuttons etc have to be clubbed into a meaningful manner to make a web page You can say that MDS provides service to store amp return page definitions MDS collates those definitions in componentsfields in a meaningful manner to build a page
041723 20
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
View in MVC Architecture
041723 21
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Controller (CO) in MVC Architecture
Responds to user actions and directs application flowModel objects like EO and VO cant be accessed directly from
theController Class except AMContains methods such as
processRequest(OAPageContext OAWebBean) Fires when OAF page loads for the first time Can create all UI components
processFormData(OAPageContext OAWebBean) User makes changes on the pages and posts back the page Does validations and moves changed values to VOEO cache Calls validation methods
processFormRequest(OAPageContext OAWebBean) Fires when user submits the page(Ex clicking SUBMIT button) Gets called after PFD returns without raising any exceptions place to do database commits
041723 22
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Controller Class
041723 23
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Onion Architecture of OA Framework
bull OA Framework can be extracted into a series of concentric layers like an onion
bull Each layer only ldquoknowsrdquo about the layers below it
041723 24
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
MVC Architecture
041723 25
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Key Terms Installation
Setting up E-BS from distribution media to the host OS
Configuration Process of setting proper parameters needs SME from various business domains
PersonalizationProcess of declaratively altering pages UI to meet business needs
Extension Process of altering pages functionality programmatically(using PLSQL java)
Customization Process of creating new pages
Deployment Process of moving personalizationextensioncustomization from development instance to testprod instance
041723 26
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
JDeveloper Structure (Cont)
041723 27
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Finding out the right version of Jdeveloper IDE
ATG Release 121 Version JDeveloper 10g Patch
121 (Controlled Release - only included for completeness) Patch 7315332 10G Jdev with OA Exten
sion ARU for R121 (Controlled Release)1211 (rapidInstall or patch 7303030) Patch 8431482 10G Jdeveloper with OA
Extension ARU for R12111212 (patch 7303033 or patch 7651091) Patch 9172975 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R12121213 (patch 9239090 or patch 8919491) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R121312131 (patch 11894708) Patch 9879989 10G JDEVELOPER WITH
OA EXTENSION ARU FOR R1213
041723 28
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF File Types amp ExtensionsFile Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
PG File
Page File ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
CO File
Controller File
ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
Java Middle tier
RN File
Region ltclientNamegtoracleappsfndltAPPL_TOPgtwebui
XML DB
AM Application Module
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
EO Entity Object
ltclientNamegtoracleappsfndltAPPL_TOPgtschemaserver
XMLJava
Middle tier
VO View Object
ltclientNamegtoracleappsfndltAPPL_TOPgtserver
XMLJava
Middle tier
041723 29
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF File Types amp Extensions(Cont)
041723 30
File Types
Description
Java Package Structure Files Generated
File Stored in DBMiddle Tier
Jws Java Workspace
NA Jws NA
jpr Java Project
NA jpr NA
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects
bull CheckBoxes bull Pop Listsbull Simple List of Valuesbull Exception Handlingbull Advanced Tables
041723 35
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects- Checkbox
041723 36
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects- Pop Listsbull Step 1 Create a view object to be used by your poplist
Per the OA Framework Package File Directory standards you should create this object in a poplistserver package
bull Step 2 Create an item whose Item Style is messageChoice Assign an ID in accordance with the OA Framework Package File Directory standards
bull Step 3 Apply an attribute set as required by the OA Framework View Coding Standards
bull Step 4 Specify the Prompt (if not specified by the attribute set)
bull Step 5 Specify the view object that you created in Step 1 set the Picklist View Instance property (for example
PoplistVO1) In this case remember to add your poplist view object to the root UI application module for the page (or application module for the shared regions) that will include this poplist
bull Step 6 Map the poplist to its view object display and developer key attributes Set the Picklist Display Attribute to the view object attribute whose value you want to display in the poplist Set the Picklist Value Attribute to the view object attribute whose value you want to use as the internal developer key To use our lookup code example above we would set the Picklist Display Attribute to Meaning and the Picklist Value Attribute to LookupCode
bull Step 7 (optional) If the poplist should readwrite its selected value from an underlying data source set the View Instance and View Attribute values accordingly as you would for any other data entry component The View Instance value should not be same as the Picklist View Instance value
041723 37
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects- Simple List of Values
041723 38
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects- Advanced Tables
041723 39
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OAF UI Objects- Partial Page Rendering
bull example of PPR refresh behavior for the HideShow component
041723 40
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Dialog Pages
bull Messaging can be introduced into application flows when an Error Information Warning Confirmation or Processing Message needs to be displayed
bull There are two basic kinds of messaging flows Inline Message - The message appears inline on a
page around the region item that requires attention The inline message is also repeated in the message box on top of the page
Dialog Page - The message appears on its own dialog page in the flow
041723 41
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Dialog Pages
041723 42
Warning dialog page
Example Redirect to a Basic Warning PageYou can include the following code example in your controller processFormRequest method to redirect to a basic warning page
OAException descMesg = new OAException(FND FND_CANCEL_WARNING)OAException instrMesg = new OAException(FND FND_CANCEL_ALERT)String okUrl = APPS_HTML_DIRECTORY + OAjspOAFunc=FND_REQUISITIONS_PAGEString noUrl = APPS_HTML_DIRECTORY +OAjspOAFunc=FND_REQUISITIONS_PAGEampretainAM=YpageContextredirectToDialogPage(OAExceptionWARNING descMesg instrMesg okUrl noUrl)
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Dialog Pages
bull The short hints render immediately below the item as shown in Figure 1 (see the Purchase Order field)
bull The long hints render as a selectable information icon next to the item (see the Created poplist in Figure 1) When the user selects the information icon a dialog window opens as shown in Figure 3 below
43
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Calling PLSQL procedures and functions
According to Oracle Standards whenever it is possible we should use View Objects for Database operation but in some situations we have to call PLSQL Procedures and Functions using JDBC
1 Create a JDBC CallableStatement with the PLSQL block containing the stored procedure invocation
2 Register OUT Parameter if any3 Bind any variables4 Execute the statement 5 Retrieve the values of any OUT parameters if any 6 Close the statement
041723 44
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Error Handling bull The OA Framework handles three basic types of exceptions
general validation and severendash General Exception Errors in the BC4J framework are handled by
throwing an implicit (runtime) exception of the type oraclejboJBOException
ndash Validation Exceptions Validation exceptions are thrown from entity objects and view objects for both row and attribute level validation failures 1048697
bull oracleappsfndframeworkOAAttrValException - specialization of OAException used for attribute level validation failures
bull oracleappsfndframeworkOARowValException - specialization of OAException used for row (entity) level validation failures
ndash Severe Exceptions Severe (or fatal) exceptions include unexpected system-level errors (like a NullPointerException) and selected JBOExceptions like NoDefException You can also deliberately throw a severe exception in your code
041723 45
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Directory Structure of Application Server
041723 46
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Deploying OA Framework Applications
bull The Folder Structure for xml pages and respective Controllers are as below
041723 47
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdserver
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebui
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Deploying OA Framework Applications
bull This was the development of files in our localhost mcbull The next step will be to move the files into the JAVA_TOP
hometempel10cdev35applxxtmgjavatempeloracleappsxxtmgpdmsmsdbull Just drag and dropped the msd folder from local mc to Apps Java top
pathbull Importing the XML filesbull Run the import scripts for the PG and LOVRn filesbull The import command is
import
DRUP6jdevhomejdevmyclassestempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPGxml
-username ltDB user namegt -password ltDB passwordgt -rootdir
DRUP6jdevhomejdevmyprojects -dbconnection (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lthost IPgt)(PORT=ltportnogt))(CONNECT_DATA=(SID=ltSIDNAMEgt)))
041723 48
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Deploying OA Framework Applications
bull Registering the Main Page as a functionbull Enter the Function Name User Function Name and
Descriptionbull Enter Properties (Tab) Type as SSWA jsp function In
Web HTML(tab)bull Enter the Main xml page path
OAjsppage=tempeloracleappsxxtmgpdmsmsdwebuiMultiSpeedPG (Donrsquot
append xml with the path it results in error) bull Attach the function with a menu and then run from
the respective responsibility041723 49
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
OA Framework Personalization Concepts
bull Personalization refers to the ability to declaratively alter the UI to suit user or business needs
bull Extension refers to the ability to programmatically extend an applications functionality
bull Substitution refers to add adding additional View Object Attributes it is done by defining a substitution so your new view object is used in place of the parent at runtime
041723 50
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Personalization
bull Profile options ndash persnoalize Self-Service Defnndash FNDpersonalization region link enablendash Disable Self-Service personal041723 51
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Personalization(Cont)bull How it is done
ndash ldquoPersonalize Pagerdquo linkndash Functional-Administration responsibilityndash ImportExport
bull Common Typesndash Changing labels promptsndash Hiding or adding table columnsndash Re-ordering UI elementsndash Adding buttons labels flexfieldsndash Adding regions
041723 52
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Personalization(Cont)
bull Involve Some Programmingndash Controller
bull Instantiate custom VObull Add UI elements which cant be done via personalization
bull VO Extensionndash This is needed when value to displayed to the user
on the screen is not available in underlying VO
041723 53
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
Partial Page Rendering and SPEL
bull PPR Ability to partially render the pagebull SPEL Simplest Possible Expression Languagebull $oaxxCustomerVOisNameReadOnlybull $oaFunctionSecurityNAME_READ_ONLY
041723 54
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
JDR Tables
041723 55
JDR_PATHS Stores document paths packages and there parent child relationshipPrimary Key PATH_DOCID
JDR_COMPONENTS Stores components on documents and OA Framework pagesPrimary Key COMP_DOCID COMP_SEQ
JDR_ATTRIBUTES Stores attributeproperties of components on documents and OA Framework pagesPrimary Key ATT_COMP_DOCID ATT_COMP_SEQ ATT_SEQ
JDR_ATTRIBUTES_TRANS Stores translated attribute values of document components or OA framework pagesPrimary Key ATL_COMP_DOCID ATL_LANG ATL_COMP_REF ATL_NAME
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
041723 56
Query1select distinct path_type from JDR_PATHSResultDOCUMENT (for pages and regions)PACKAGE (for packagesdirectories path)
Query2select from JDR_PATHS where path_name = HelloWorldPG -- Get familiar with the table structure path_type will be DOCUMENT for this record
Query3select from JDR_PATHS where path_docid = ltpath_owner_docid from query2gt-- This record will point to the parent packagedirectory
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
041723 57
Query4select from JDR_COMPONENTS where comp_docid = ltpath_doc_idgt-- This will query components of the DOCUMENT There are no records for a PACKAGE type
Query5select from JDR_ATTRIBUTESwhere att_comp_docid = ltpath_doc_idgtand att_comp_seq = ltsequence id of component whose properties you wish to checkgt
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
041723 58
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
jdr_utilslistdocuments(learningoracleapps TRUE)
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
jdr_utilsprintdocument(p_document =gt learningoracleappsfndwebuiDeptPG)
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-
JDR Packagesbull JDR_CUSTOM_INTERNALbull JDR_DOCBUILDERbull JDR_MDS_INTERNALbull JDR_UTILS
bull SELECT FROM ALL_OBJECTS WHERE object_name like JDR_ AND OBJECT_TYPE IN (PACKAGE)
041723 63
- Oracle Application Framework
- Outline
- Slide 3
- Overview
- Overview (Cont)
- Slide 6
- Overview(Cont)
- OA Framework Features
- OA Framework Architecture
- Slide 10
- Components of MVC Architecture
- Components of MVC Architecture(Cont)
- Interaction between model view and controller
- Entity Object (EO)
- View Object (VO)
- View Links
- Application Module (AM)
- Web Bean Architecture
- Slide 19
- MDS ndash Meta Data Service
- View in MVC Architecture
- Controller (CO) in MVC Architecture
- Controller Class
- Onion Architecture of OA Framework
- MVC Architecture
- Key Terms
- JDeveloper Structure (Cont)
- Finding out the right version of Jdeveloper IDE
- OAF File Types amp Extensions
- OAF File Types amp Extensions(Cont)
- Slide 31
- Slide 32
- Slide 33
- Slide 34
- OAF UI Objects
- OAF UI Objects- Checkbox
- OAF UI Objects- Pop Lists
- OAF UI Objects- Simple List of Values
- OAF UI Objects- Advanced Tables
- OAF UI Objects- Partial Page Rendering
- Dialog Pages
- Dialog Pages
- Slide 43
- Calling PLSQL procedures and functions
- Error Handling
- Directory Structure of Application Server
- Deploying OA Framework Applications
- Deploying OA Framework Applications
- Slide 49
- OA Framework Personalization Concepts
- Personalization
- Personalization(Cont)
- Slide 53
- Partial Page Rendering and SPEL
- JDR Tables
- Slide 56
- Slide 57
- Slide 58
- Slide 59
- Slide 60
- Slide 61
- Slide 62
- JDR Packages
-