Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering...
Transcript of Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering...
![Page 1: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/1.jpg)
<Insert Picture Here>
Mastering Customization and Personalization
in Oracle ADF and WebCenter Applications
Frank Nimphius
Senior Principal Product Manager
Oracle Application Development Tools
![Page 2: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/2.jpg)
“It is not the strongest of the species that
survives, nor the most intelligent that
survives. It is the one that is the most
adaptable to change.”
Charles Darwin
![Page 3: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/3.jpg)
• Rebranding
– Change look and feel to match company or market identity
– Design time
– By Developer, Analyst or UI Designer
• Personalization
– Runtime
– By end user
• Seeded Customization
– Design Time
– By customizer
– Using JDeveloper Customization Role
Types of customization
3
![Page 4: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/4.jpg)
Application Development Framework (ADF)
• Provides
– ADF Faces Rich Client
– Data Visualization Components
– ADF Controller
– ADF Binding Layer
– ADF Business Components
• Metadata on all Tiers
– XML is King
• Benefits of metadata frameworks
– Customizable
– Declarative development
– External administration
![Page 5: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/5.jpg)
• The framework for handling application
customizations
• Uses a single base application
• Applies customizations on top of the base.
• Customizations are created– At design time using JDeveloper (seeded customization)
– At runtime by users (personalization, Web Center)
• Customizations are stored in a metadata repository
and merged with base metadata at runtime
• Base application can be updated without affecting
customization
Oracle Metadata Services (MDS)
![Page 6: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/6.jpg)
How customization is applied
• Customizations can be applied
– for all users
• site level customizations
– Dynamically based on programmatically defined criteria
• who the user is
• what organization users belong to
• Current day time
• … just anything you can do in Java
• Customizations are a set of instructions that change
the underlying metadata
![Page 7: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/7.jpg)
What is getting customized
• ADF Business Components
• ADF Model
• ADF Controller
• ADF View
• ADF Library Artifacts
![Page 8: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/8.jpg)
Metadata services customization
Base Document
User1’s User Customization Laura’s Page
John’s Page
Site Customization
+
+
MDS Customization Engine
MetadataRepository -
File or DB
No User
Customization
![Page 9: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/9.jpg)
Product Demonstration
Personalization with MDS
![Page 10: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/10.jpg)
Let's Get Technical
![Page 11: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/11.jpg)
Change Persistence Framework
• The foundantion of ADF application customization
and end user personalization
• Persists changes for ADF Faces components and
restores them
• User personalization based on end user interaction
– Changes to an attribute value
– Addition or removal of a child component
– Re-ordering of children within the same parent
– Move of child component to a different parent
![Page 12: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/12.jpg)
Change Persistence Framework
• Changes are persisted as
• Component changes in the session
• Types of Change Persistence
– Implicit
• Attribute changes are handled by ADF Faces runtime code
• Applies to component specific list of attributes
– Explicit
• Developer could explicitly add any attribute changes to the
Change Manager
• For example in response to an event from a different
component
![Page 13: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/13.jpg)
Change Persistence API
• Base packages
– org.apache.myfaces.trinidad.change
– oracle.adf.view.rich.change
• Change Manager
– Accessible from AdfFacesContext
– SessionChangeManager
– MDSDocumentChangeManager
• Changes can be applied anywhere in the JSF
lifecycle
– UI tree must be available
– Create instance of ComponentChange and DocumentChange
and add it to ChangeManager
![Page 14: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/14.jpg)
Enabling Change Persistence
![Page 15: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/15.jpg)
Personalization with MDS
• Extends the ChangePersistence functionality, adding
metadata repository support
• Persists a selected set of components and attributes
to save changes beyond the end of a session
• Allows developers to exclude attribute from getting
persisted
– Globally
– On a per component base
![Page 16: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/16.jpg)
MDS Persistence at Runtime
• Any changes made during a session are recorded in a
session variable
– Data structure indexed according to the view ID
• Subsequent Create View or Restore View apply
changes the order as they were added– Persistence is "active" after subsequent request
• Changes in the session that are persisted to MDS
mutate the MDS Document Object Model
• Phase listener triggers a commit on the MDS session
• Oracle's JSP engine merges stored changes to the
base document
![Page 17: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/17.jpg)
Configuring MDS Persistence
![Page 18: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/18.jpg)
How-to: The Seeded Thing
![Page 19: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/19.jpg)
Steps to build seeded customizations
• Build the base application
• Enable MDS and seeded customization
• Optionally, create your own customization classes
– Name
– Cache hint
– Layer
– Has access to MDS, JSF, Servlet and Request context
– May leverage ADF Security
– A lot of fun
• Configure customization classes in adf-config.xml
![Page 20: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/20.jpg)
Technical at Designtime ...
Application
View
Controller
ADF Model
ADF BC
Layer 1 Layer 2 Layer 3 Layer 4 Layer 5 Layer 6 Layer 7 Layer 8Base App
![Page 21: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/21.jpg)
Beautiful at Runtime !
![Page 22: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/22.jpg)
Customization Classes already Available in ADF
• UserCC
– Returns the Principal name for authenticated user
– Use for end user personalization
• SiteCC
– Returns "site" as layer value
• ADFRolesCC
– Returns enterprise and application role names
• Use enterpriseroles for site level customization
• Use application roles for seeded customizatio
![Page 23: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/23.jpg)
Custom Customization Classes
• Have access to the Http and MDS Session object
• Can use ADF Security to check user permission
before applying customization
• Return a layer name and one to many values
– Value(s) determine(s) the customization layer to apply for the
customization layer
• Extend abstract class CustomizationClass
![Page 24: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/24.jpg)
Example: PreferencesCC
public class PreferencesCC extends CustomizationClass {
public static final String ADVANCED_MODE = "advanced";
public static final String NORMAL_MODE = "normal";
public PreferencesCC() {
super();
}
public CacheHint getCacheHint() {
return CacheHint.MULTI_USER;
}
public String getName() {
return PreferenceLayerName;
}
public String[] getValue(RestrictedSession restrictedSession,
MetadataObject metadataObject) {
//returns new String[] {"normal"}, String[] {"advanced"}
//or new String[0]
return getUserPreference();
}
![Page 25: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/25.jpg)
Seeded Customizations
• Customizations are made with Oracle JDeveloper Customization role
• Customization are made for each defined layer
• Developer experience is the same as creating base metadata
• Only existing metadata is customizable– No Java objects
![Page 26: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/26.jpg)
Product Demonstration
Seeded Customization
![Page 27: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/27.jpg)
The Bang for the Bucks WebCenter
![Page 28: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/28.jpg)
WebCenter Framework Portlet
Integration
Process Integration
Content Integration
Search
Integration
Personalization, Customization & Metadata Management
Java EE
App ServerJSF Task Flow AJAX
JDeveloper Browser
Declarative Binding via REST, JSR168/286, WSRP
Databases
Systems
Content Repositories
Business
Intelligence
Business
Applications
Business
Process
Web
Services
Custom/LOB
Apps
WebCenter Framework
![Page 29: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/29.jpg)
Oracle Composer
• Enables Runtime Editing
• Runtime Customization & Personalization
• Design Time at Runtime (DT@RT)
• Manage Page Content with Resource Catalog
• Layered Customization with MDS
• Sandbox: support for transaction,concurrency
In-line EditDirect Selection and
Property Editing
Drag and Drop
Search/Browse and Add Content
![Page 30: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/30.jpg)
Customizable Components
Run TimeDesign Time
![Page 31: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/31.jpg)
Customizations, MDS, and Fusion Applications
• All pages are Composer/MDS-enabled
for upgrade-safe customizations
– administrator/business-user/end-user
• 11 different customization layers
– Some layers used internally in development to
provide seeded customizations (ex: “country”
customizations for HCM modules, “product”
customizations for common modules)
– Admins can choose which layer to customize
in both JDev and Composer
– Ex: Create industry specific customizations for
a CRM module
– Want to know more?
• S315481: Customizing Fusion
Applications with WebCenter Composer
Wednesday,10-11AM,Hotel Nikko
Customizations in JDeveloper
Customizations in Composer / Browser
![Page 32: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/32.jpg)
Product Demonstration
WebCenter Personalization and Customization
![Page 33: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/33.jpg)
Summary
• Common misconception corrected: It is not the
strongest that survives but the fittest
• Personalization and Customization is a necessity in
Web 2.0
• ADF And WebCenter have it all!
– Implicit and explicit UI personalization
– Seeded customization
![Page 34: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/34.jpg)
![Page 35: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/35.jpg)
Related Oracle Press Books
• Quick Start Guide to Oracle Fusion Development
• Oracle JDeveloper 11g Handbook
• Oracle Fusion Developer Guide
![Page 36: Mastering Customization and Personalization in Oracle ADF ... · PDF fileMastering Customization and Personalization in Oracle ADF and WebCenter Applications ... •Oracle Fusion Developer](https://reader033.fdocuments.in/reader033/viewer/2022052319/5ab7905f7f8b9ad13d8b8076/html5/thumbnails/36.jpg)