OAF Training

63
Oracle Application Framework 05/21/22 1 By Sridhar Yerram

Transcript of OAF Training

Page 1: 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
Page 2: OAF Training

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
Page 3: OAF Training

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
Page 4: OAF Training

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
Page 5: OAF Training

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
Page 6: OAF Training

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
Page 7: OAF Training

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
Page 8: OAF Training

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
Page 9: OAF Training

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
Page 10: OAF Training

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
Page 11: OAF Training

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
Page 12: OAF Training

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
Page 13: OAF Training

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
Page 14: OAF Training

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
Page 15: OAF Training

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
Page 16: OAF Training

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
Page 17: OAF Training

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
Page 18: OAF Training

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
Page 19: OAF Training

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
Page 20: OAF Training

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
Page 21: OAF Training

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
Page 22: OAF Training

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
Page 23: OAF Training

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
Page 24: OAF Training

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
Page 25: OAF Training

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
Page 26: OAF Training

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
Page 27: OAF Training

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
Page 28: OAF Training

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
Page 29: OAF Training

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
Page 30: OAF Training

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
Page 31: OAF Training

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
Page 32: OAF Training

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
Page 33: OAF Training

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
Page 34: OAF Training

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
Page 35: OAF Training

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
Page 36: OAF Training

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
Page 37: OAF Training

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
Page 38: OAF Training

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
Page 39: OAF Training

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
Page 40: OAF Training

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
Page 41: OAF Training

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
Page 42: OAF Training

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
Page 43: OAF Training

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
Page 44: OAF Training

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
Page 45: OAF Training

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
Page 46: OAF Training

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
Page 47: OAF Training

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
Page 48: OAF Training

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
Page 49: OAF Training

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
Page 50: OAF Training

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
Page 51: OAF Training

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
Page 52: OAF Training

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
Page 53: OAF Training

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
Page 54: OAF Training

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
Page 55: OAF Training

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
Page 56: OAF Training

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
Page 57: OAF Training

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