The solution is to eliminate programming all together, get the business leaders to visually define what they want directly in their dashboards, pages, and reports. This lets the system take care of the behind-the-scenes technical implementation.
This has proven difficult to achieve, with past attempts often creating more complexity than they actually solve. This time it is done right, supported by the whole technology stack, and end-users just see the magic (see Arthur C. Clarke's third law).
There are four dimensions to making Enterprise Application changes, split by a combination of intent and technology behind them. Fusion Applications, via its underlying middleware, includes a Composer tool for making adjustments in each dimension. Having separate composers allows each to be relatively simple to use, increases governance over changes, and speeds deployment. The four dimensions are:
Currently the CRM Product Family has one additional composer, the CRM Application Composer, providing more advanced functionality for creating custom business objects and actions. This is confined for use with the CRM products currently, however its features will become universal across Fusion Applications in the future.
The composers are generally intended for Super User, Domain Manager, or Business Analysts type roles, with standard Personalization (with a few features from Page Composer) serving the needs of end users. For more extensive and invasive technical projects a connection between a local JDeveloper IDE (with the required setup) and a Fusion Applications instance is required. The tools to use for each type of activity are highlighted in the Fusion Applications Extensibility Guide.
To illustrate the functionality provided by the composers the following is a short list of the most common customization-type requirements and which composer supports it:
Figure 1 - Adding a flex-field to the page using the wrench icon provided by the Page Composer.
Fusion Applications implements a sandbox framework, whereby all Composer changes can be first made and stored in a virtual sandbox environment of your choosing. This ring-fences them so they can be safely tested and verified, whilst invisible to other users on the live system. Once complete they can be published one at a time or all together into the system for general use.
All supported customizations and extensions are stored and applied in the context of a Meta Data Services (MDS) Layer. MDS defines the context for which the customization will be applied over the standard features at runtime. Some commonly used examples of MDS layers are a User, a Job Role, an Organization, or across a whole Site.
Figure 2 - Setting the MDS Layer for a page customization for the 'Customers' page, such that it is only shown to users with the Sales Analyst role.
With its origin in Oracle WebCenter, the Page Composer options are the most immediately obvious, supporting most of the user interface adjustments you might like to make. This is the main tool used for both standard Personalization - applying to just one user, as well as the more extensive Admin Personalizations that apply to a group of users. This includes changing layouts, showing or hiding components, and adding standard ADF components from a predefined resource catalog.
Figure 3 - Page Composer offering the addition of content and a change to a two column layout
Where basic options like flexfields are not enough to support the additional data attributes required for your business operation, the Data Composer allows access to edit and create ADF Business Objects. Just to be clear, these are not new database fields or records, but the abstraction of them based on real-world entities, such as Purchase Orders or Customers. It is the ADF Business Objects that are used at runtime by the user interface.
Whilst Data Composer is currently only available within the CRM Application Composer, plans exist to extend it across the board.
Figure 4 - Data Composer allows manipulating ADF Business Objects to better support specific information requirements.
As part of Oracle SOA Suite, the Oracle Business Process Management Suite contains a design-time tool for creating and adjusting BPMN 2.0 compliant BPEL processes, known as the Process Composer. Logically, as this tool can make significant changes to the way functionality runs, it is not therefore for use by normal end-users or administrators, and so is not found embedded inside Fusion Applications.
The Process Composer contains extensive options for creating new processes, as well as importing, adjusting, and redeploying the standard BPEL processes provided by Fusion Applications. Amongst other things, this includes support for manipulating Oracle Business Rules (OBR) to add complex conditional processing logic, as well as Human Workflow for interacting with users for hands-on activities, such as approvals. More details can be found in the Business Process Composer User's Guide.
Figure 5 - The Process Composer showing an approval flow for editing.
This composer is embedded in Fusion Applications, under Reports and Analytics, thanks to OBIEE Server option for integrating its native composer tool with any ADF application (including your own custom ones). This allows users to modify the embedded page analytics, such as adding content from the BI Catalog, as well as adjusting existing content such as modifying the analysis' columns, add alternative views, sort and filter the data, and apply conditional formatting.
For more information on using the BI Composer to customized your page analytics see the OBIEE Developer's Guide.
For customizing standard reports like those used for printing, use the separate Oracle BI Publisher tool, as described in Chapter 8.2 of the Fusion Applications Extensibility Guide and explained in depth the BI Publisher Report Editor Guide.
Figure 6 - Creating custom reports and analytics via the embedded BI Composer features.
Whilst feature rich, you may have noticed that most of the composers capabilities are inherited from the underlying technology components. Reusing standardized and proven solutions make sense, however there are also cases where Fusion Applications would benefit from some extra capabilities that increase simplification and add context-sensitive options.
An example is CRM Application Composer mentioned earlier, which will evolve in releases to come. This tool is unique to Fusion Applications and allows the addition of custom data fields and Business Objects, and some limited application logic such as adding relationships between new object, implementing security, adding groovy script, and defining object workflow. Whilst powerful on its own, this tool is still simpler and less invasive than using JDeveloper, and retains the benefits of making changes inside the application itself.
As we work with customers and partners we will learn about popular tailoring requirements and best practices, and use this to drive the evolution of the composers. If you have requirements or have embarked on related projects please share your experiences by contacting us or simply adding comments below.