Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
com
Agenda
OA Framework Extensions Overview OA Framework Extension vs Personalization OA Framework Extension Examples Some Tips and Techniques Best Practices Questions
OA Framework Overview
OA Framework is a technology stack, which allows extensions to the self-service or html style pages within Oracle E-Business Suite. It is based on the industry standard model-viewcontroller (MVC) architecture and includes the following technologies/tools: UI XML (UIX), Business Components for Java (BC4J), Application Object Library (AOL), Meta Data Service (MDS), and Jdeveloper 9i or 10g. OA Framework was used to build the html web pages in Oracle E-Business Suite for both Release 11i and Release 12, and it is the Oracle recommended technology for customizing or extending the Oracle EBusiness Suite.
FND:OA:Enable Defaults
Allows defaulting through personalizations to take place
Personalizations vs Extensions
Personalizations do not involve the use of JDeveloper Personalizations are for simple modifications to the web pages Personalizations can be accomplished by functional users Extensions involve using Jdeveloper Extensions often involve the use of Personalizations
Personalizations vs Extensions
Most common personalizations are rendering, read only, required, and prompt Custom Views are also considered personalizations and allow changing the display of table data for specific responsibilities Basic Steps for a personalization: Click on Personalize page link, find item, click on personalize icon for the item, select item property to modify, and modify appropriate level with new setting
Personalizations vs Extensions: Flexfields Personalizations can be used to add flexfields to a page Personalizations can specify which segments of a flexfield to display (independent of the flexfield definition) Extensions are needed to default values in a flexfield Extensions are needed to make specific segments of a flexfield conditionally mandatory, independent of the flexfield definition
Personalization Example
Personalization Example
Personalization Example
Examples of setting different properties
Personalization Example
Setting default value
Personalization Possibilities
Personalization Possibilities
Personalization Possibilities
Through an Extension
When field is not part of VO Extend VO to add extra field and modify the sql statement of the VO Add a personalization to display the new field
Validation can be done on either the field level or record level Field level validation: insert custom code in setter of the specific field Record level validation: insert custom code in validateEntity() method
Check for an Apply or Save button action Get a handle on the field Check the value against an expected value If necessary throw an OAException Call super.processFormRequest
Mainly used when there is not an entity object to extend (e.g. when VO is based on OAPlsqlViewRowImpl)
processRequest method:
Check page parameters for new values Populate line type and item class with new values if they exist If item class changed, refresh the flexfield
Steps are:
Define variable to hold query Look for VO, if it does not exist, create it Set where clause parameters Execute query Get result
Writes data to table fnd_log_messages Can restrict messages to a particular module for ease of troubleshooting
Best Practices
Naming convention:
xxabc/oracle/apps/po/./webui/xxabcOrderCO.java Exception is when using ACP (Oracles tool for migration) oracle/apps/xxabc/po//webui/xxabcOrderCO.java
Root Application Module should not be extended AM Retention: only if next page needs transaction information from first, or if the user may be switching back and forth between pages, not if 2 pages are independent
Best Practices
View Object Performance: Use different VOs for different purposes, dont use VOs with dynamic where clauses if possible View Object Classes: No need to generate View Object Class if you have no custom code, good to generate VORow class for performance purposes. View Object Setter/Getter: use set<AttributeName>, not setAttribute(index), for performance reasons
Reality Sets In
Jdeveloper can be quirky
Example of clicking Next, then Back, to be able to update a property Sometimes its necessary to close Jdeveloper and reopen to see latest changes Sometimes its necessary to modify files on file system and then reopen in Jdeveloper
Oracle does not always follow its own standards (e.g. many examples of OAPlsqlViewRowImpl, which is deprecated) Though Oracle does not encourage extending controllers, this may be the only way to accomplish certain changes
References
Oracle Application Framework Personalization Guide, Release 12 OA Component Reference Oracle Applications Framework Developers Guide, Release 12.1.2 Oracle Tutorials C:\<JDEVinstall>\jdevdoc\index.htm (after you have installed Jdeveloper) Harnessing the Full Power of OA Framework: Personalizations in the E-Business Suite
http://www.ncoaug.org/NCOAUG%20Training%20Day%20Feb% 202010/OAUG2010v3.pdf
Questions
carrollb@tusc.com
http://www.linkedin.com/pub/bolton-carroll/1/a87/243
www.tusc.com http://www.roltasolutions.com/