Skip Headers
Oracle® Fusion Applications Extensibility Guide
11g Release 1 (11.1.3)

Part Number E16691-04
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

1 Customizing and Extending Oracle Fusion Applications

This chapter provides an overview of how to customize and extend Oracle Fusion applications and, introduces the design time and runtime tools used in the process, such as Page Composer, CRM Application Composer, Oracle JDeveloper, Oracle SOA Composer, Business Process Composer, Oracle Business Intelligence (BI) Publisher, Oracle Business Process Management (BPM) Studio, Oracle BPM Worklist, Oracle Enterprise Manager Fusion Applications Control, and the Setup and Maintenance work area.

Note:

Before you begin to customize or extend Oracle Fusion applications, you first must install and implement them. For more information, see Oracle Fusion Applications Administrator and Implementor Roadmap.

This chapter includes the following sections:

1.1 Understanding Customizing and Extending Oracle Fusion Applications

While Oracle Fusion applications provide robust out-of-the-box functionality, there may be areas of one of the applications that you must change to meet your business needs. This book will guide you through the process of extending and customizing Oracle Fusion applications. Note that you can also create a complete Java EE application to supplement your Oracle Fusion applications. See the Oracle Fusion Applications Developer's Guide for more information.

All Oracle Fusion applications are based on Oracle Fusion Middleware. Most user interfaces are implemented using Oracle Application Development Framework (Oracle ADF) and standard Java technologies. The foundation of the applications are the Service Oriented Architecture (SOA) business processes. Business intelligence frameworks provide a number of reporting capabilities. Identity management works at every level to control access. Each of these areas of an application can be customized and extended to suit your business needs.

Additionally, Oracle Fusion applications are built using a common data model. Because of this commonality, when you make a customization in one area, that customization will be available to all objects in the application. For example, if you add an attribute to an object, you can easily add that attribute to the web-based view page, to an associated mobile page, and to any associated reports. And for the most part, the tools and processes you use to customize one application will be the same tools and processes to customize all of Oracle Fusion applications.

Note:

If your Oracle Fusion applications are part of a multi-tenant environment, or is deployed as a Software as a Service Solution (SaaS) environment, then only a subset of customization capabilities will be available to you. See the SaaS documentation for your customization procedures.

Within this guide, the term customizing means to change a standard (existing) artifact. For example, you can add an attribute to a standard business object, or you can change what is displayed on a standard view page. The term extending means to create a completely new artifact, such as a custom business object or custom view page. For customizations and extensions, there are three basic scenarios: personalization, runtime customizations and extensions, and design time customizations and extensions.

Personalization

Personalization refers to the changes that every end user of the Oracle Fusion Applications product suite can make to certain artifacts in the user interface (UI) at runtime. These changes remain for that user each time that user logs into the application. Personalization includes changes based on user behavior (such as changing the width of a column in a table), changes the user elects to save, such as search parameters, or composer-based personalizations, where an end user can redesign aspects of a page.

For composer-based personalizations, Oracle Fusion applications includes Page Composer, which allows end users to change certain UI pages to suit their needs. For example, they can rearrange certain objects on a page, add and remove designated content, and save queries. Figure 1-1 shows the Partner Profile page in Page Composer. An end user can add other content to this page, or change the order of the current content.

Note:

By default, only certain personalizations are allowed. You can customize what can be personalized. For more information, see Chapter 17, "Configuring End User Personalization."

Figure 1-1 End Users Can Personalize UIs with Page Composer

Personalize page by moving or adding

Runtime customizations and extensions

Runtime customizations and extensions include those that a business analyst user at your enterprise can make to an Oracle Fusion application at runtime using browser-based composers. These customizations and extensions are surfaced to all or to a subset of Oracle Fusion Applications users, and range from changing the look and feel of a page, to customizing standard business objects, adding a new business object and associated pages and application functionality, changing workflows, defining security for new objects, and customizing reports. Figure 1-2 shows how you can customize the fields on a standard business object using Oracle CRM Application Composer, which is a runtime tool used to customize and extend certain CRM applications.

Figure 1-2 CRM Application Composer Allows You to Customize Business Objects at Runtime

Edit business objects in composer

Customizing and extending Oracle Fusion applications using runtime tools are covered in Part II, "Business User Customizations and Extensions".

Design time customizations and extensions

Design time customizations and extensions include more complex changes, such as creating SOA composites or creating new batch jobs, and they require deployment into the runtime environment. Design time customizations are most often done by Java developers using Oracle JDeveloper (a comprehensive IDE), as shown in Figure 1-3, or they may be done in other tools, such as SOA Composer. The customizations are then uploaded or deployed to a running instance of Oracle Fusion Applications. Developer-level extensions are covered in Part III, "Developer Customizations and Extensions".

Figure 1-3 Oracle JDeveloper IDE

Oracle JDeveloper

Tip:

You can also extend an Oracle Fusion application by creating a completely separate application and integrating it into Oracle Fusion Applications. For more information about creating an Oracle Fusion application, see the Oracle Fusion Applications Developer's Guide.

Most customizations made to an Oracle Fusion application, whether a personalization an end user makes, a change a business user makes using a runtime composer tool, or a change a developer makes using JDeveloper to create new source code, are stored in a business metadata repository. Because these customizations are kept separate from the base code, you can safely upgrade your Oracle Fusion application without overwriting or needing to redo your changes.

Customizations for the UI and for business components are created in layers, meaning that you can create them for specific users (as in the case of personalization), or for specific roles or sites, and the changes will be shown only when applicable. For more information about the metadata dictionary and customization layers, see Section 1.2, "Understanding Customization Layers."

Customizations made at runtime can be saved in a sandbox so that the changes can be isolated and validated before being published into a full test environment. Changes done at design time are done in a development environment, and can also be deployed to a sandbox before being deployed into the full test environment. For more information about sandboxes, see Section 2.2, "Using the Sandbox Manager."

Because most pages in an application consist of a number of different components (some of them actually being another page), it can be difficult to discern what has been customized, and for what layer. During customization of a page, you can use the Manage Customizations dialog to understand the state of each artifact on a page: whether it has been customized, and if so, for what layer. You can import customizations that others have done, or you can export your own customizations. For more information about using the Manage Customizations dialog and sandboxes, see Chapter 2, "Understanding the Customization Development Lifecycle."

1.2 Understanding Customization Layers

Oracle Fusion applications contain built-in customization layers that allow you to make customizations that affect only certain instances of an application. For example, the Sales application has a layer for job role. When you customize an artifact, you can choose to make that customization available only to users of a specific job role, for example, a sales representative.

Customizations you make are not saved to the base standard artifact. Instead, they are saved to an XML file that is stored in an Oracle Metadata Services (MDS) repository. This XML file acts like a list of instructions that determines how the artifact looks or behaves in the application, based on the layer that is controlling the current context. The MDS Customization Engine manages this process.

For example, say you want to customize the Sales home page by removing the Quick Create panel, but only for users with the Sales Representative role. Before you make your customization, you first select the layer to make your customization in, in this case the role layer whose value is Sales Representative. When you make your customization by removing that pane from the page, an XML file is generated with the instructions to remove the pane, but only in the role layer, and only when the value is Sales Representative. The original page file remains untouched. The MDS Customization Engine then stores the XML file in an MDS repository.

Now, whenever someone logs into the application and requests an artifact, the MDS Customization Engine checks the repository for XML files that match the requested artifact and the given context, and if there is a match, it layers the instructions on top of the base artifact. In this example, whenever the Sales home page is requested (the artifact) by someone who is assigned the role of Sales Representative (the context), before the page is rendered, the MDS Customization Engine pulls the corresponding XML file from the repository and layers it on top of the standard Sales home page, thereby removing that pane. Whenever someone who is not a Sales Representative logs in (for example, someone with the role of Sales Manager), the XML file with your changes is not layered on top, and so the Quick Create panel is displayed.

Figure 1-4 shows how the customization XML file is applied to the base document and shown only to a sales representative.

Figure 1-4 One Customization Layer Handled by the MDS Customization Engine

XML document applied to base

All users of Oracle Fusion applications can personalize certain pages using the Personalization menu. Users can move elements around on a page, hide elements, and even add available elements to their page. When they do this personalization, the MDS Customization Engine creates an XML file specific to that user.

For example, say User 1 (who has the role of Sales Representative) personalizes the Sales home page. There will then be an XML file stored in the repository, noting the changes that user made. When User 1 logs in, as in the previous example, the MDS Customization Engine pulls the XML file with the sales representative customizations from the repository and layers it on top of the standard Sales home page. In addition, the engine pulls the XML file with User 1's personalizations, allowing the user to see the personalization changes along with the Sales Representative changes. When other Sales Representatives log in, they do not see User 1's personalization changes, as shown in Figure 1-5.

Figure 1-5 Personalizations Are Also Handled by the MDS Customization Engine

XML document for personalization

The exact customization layers available for an application depend on that application family (see the product-specific documentation from Oracle Enterprise Repository for Oracle Fusion Applications for details). However, all Oracle Fusion applications have the following customization layers:

These layers are applied in a hierarchy, and the highest layer in that hierarchy in the current context is considered the tip. Within the default customization layers, the Global layer is the base layer, and the User layer is the tip. If customizations are done to the same object, but in different layers, at runtime, the tip layer customizations take precedence. For example, if you customize the label for a field in the site layer using Page Composer and customize the same label in the global layer using JDeveloper, the site layer customization will be displayed at runtime.

Because customizations are saved in these XML files, when you patch or upgrade your Oracle Fusion applications, the base artifacts can be updated without touching your changes. The base artifact is replaced, and when the application is run after the patch or upgrade, the XML files are simply layered on top of the new version. You do not need to redo your customizations.

Before you create customizations, you must select the layer to which you want your customizations to be applied. Most of the tools you use to create your customizations provide a dialog where you can pick the layer for your customizations.

1.3 Understanding the Business User and Developer Tools

The user interfaces in Oracle Fusion applications are controlled by role based authentication, meaning that the information presented in the UI, and what the user can do in the UI, depends on the role assigned to the currently logged in user. For example, if you are assigned a role with administrative privileges, when you log in to Oracle Fusion Applications, you will see an Administration menu, as shown in Figure 1-6. This menu allows you to do things like customize a page for all users, or manage customizations.

Figure 1-6 Oracle Fusion Applications Menu Bar

Menu bar accesses Administration

Both personalization and customization use Page Composer to make changes to an application page. Using personalization, any user can drag and drop fields, rearrange regions, add approved external content and save their favorite queries.

Using administration customization, you also use Page Composer to customize pages for other users. You can add fields, add validation, change defaults, rearrange regions, and add external content. Page Composer allows you to work in either a WYSIWYG view or source view, as shown in Figure 1-7.

Figure 1-7 Page Composer

Oracle Composer

For more information about customizing pages, see Chapter 3, "Customizing Existing Pages."

If you need to extend or customize the Sales, Marketing, Customer Center, Trading Community Architecture (TCA), and Order Capture applications that are part of the Customer Relationship Management (CRM) product family of Oracle Fusion Applications, then you can use CRM Application Composer to customize your pages.

Note:

Only certain pages are available for customization. For a complete list, see the product-specific documentation from Oracle Enterprise Repository for Oracle Fusion Applications.

You access CRM Application Composer by clicking the Application Composer link from the Navigator menu of Oracle Fusion Applications, as shown in Figure 1-8.

Figure 1-8 Navigator Menu

Navigator Menu

CRM Application Composer also allows business analysts to make more complex runtime customizations. In addition to customizing pages, business analysts can customize business objects and all the artifacts that support them (such as fields, pages, buttons and links, security, server scripts, and saved searches), and can also extend Oracle Fusion applications by creating completely new business objects and artifacts, as shown in Figure 1-9. For more information, see Chapter 4, "Customizing Objects."

Figure 1-9 CRM Application Composer

CRM Application Composer

When new business objects are created, you often also create associated Work Area pages for those objects. You can add those pages to the Navigator menu so that they can be accessed in the same way as standard objects. For more information, see Chapter 6, "Customizing the Navigator Menu."

When you create a new top-level business object, you can also create a new object workflow to manage any business processes associated with it. For example, say you used CRM Application Composer to create a marketing object and you want to create an associated approval flow. From within CRM Application Composer, you can access Oracle Business Process Composer and create the process that defines that flow. For applications outside of CRM, you access Business Process Composer directly from the Navigator menu. For more information about using the Business Process Composer, see Chapter 7, "Customizing and Extending BPMN Processes ."

When you create a new object in CRM Application Composer, you can define security policies for it. Data security policies define the end user's level of access to the data records of the business object. Function security policies define the end user's level of access to the application resources that display the object (for example a page or a task flow). Both types of security must be defined for a security policy to be complete. Security policies are not stored in an MDS repository. Instead, they are stored in Oracle Fusion Data Security database tables (for data security) and in an LDAP-based server running Oracle Internet Directory (for function security). For more information about creating security policies for custom CRM business objects, see Chapter 9, "Customizing Security for Custom Business Objects."

If you need to add an attribute to an object in an application that is not one of the five CRM applications, you can often use flexfields. Flexfields allow you to define object attributes on objects and then apply business logic to them. For example, an airline manufacturer might require very specific attributes for their orders that are not provided by the out-of-the-box implementation of an order. Because a flexfield exists for the order object, you can use it to create and configure the desired attribute. Flexfield configurations are stored in an MDS repository, and so are safe during patching and upgrading. You access flexfields from the Setup and Maintenance menu item from the Administration menu. For more information about flexfields, see Chapter 5, "Using Flexfields for Custom Attributes."

Oracle Fusion Applications come with a complete set of reports. You can customize these reports (for example, change the layout) to fit your particular business needs. Additionally, if you customize or create a business object, you can create a new report for that object. For more information, see Chapter 8, "Customizing Reports and Analytics."

To customize or create business objects outside of the five CRM applications, or when required customizations cannot be made in one of the runtime composers, use JDeveloper. When you work in a JDeveloper environment, you create a workspace that contains your changes and additions. When you create this workspace, you do so in the Oracle Fusion Applications Developer role. Like Oracle Fusion applications, JDeveloper uses roles to shape what you see and can do in the IDE. Work done in a developer role is stored in actual projects with code that gets deployed to an environment. Use the Oracle Fusion Applications Administrator Customization role when customizing an existing standard object (as opposed to creating a new object). Work done in this role is saved to an XML file that gets deployed into an MDS repository, keeping your changes separate from the base code. For more information about how to set up your JDeveloper customization environment, see Chapter 10, "Using JDeveloper for Customizations."

Note:

You cannot create your own roles to define what you see and what you can do in JDeveloper.

Developers can use JDeveloper to create and customize view pages, business objects, task flows (flows that control navigation and business logic within the application), searches, and resource bundles. All customizations and extensions created in JDeveloper must be deployed to an environment. For more information about using JDeveloper to customize business objects and associated artifacts, see Chapter 11, "Customizing and Extending ADF Application Artifacts."

SOA composites are the foundation on which Oracle Fusion applications are built: they are the glue that holds all the different application artifacts together and they allow the different applications to work in a unified manner. SOA composites for an application contain artifacts like Business Process Execution Language (BPEL) process flows. These flows provide communication between applications, additional human-based workflows, and business rules that determine branching in those flows. Developers can customize existing composites or create new ones using a mixture of JDeveloper and browser-based tools. Customized and extended SOA composites are all stored in MDS repositories. For more information, see Chapter 12, "Customizing and Extending SOA Components."

Some Oracle Fusion applications provide business process modeling (BPM) project templates that you can use to create BPM projects. BPM projects consist of SOA artifacts, such as business rules and human tasks, and Business Process Modeling Notation (BPMN) processes. You can customize these project templates to suit your business needs. For more information, see Chapter 13, "Customizing and Extending Oracle BPM Project Templates."

Finally, when you create custom pages, you may want to make them personalizable, so that end users can change the page for themselves. For more information, see Chapter 17, "Configuring End User Personalization." Also, when you make any type of customization or extension to Oracle Fusion applications, you might have to change the embedded help that appears on the screen. For more information, see Chapter 18, "Customizing Help." And all customizations can be translated. For more information, see Chapter 16, "Translating Custom Text."

Tip:

When you extend Oracle Fusion applications, you may want those extensions to be configurable using Oracle Fusion Functional Setup Manager. For more information about creating setup flows for extensions, see the Oracle Fusion Applications Information Technology Management, Implement Applications Guide.

For a more detailed description of the workflow you must follow when customizing and extending, see Chapter 2, "Understanding the Customization Development Lifecycle."

1.3.1 What You Can Customize and Extend and with Which Tool

Table 1-1 shows the artifacts that you can customize or create in Oracle Fusion Applications, what tool you use, the type of user that can make the change, and whether the changes are stored in an MDS repository.

Note:

CRM Application Composer is only available if you want to make changes in the following CRM applications:

  • Marketing

  • Sales

  • Customer Center

  • Trading Community Architecture (TCA)

  • Order Capture

Note:

While you can customize view pages in Page Composer and CRM Application Composer, only certain pages are configured to allow it. If the customization you want to make is not available in Page Composer, then you must use JDeveloper to make the customization.

Table 1-1 Customization Scenarios in Oracle Fusion Applications

Customization/
Extension
Tool Type of User MDS? Where to Find Information

View Pages

       
 

Add, move, and delete components on a page.

Page Composer

Business Analyst

Yes

Section 3.2, "Editing a Page in Page Composer"

 

Add fields, buttons, links, to a standard page (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.3, "Editing a Page in CRM Application Composer"

 

Customize properties on UI components on a standard page

Page Composer

Business Analyst

Yes

Section 3.3, "Editing Component Properties in Page Composer"

 

Customize properties on UI components on a standard page (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.2, "Editing Objects"

 

Make UI components on a page personalizable

Page Composer

Business Analyst

Yes

Section 17.3, "Configuring End User Personalization for Components"

 

Customize the UI Shell template

JDeveloper

Developer

Yes

Section 11.10, "Editing the UI Shell Template"

 

Customize the UI Shell template (CRM)

Page Composer

Business Analyst

Yes

Section 3.4, "Editing the UI Shell Template Used by All Pages"

 

Define resource bundles

JDeveloper

Developer

Yes

Section 11.12, "Customizing or Adding Resource Bundles"

 

Make a custom page personalizable (custom pages created in CRM Application Composer are customizable by default)

JDeveloper

JDeveloper

Yes

Section 17.2, "Allowing Pages to be Personalized by End Users in Page Composer"

 

Customize onscreen hoover help text

Page Composer

Business Analyst

Yes

Section 18.3, "Customizing or Adding Bubble Embedded Help"

 

Customize onscreen help text

JDeveloper

Developer

Yes

Section 18.4, "Customizing or Adding Static Instructions, In-field Notes, and Terminology Definitions"

 

Change the look and feel of the entire application

JDeveloper

Developer

No

You can choose the skin you want Oracle Fusion Applications to use. For more information, see Chapter 19, "Customizing the Oracle Fusion Applications Skin."

 

Translate custom text

JDeveloper

Developer

Yes

Chapter 16, "Translating Custom Text"

Business Objects

       
 

Customize business objects

JDeveloper

Developer

Yes

Section 11.2, "Editing Existing Business Components"

 

Customize business objects (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.2, "Editing Objects"

 

Add an attribute to a business object using flexfields (not CRM)

Setup and Maintenance work area

Business Analyst

No

Chapter 5, "Using Flexfields for Custom Attributes"

 

Create business objects

JDeveloper

Developer

Yes

Section 11.5, "Creating Custom Business Components"

 

Create business object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.4, "Creating Custom Objects"

 

Add business object page to Navigator menu

Setup and Maintenance work area

Business Analyst

No

Chapter 6, "Customizing the Navigator Menu"

 

Add custom business object work area pages to Navigator menu (CRM)

CRM Application Composer

Business Analyst

No

Section 4.4, "Creating Custom Objects"

 

Add validation to an object

JDeveloper

Developer

Yes

Section 11.5, "Creating Custom Business Components"

 

Add validation to an object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.2, "Editing Objects"

 

Customize saved search for a custom object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.5, "Creating and Editing Search Objects"

 

Create search for an object

JDeveloper

Developer

Yes

Section 11.9, "Customizing or Creating a Custom Search Object"

 

Create saved search for a custom object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.5, "Creating and Editing Search Objects"

 

Customize task flows for an object

JDeveloper

Developer

Yes

Section 11.3, "Editing Task Flows"

 

Create task flows for an object

JDeveloper

Developer

Yes

Section 11.6, "Creating Custom Task Flows"

 

Customize object workflows for an object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.2, "Editing Objects"

 

Create object workflows for an object (CRM)

CRM Application Composer

Business Analyst

Yes

Section 4.4, "Creating Custom Objects"

Business Processes

       
 

Create BPMN process in a BPM project

Business Process Composer

Business Analyst

Yes

Section 7.2, "Creating an Oracle BPM Project"

 

Create BPMN approval process in a BPM project (CRM)

CRM Application Composer

Business Analyst

Yes

Section 7.2, "Creating an Oracle BPM Project"

 

Customize custom BPM projects

Business Process Composer

Business Analyst

Yes

Section 7.3, "Customizing BPMN Processes"

 

Customize custom BPM projects (CRM)

CRM Application Composer

Business Analyst

Yes

Section 7.3, "Customizing BPMN Processes"

 

Customize BPM project templates

Oracle BPM Studio

Developer

Yes

Chapter 13, "Customizing and Extending Oracle BPM Project Templates"

 

Customize BPEL process or Mediator component, or add additional SOA components

JDeveloper

Developer

Yes

Section 12.4, "Extending or Customizing Custom SOA Composites"

 

Customize task routing rules, business rules, DVM and, composite properties

Process Workspace, Oracle SOA Composer and Fusion Applications Control

Developer

Yes

Section 12.2, "Customizing SOA Composites"

Reports

       
 

Create report layout

Oracle BI Publisher

Business Analyst

No

Section 8.2.2, "Customizing Layouts"

 

Customize report layouts

Oracle BI Publisher

Business Analyst

No

Section 8.2.2, "Customizing Layouts"

 

Customize style templates

Oracle BI Publisher

Business Analyst

No

Section 8.2.2, "Customizing Layouts"

 

Create a report

Oracle BI Publisher

Business Analyst

No

Section 8.2.4, "Creating Custom Reports"

 

Translate a report

Oracle BI Publisher

Business Analyst

No

Section 8.2.5, "Adding Translations"

 

Create report subject area (CRM)

CRM Application Composer

Business Analyst

No

Section 4.4, "Creating Custom Objects"

Analyses and Dashboards

       
 

Customize analytics

Reports and Analytics pane

Business Analyst

No

Section 8.3.2, "Customizing Analytics"

 

Customize and extend the Oracle BI repository (RPD file)

JDeveloper

Developer

No

Section 8.3.3, "Customizing the Oracle BI Repository (RPD)"

Enterprise Scheduler Jobs

     
 

Create Jobs

JDeveloper

Developer

No

Chapter 14, "Customizing and Extending Oracle Enterprise Scheduler Jobs"

Security

       
 

Add data security to custom object

Setup and Maintenance work area

Developer

No

Section 15.4, "Defining Data Security Policies on Custom Business Objects" and Section 15.5, "Enforcing Data Security in the Data Model Project"

 

Add function security to custom object

JDeveloper

Developer

No

Section 15.6, "Defining Function Security Policies for the User Interface Project"

 

Add security to custom object (CRM)

CRM Application Composer

Business Analyst

No

Section 9.2, "Defining Security Policies for Custom Business Objects"

 

Enable end users to set instance level security

CRM Application Composer

Business Analyst

No

Section 9.3, "Enabling End User Instance-Level Security Customization"


1.3.2 Installing Customization Tools

All the business analyst tools are available from the Navigator menu of Oracle Fusion Applications. However, developers must install and configure JDeveloper. After installing JDeveloper, they must set up their environment for customization and extending.

For procedures for installing JDeveloper and setting it up for extending (that is, for creating new objects), see the "Setting Up Your Development Environment" and "Setting Up Your JDeveloper Workspace and Projects" chapters in the Oracle Fusion Applications Developer's Guide.

For procedures for setting up JDeveloper for customizations, see Chapter 10, "Using JDeveloper for Customizations."