Customization Lifecycle Management: Export and Import Options Explained
By Richard Bingham on Jun 17, 2013
Specifically here we’ll look at the options for downloading/uploading customization as a file, which is important for the following tasks:
- Moving different customizations done by many people into one environment
- Migrating customizations from a test instance to a production instance
- Diagnosing issues in customizations
The different utilities are appropriate in different situations, however all should be used as part of a complete Customization Lifecycle Management solution, and future posts will cover more aspects of this.
What to Export/Import
Customization data is stored in the Metadata Services (MDS) repository, which for Fusion Applications is a dedicated database schema that holds the XML definitions that are applied over the standard base documents are runtime.
The out-of-the-box setup for MDS is as follows:
- Each product family has a set of MDS repositories predefined by the RCU utility that runs during Fusion Applications provisioning. Each repository stores the MDS data for a particular purpose, with one for the product application in that family (mds-ApplicationMDSDB) and others for ESS and SOA Servers.
- Each repository has a set of partitions, acting as a logical separation of the MDS database. The partitions represent a different stripe to the data, with examples include ones for security administration via APM, one of the Diagnostics Dashboard, and a FNDGlobal partition for the use by the application products.
- Each application deployment (product) is associated with a single partition, and the MDS data can be imported or exported either against the product or one partition. A universal export/import is not possible.
Figure 1 – MDS repositories, partitions, and applications.
Now we understand the basic structure of what data we’re managing, let’s look at some of the utilities and what they do.
In this context, Enterprise Manager is used to export/import the Metadata Archive (MAR) files that are either from the runtime MDS or are created from customizing standard Fusion Applications artifacts in JDeveloper. Oracle Enterprise Manager Fusion Applications Control (and Fusion Middleware Control) offers a single MDS utility page that is accessible in the context of one specific deployed application (e.g. ProcurementApp), and can be found using the following navigation:
- Enterprise Manager Fusion Applications Control > Application Deployment menu > MDS Configuration
As shown below, this contains various options for importing, exporting and purging the related MDS data.
Figure 2 – MDS management for one deployed app.
NOTE: If you check Exclude Base Documents, this operation exports only the customizations, resulting in a much smaller export file.
Whilst this page is specific to ADF-based customizations stored in MDS, Fusion Middleware Control also has a similar option to export/import SOA Composite Applications as well.
WebLogic Scripting Language (WLST)
Although actually equivalent, it is also possible to export and import (and purge) the MDS data through the command line using WLST commands. This alternative may be useful for script-based administration or where a developers access to Enterprise Manager is not available. Here are the basic steps required:
- Log in to the WebLogic server host machine
- mkdir /tmp/crm_mds_dump
- cd $FUSIONAPPSHOME/oracle_common/common/bin/ (replace $FUSIONAPPSHOME with actual value)
- connect (‘<CRM_Domain_UserName>’,'<CRM_Domain_Password>’,'<CRM_Domain_Url>’) (replace with actual values)
- exportMetadata (application=’SalesApp’,server=’SalesServer_1′,toLocation=’/tmp/crm_mds_dump’ ,docs=’/**’)
WLST commands are available for all other MDS administrative tasks also, and see the references section below for more details.
Using the Manage Customizations item from the global Fusion Applications Administration menu it is possible to quickly see which customizations are active on any particular UI.
Figure 3 – Manage Customizations from Fusion Applications.
This simple pop-up window shows all customizations for the currently active document (jspx page). It allows filtering by the layer context, including for a specific user. At the bottom is the option to download the displayed customizations to a file.
Figure 4 – Filter by user.
Other pages can be reviewed by either navigating to them directly or by entering the page artifact location and name at the top.
Customizations done using Page Composer should be done in the context of a sandbox, a logical container (MDS label) that holds one set of customizations so they can be managed and deployed together. The Manage Sandboxes feature allows a simple download and then import of these complete sets of customizations. This is probably the easiest method to manage the current User Interface customizations, although only provides those within the selected sandbox environment (sandbox use is recommended).
Figure 5 - Sandbox Manager customizations.
For more details see Using the Sandbox Manager in the Extensibility Guide.
Not all customizations are UI focused, and Fusion Applications provides a separate tool, the Application Composer, for adjusting and extending its business objects. This self-contained tool is available from the navigator > tools menu, and includes various features, one of which is the Metadata Manager, allowing the export and import of any changes or additions to standard or custom objects.
Figure 6 – Application Composer’s Metadata Manager.
As the name suggestions, this exports only the customizations made through the Application Composer, therefore would be used in conjunction with other features.
- Managing the Metadata Repository chapter using Enterprise Manager.
- Application Metadata Management Commands section of Oracle Fusion Middleware WebLogic Scripting Tool Command Reference.
- Understanding the Customization Development Lifecycle chapter of the Fusion Applications Extensibility Guide.