Business Cases
Business Cases
But then Oracle releases OA Framework Release 5.7 and an entire new world of customizing and
extending Apps opens up. So you start investigating the possibilities but with a shock you soon
you realize that your current skills toolbox is inadequate for this brave new world; you will need to
master a couple of new tools to make it here.
Java, XML, J2EE, OAF, Abstraction, Controller, Model, BC4J, UIX, Instantiation, Class, PPR,
Objects, Message, MVC, Method, Encapsulation, Polymorphism…
Poly What?
Is there another collection of words that causes more anxiety or trepidation to an Oracle E-
Business Suite developer, OK maybe “Fixed Assets” or “It’s just a small change…”, but that’s
another paper? Having used a procedural language (PL/SQL) to do the bulk of my E-Business
Suite programming, the notion of finally applying all those Object Orientated (OO) programming
concepts was to say the least a daunting prospect, BUT...
DON’T PANIC!!!
Here’s the good news folks; “It’s not that hard”, it might sound and look very intimidating but like
any new technology it only takes some time, effort and lots of coffee, no pun intended. And before
you know it, you’ll find yourself discussing F-bounded polymorphism around the water cooler with
those O so cool Java developers from upstairs.
“’Self Service User Interface’ and new E-Business Suite modules are now J2EE applications
developed using JDeveloper.”
Source: Oracle Forms - Oracle Reports - Oracle Designer Statement of Direction - September
2005
There can be no clearer indication of Oracles direction concerning the Oracle E-Business Suite
technology stack, all new E-Business Suite modules will be developed as J2EE applications.
Many of you may also have realized that a substantial number of new enhancements to current
modules are developed on the OA Framework at the expense of oracle Forms.
So it comes down to this, if you want to stay ahead of the pack and continue to offer your clients
the most effective and cutting edge solutions, you and your company will have to master the
Oracle Applications development and deployment platform for HTML-based business
applications; Oracle Applications Framework (OAF); The NEW Frontier.
• Base library classes: A complete set of highly integrated Java library classes that are
easily extensible and flexible, this base set of framework libraries contain all the
foundation code or “plumbing” for your application.
• A development method: A set of steps that you can use to create applications with the
framework libraries.
• A development tool: JDeveloper with OA Extension, Integrated Development
Environment (IDE) that helps you complete the steps in the development method.
The OA Framework implements the J2EE MVC (Model, View and Controller) architectural
pattern, which separates an application's data model, user interface, and control logic into three
distinct components so that modifications to one component can be made with minimal impact to
the others:
The Model layer of the J2EE MVC architectural pattern is implemented in the OA Framework by
using the Oracle Business Components for Java (BC4J). BC4J leverages Java Database
Connectivity (JDBC) to provide an optimized and scalable Object-Relational mapping of
information stored in the Oracle Database.
The Controller layer processes and responds to events, typically user actions, and invokes
changes on the model and perhaps the view; the OA Controller is a pure Java class
implementation.
The integration of these three components enables the developer to declaratively define an entire
OA Framework application without needing to write any custom Java code. Although most new
applications and customizations will require the developer to write a certain amount of code, the
developer is “protected” from the majority of the “plumbing” code required to make the application
function. For example; to create an OA Framework page with the famous “Hello World” display, a
developer does not need to understand or write a single line of Java code.
When the browser issues a request for a new page, the OA Framework reads the page's
declarative metadata definition stored in XML files or the MDS database repository, to create the
web bean hierarchy. For each bean with an associated UI controller, the OA Framework calls
code that you write to initialize the specific bean on the HTML page. When page processing
completes, the OA Framework hands the web bean hierarchy to the UIX framework so it can
generate and send HTML code to the web browser.
When the browser issues a form submit (if, for example, the user selects a submit button), the OA
Framework recreates the web bean hierarchy if necessary, and then calls any event handling
code that you've written for the page beans. When page processing completes, the page HTML is
generated again and sent to the browser.
• Configuration: using pre-built features to fine-tune the application to match the business
and deployment practices of a particular customer.
• Personalization: declaratively tailoring the user interface (UI) look-and-feel, layout or
visibility of page content to suite a business need or a user preference.
• Extensibility: extending the functionality of an application, beyond what can be done
through personalization.
• Interoperability: interfacing Oracle Applications with third party applications and service
providers.
Personalization
Personalization is to the OA Framework what the CUSTOM library and recently Forms
Personalization is to professional user Forms. Personalization refers to the ability to declaratively
tailor the layout, look and feel of the user interface to suit a business need or user preference, for
example:
Levels of Personalization
Our focus will be on the Oracle Applications Administrator user group, the Oracle Applications
Administrator has six distinct personalization levels available.
Personalization
Precedence
Figure 2: Admin Level Personalization Precedence
In this example we will be changing the label of the “Item” column on the iProcurement Shopping
Cart page.
1. Click on the table component Personalize message to launch the Page Hierarchy
Personalization Page:
2. In the personalization user interface, the layout of the table is displayed in a hierarchy
table. The Tables Hierarchy displays nodes for all the structures that make up the table.
Find the column node for the Item column and select the Personalize icon:
All declarative User Interface components are stored either in XML files, in a format defined by
MDS (Meta Data Services) Schemas, or in the MDS repository tables. When a personalization is
created through the OA Personalization Framework it is added on top of the base product meta
data. The personalization does not overwrite the existing base product UI and are therefore
preserved during upgrades and patches. The MDS repository is supported by the JDR_UTILS
PL/SQL package, used to query and maintain the repository:
SQL>
Migrating Personalization’s
As mentioned before, all personalization pages are stored in either XML files or the MDS
repository tables. By exporting the meta data into XML files on the file system, you can easily
move the files to another system and import them to a new database instance. Oracle provides
us with the “Functional Administrator” responsibility which features a simple UI that lets you
export meta data to XML files, and import XML files into a MDS repository. This allows you to
perform all personalization on a test system and when satisfied with the changes, simply export
the personalizations from the test system and import into the production instance.
Extensibility
Extensibility refers to the ability to extend the functionality of an application, beyond what can be
done through personalization, for example:
The OA Framework was designed with durable extensibility capabilities, meaning extensions
made to the OA Framework are preserved during upgrades and patches. The preservation of
these changes is made possible by a BC4J framework feature called substitution. Substitution
allows you to replace all occurrences and usages of the original component in the existing
In this example we will be adding the Invoice Currency Code column to the Supplier Name LOV
region.
1. Analyze the page and its regions to determine which view objects to extend. Launch the
LOV page and access the Personalization UI:
C:\Ora9\jdev\jdevhome\jdev\myprojects>SET JDEV_USER_HOME=C:\Ora9\jdev\jdevhome\jdev
C:\Ora9\jdev\jdevhome\jdev\myprojects>SET EXP_OBJECT=/oracle/apps/icx/lov/webui/ReqSupplierLovRN
C:\Ora9\jdev\jdevhome\jdev\myprojects>C:\Ora9\jdev\jdevbin\jdev\bin\export.bat
/oracle/apps/icx/lov/webui/ReqSupplierLovRN -rootdir C:\Ora9\jdev\jdevhome\jdev\myprojects -mmddir
C:\Ora9\jdev\jdevhome\jdev\myhtml\OA_HTML\jrad -username apps -password apps -dbconnection
"(description = (address_list = (address = (community = tcp.world)(protocol = tcp)(host
=dbserver)(port =1521)))(connect_data = (sid = DEV)))" -jdk13 –validate Exporting
/oracle/apps/icx/lov/webui/ReqSupplierLovRN
Export completed.
C:\Ora9\jdev\jdevhome\jdev\myprojects>
5. Find the package (i.e. directory) containing the ReqSupplierVO.xml file on the Apps
server under the $JAVA_TOP directory:
/orahome2/appldev/devcomn/java/oracle/apps/icx/lov/server/ReqSupplierVO.xml
ZIP package up, move to client machine running JDeveloper and UNZIP file under
$JDEV_USER_HOME/myprojects and $JDEV_USER_HOME/myclasses directory. The
ReqSupplierVO.xml file contains the meta data information for the View Object that forms
the bases of the LOV.
7. Copy the SQL statement from the seeded View Object and modify to include the new
Invoice Currency Code column. In your new Business Componenents package, create a
View Object that extends the parent View Object using the modified SQL statement:
9. The BC4J runtime does not typically read the project's .jpx file. To make the runtime read
the .jpx file add the string “-Djbo.project=Name” to the projects java options:
C:\Ora9\jdev\jdevhome\jdev\myprojects>SET JDEV_USER_HOME=C:\Ora9\jdev\jdevhome\jdev
C:\Ora9\jdev\jdevhome\jdev\myprojects>SET JPX_FILE=OAProject.jpx
C:\Ora9\jdev\jdevhome\jdev\myprojects>C:\Ora9\jdev\jdevbin\jdev\bin\jpximport
C:\Ora9\jdev\jdevhome\jdev\myprojects\OAProject.jpx -username apps -password apps -
dbconnection "(description = (address_list = (address = (community = tcp.world)(pro
tocol = tcp)(host = dbserver)(port =1521)))(connect_data = (sid = DEV)))"
Imported document : /oracle/apps/icx/lov/server/customizations/site/0/ReqSupplierVO
Import completed successfully
C:\Ora9\jdev\jdevhome\jdev\myprojects>
12. Access the Regions Personalization UI and create a new node to hold the additional
column:
Custom Development
With OA Framework Release 11.5.10, Oracle has extended access and benefits of the OA
Framework development environment to all Oracle E-Business Suite customers. All E-Business
Suite developers and consultants now have access to the same tools used by Oracle E-Business
Suite developers to build complementary applications as well as e xtend Oracle E-Business Suite
applications.
Although the OA Framework development and deployment platform protects developers from
designing, coding, and debugging handcrafted application "plumbing" code, developers will still
have to master the fundamentals of programming in Java.
For a PL/SQL programmer, Java is not a “normal” skill, it is arguably more complex and database
access is not as natural as with PL/SQL. Understanding Object-Oriented Programming Concepts
is the key to becoming a competent Java programmer, only when you fully grasp the fundamental
concepts should you be concerned about language basics like variables, operators and control
flow statements.
The following resources should assist you to gain the necessary Java programming skills to
effectively utilize the OA Framework development and deployment platform.
You do not need to be a Java ACE to successfully use the OA Framework development
platform, but you must understand and be able to apply the fundamental concepts of the
Java programming language.
The sheer amount of information available on OA Framework makes it difficult to know where and
how to start. Follow these 4 easy steps to get up and running in no time:
1. The JDeveloper 9.0.3 with OA Extensions (JDev) software is distributed via Metalink by
means of a patch. First determine the correct JDev patch for your development system,
you do this by checking your OA Framework version, enter the string
http://host:port/OA_HTML/OAInfo.jsp in your web browser:
2. Once downloaded, follow the installation steps set out in the OAEXT_README.txt
document, located in the root directory of your patch file.
3. The JDeveloper patch includes a very comprehensive documentation library, after
installation you can locate the documentation index here:
JDEV_INSTALL_DIR/jdevdoc/index.htm
4. Follow the “You are Customer, Consultant or Support Representative” in Chapter 1:
“Setting Up your Development Environment” of the OA Framework developers guide,
make sure you complete all the setup steps successfully.
Congratulations you have successfully installed and configured your new development tool, now
it’s time to get into the documentation. I suggest you study Chapters 1, 2 and 3 of the OA
Framework developers guide; this will present you with a detailed introduction to OA Framework
development concepts. Chapter 8 of the developers guide covers OA Framework standards and
guidelines. Although not everybody’s favorite part of the manual, it is vital to adhere to these
standards and guidelines when developing new components and extensions. Failure to do so
may cause unexpected errors when patching or upgrading the OA Framework technology stack.
Bibliography:
Oracle Corporation 2005, Oracle Applications Framework ToolBox Tutorial Release 11.5.10
Oracle Corporation 2005, Oracle Applications Framework Developer's Guide
Oracle Corporation 2005, Oracle Applications Framework Personalization Guide
Dr. Avrom Roy-Faderman, Peter Koletzke, Dr. Paul Dorsey 2004, Oracle JDeveloper 10g
Handbook, Oracle Press
Bulusu Lakshman 2002, Oracle and Java Development, SAMS
Herbert Schildt 2001, The Complete Reference JAVA 2, Osborne
Oracle Corporation 2005, OA Framework Personalization and Extensibility Guide, viewed 22
August 2006, Metalink Doc ID: 236618.1
Oracle Corporation 2006, Oracle Application Framework Support Guidelines for Customers,
viewed 15 August 2006, Metalink Doc ID: 275846.1
Acknowledgements:
David Grant
Tessa Lillie
Michelle Pienaar