17
would have to code, debug, and test by hand. By leveraging BC4J's combination of tested code and
productivity tools inside the Oracle JDeveloper IDE, development teams can focus immediately and only, on
writing business logic and user interfaces instead of on designing, coding, and debugging handcrafted
application "plumbing" code.
The OA Framework View is implemented using UI XML (UIX). UIX uses XML to describe the components and
hierarchy that make up an application page. UIX also provides runtime capabilities to translate that metadata
into HTML output so that it can be shown on a Browser or a mobile device. The metadata used to describe the
UI is loaded into a database repository, called Meta Data Services (MDS), at deployment time and optionally at
design time as well.
User- and application-driven interactions are handled by the OA Controller, which is a pure Java class
implementation. Simple page flows (such as a 2-step transaction) are implemented directly into the Controller
object; others are implemented using Oracle Workflow. In a future release, business flows will be implemented
in a declarative manner similar to that used to define model and view objects.
Key Features
Integrated Development Environment
Oracle9i JDeveloper with OA Extension (OA Extension) is a world class J2EE-based integrated development
environment. Oracle customers and third party consultants have access to the same tools used by Oracle E-
Business Suite developers to build complementary applications as well as extend the Oracle E-Business Suite
applications. OA Extension provides features such as easy-to-use wizards, a hierarchy navigator, and a
property sheet. These features enable developers to populate the metadata for declarative application
business logic and user interfaces. JDeveloper offers a wealth of productivity tools such as the UML modeler,
code coach, integrated debugger, local testing environment and documentation generator.
With the OA Extension software comes a wealth of documentation and learning aids including a Developer's
Guide, Javadoc, Online Help, a Sample Library and a rich set of Tutorials.
Durable Personalizations and Extensions
Personalization is about declaratively tailoring the UI look-and-feel, layout or visibility of page content to suit a
business need or a user preference. Examples of personalization include:
Tailoring the color scheme of the UI.
Tailoring the order in which table columns are displayed.
Tailoring a query result
Extensibility is about extending the functionality of an application beyond what can be done through
personalization. Examples of extensibility include:
Adding new functional flows.
Extending or overriding existing functional flows.
Extending or overriding existing business logic.
OA Framework is designed with durable personalization and extensibility capabilities, achieved through the
declarative architecture and the underlying object oriented implementation.
Declarative UI component definitions are stored in the form of metadata in a database repository.
Personalizations are translated into offsets from the base metadata definition and stored separately. At
runtime, all applicable personalization metadata is loaded from the repository and layered over the base
metadata definition to produce the net effect. Product upgrades and patching only affect the base metadata
definition so that customer personalizations are preserved and continue to function properly.
Personalizations can be implemented at several levels by one of three authors: application developer,
application administrator and end user.
An end-user can create a personalization to be applied to specific user interface components that is only
visible in the context of that authoring user. For example, an end user may save an employee search result
sorted by manager and hide the employee's date of birth column. Once this personalized view is saved under
a given name, the user can retrieve that view again in the future by that name.
Application administrators and application developers have the flexibility to tailor the user experience at several
levels. They can author personalizations that affect all users, users of a particular locale, users of a particular