Equalizing Objects

If you have objects in two repositories that have the same name but different Upgrade IDs, you may want to treat them as the same object.

To accomplish this, you can use the equalizerpds utility to equalize the objects by giving them both the same Upgrade ID. Alternatively, you can equalize objects as part of the merge process.

You can also use the Equalize Objects dialog, available from the Compare repositories dialog, to preview what the repository will look like after you run the equalizerpds utility.

This section contains the following topics:

About Equalizing Objects

You might need to equalize objects because the Oracle BI Administration Tool tracks the history of each repository object using the Upgrade ID of the object.

The Upgrade ID is a unique identifier for each object.

Sometimes, the Upgrade ID can change because of user actions or during merge. When this occurs, and a subsequent comparison is done, the Oracle BI Administration Tool treats the new Upgrade ID as a new object, and the missing original Upgrade ID as a deleted object.

For example, assume you have two identical repositories. In one repository, delete a presentation column, then re-create it again. When you compare the two repositories using the Compare repositories dialog, there are two entries for the presentation column: one that shows the old object as deleted, and one that shows the new object as created. Without using the Compare repositories dialog, it is hard to tell that this action occurred, because the Administration Tool typically shows only the object name and properties, not the underlying Upgrade ID.

Note that the Upgrade IDs are not unique, and in rare cases, the repositories that you want to merge might contain the same Upgrade ID. Running the equalizerpds utility on the repositories that you want to merge will correct this duplicate Upgrade ID issue and prevent an error while performing the merge.

It is very useful run the equalizerpds utility on your repositories before merging them to equalize your changes. Equalizing any opposing changes (such as a column that has been duplicated, and then renamed) cleans up the underlying Upgrade IDs and prevents unintended renaming during the merge.

When you equalize objects, you can lose track of object renames because legitimate object renames become different objects. In other words, intentional renames you did in the repository might be changed to different Upgrade IDs, so subsequent merges erroneously treat the renamed object as a new object. To avoid this situation, enter the before and after names of intentionally renamed objects in a rename map file that you then pass to the utility. The equalizerpds utility uses the information in the file to ensure that the original IDs are used in the renamed current objects.

Note:

You can view the Upgrade ID for repository objects using the Query Repository dialog. To do this, follow these steps:

  1. Select Tools, then select Query Repository.

  2. Run a query. See Querying and Managing Repository Metadata for details.

  3. Click Columns.

  4. Select Upgrade ID from the list. You can use the Find button to help locate the Upgrade ID.

  5. Click OK. A new column showing the Upgrade IDs appears in the Results list.

The Upgrade ID is not available as a column option unless you have selected Show Upgrade ID in Query Repository in the General tab of the Options dialog. See Setting Administration Tool Options for more information.

Using the Equalize Objects Dialog

The Equalize Objects dialog provides a preview of what your repository looks like if you run the equalizerpds utility on it.

The Equalize Objects dialog provides a convenient way to compare changes related to objects that have the same name, but it does not persist any of the changes.

Note:

Using the Equalize Objects dialog can be a very slow process for larger repositories.

To view and use the Equalize Objects dialog:

  1. In the Administration Tool, open your repository in offline mode.
  2. From the File menu, select Compare.
  3. In the Select Original Repository dialog, select the repository you want to compare to the open repository (typically the original repository). Select Repository from the submenu to select a binary repository file in RPD format, or select XML to select a set of MDS XML documents.
  4. In the Open Offline dialog, enter the repository password and click OK. The Compare repositories dialog is displayed.
  5. Click Equalize to display the Equalize Objects dialog.
  6. The Equalize Objects dialog shows a list of changes where you may want to consider objects with different Upgrade IDs to be the same object. You can use the following options to model how the changes might get equalized:
    • Click Automatic to automatically equalize changes related to objects that have the same name. The changes appear in the Equated table.

      If no changes can be automatically equalized, nothing appears in the table, and the OK button remains disabled.

    • Select an object in the Deleted list, then select the equivalent object in the Created list and click Add or Add Plus to equate the objects. Add Plus adds the object along with its child objects to the Equated table, while Add simply adds the selected object. For example, if you select a Subject Area and click Add Plus, the underlying Presentation Tables and Presentation Columns are added as well.

      After you make a manual selection, the Automatic button is disabled.

    • Select a row in the Equated table and select Remove or Remove All to remove objects from the Equated table. Remove All removes the object along with its child objects, while Remove simply removes the selected object

      The Automatic button is enabled after all manual selections are removed.

  7. When you are finished modeling the changes, click OK. The changes appear in the Compare Repositories dialog, but the changes do not persist after you close the dialog.

Using the equalizerpds Utility

You can use the equalizerpds utility to equalize the Upgrade ID of objects in two separate repositories. If objects have the same Upgrade ID, they are considered to be the same object. The utility compares Upgrade IDs from the first repository (typically the original repository) with Upgrade IDs from the second repository (typically the modified repository). Then, the utility equalizes the Upgrade IDs of objects with the same name, using the Upgrade ID from the original repository.

The equalizerpds utility is available on both Windows and UNIX systems. However, you can only use equalizerpds with binary repositories in RPD format.

The location of the equalizerpds utility is:

BI_DOMAIN/bitools/bin

Syntax

The equalizerpds utility takes the following parameters:

equalizerpds [-B original_repository_password] -C original_repository_name
{-E modified_repository_password]|-G} -F modified_repository_name [-I input_UDML_script_name][-J rename_map_file]
[-O output_repository_name] [-R output_apply_result_file] [-U output_id_map_file][-Y equalStringSet]

Where:

G specifies to use the original repository password for the modified repository password.

rename_map_file is a text file containing a list of objects that were renamed and that you want to equalize. The format is a tab-separated file with the following columns:

TypeName     Name1     Name2

For example, to include a logical column in the map file that was renamed from Name1 to Name2, provide the following:

ATTRIBUTE     "BusinessModel"."Table"."Name1"     "BusinessModel"."Table"."Name2"

Do not cut and paste this example as the foundation for your own file, because the tab separators might not get copied properly. Create a new file with proper tabs.

See About Values for TypeName for more information about valid TypeName values.

equalStringSet is a set of characters that you want to treat as equal.

Note that the original_repository_password and modified_repository_password arguments are optional. If you do not provide these password arguments, you are prompted to enter the passwords when you run the command (password1 and password2). To minimize the risk of security breaches, Oracle recommends that you do not provide password arguments either on the command line or in scripts. Note that the password arguments are supported for backward compatibility only, and will be removed in a future release. For scripting purposes, you can pass the password through standard input.

For example:

equalizedrpds -C original.rpd -F modified.rpd -O modified_equalized.rpd
password1: my_original_rpd_password
password2: my_modified_rpd_password

In this example, original.rpd is compared with modified.rpd, the Upgrade IDs are equalized using the Upgrade IDs from original.rpd, and the final result is written to modified_equalized.rpd.

Note:

Be sure to provide the full pathnames to your repository files, both the input files and the output file, if they are located in a different directory.

About Values for TypeName

Learn about the available object types and their corresponding values for TypeName.

The table shows the available object types and their corresponding values for TypeName.

Object Type Value for TypeName

Database

DATABASE

Connection Pool

CONNECTION POOL

Physical Catalog

CATALOG

Physical Schema

SCHEMA

Physical Display Folder

PHYSICAL DISPLAY FOLDER

Physical Table

TABLE

Physical Key

TABLE KEY

Physical Foreign Key

FOREIGN KEY

Physical Column

COLUMN

Physical Complex Join

JOIN

Physical Hierarchy

HIERARCHY

Physical Level

PHYSICAL LEVEL

Cube Column

COLUMN

Cube Table

CUBE TABLE

LDAP Server

LDAP SERVER

Custom Authenticator

CUSTOM AUTHENTICATOR

Variable

VARIABLE

Application Role

SECURITY ROLE

User

USER

User Database Signon

USER DATABASE SIGNON

Project

PROJECT

Business Model

SUBJECT AREA

Logical Dimension

DIMENSION

Logical Level

LEVEL

Logical Display Folder

LOGICAL DISPLAY FOLDER

Logical Table

LOGICAL TABLE

Logical Source Folder

LOGICAL SOURCE FOLDER

Logical Table Source

LOGICAL TABLE SOURCE

Logical Column

ATTRIBUTE

Logical Join

ROLE RELATIONSHIP

Logical Key

LOGICAL KEY

Logical Foreign Key

LOGICAL FOREIGN KEY

Presentation Catalog

CATALOG FOLDER

Presentation Table

ENTITY FOLDER

Presentation Column

FOLDER ATTRIBUTE

Presentation Hierarchy

PRESENTATION HIERARCHY

Presentation Level

PRESENTATION LEVEL

Catalog Link

CATALOG LINK

Target Level

CUSTOMER TYPE

List Catalog

LIST CATALOG

Qualified Item

QUALIFIED ITEM

Qualifying Key

QUALIFYING KEY

Sampling Table

SAMPLING TABLE

Segmentation Catalog

SEGMENTATION CATALOG