Skip Headers
Oracle® Fusion Middleware Metadata Repository Builder's Guide for Oracle Business Intelligence Enterprise Edition
11g Release 1 (11.1.1)

Part Number E10540-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

D Merge Rules

When you use the Merge Repository Wizard in the Administration Tool, sophisticated rules determine how objects are merged. Some decisions about merging objects are made automatically by the wizard, while other decisions appear as prompts in the Define Merge Strategy screen. This appendix describes some of the merge rules and behavior of the Merge Repository Wizard.

There are three types of merges:

This appendix contains the following topics:

General Merge Rules and Behavior

The merge process typically involves three versions of an Oracle BI repository: the original repository, modified repository, and current repository. The original repository is the original unedited file (the parent repository), while the modified and current repository are the two changed files you want to merge. The current repository is the one currently open in the Administration Tool.

The original, modified, and current repository may mean different things, depending on your situation. For example:

Note that patch merge can be used with both of these situations. In a patch merge, you open the current file and select the original file, then generate the patch. To apply the patch, you open the modified file and select the original file, then apply the patch. See "Performing Patch Merges" for more information.

Regardless of which merge scenario you want to perform, and regardless of the merge type (full, patch, or multiuser development merge), the following general rules are applied:

In the Merge Repository Wizard, any decisions that require user input are displayed on the Define Merge Strategy screen. Figure D-1 shows the Define Merge Strategy screen.

Figure D-1 Define Merge Strategy Screen

Description of Figure D-1 follows
Description of "Figure D-1 Define Merge Strategy Screen"

Some other rules are dependent on the type of merge you want to perform. For example, if you are performing a patch merge to upgrade a repository, you want to retain the security settings and database feature table changes in your customized (modified) repository. If you are performing a multiuser development (MUD) merge, however, you do not want to retain security settings and database feature table changes, to prevent developers from overwriting passwords and other important objects in the master repository. Because of this, changes to security settings and database features are not retained when you perform a MUD merge.

To change security settings or database features in a multiuser development environment, you must edit the master repository directly. To do this, remove the master repository from the multiuser development directory, edit it in offline mode, then move it back.

Special Merge Algorithms for Logical Table Sources and Other Objects

In addition to the general rules governing how objects are merged and which situations require prompting, there are special rules for certain types of objects and situations.

This section contains the following topics:

Merging Objects that Use the Vector Merge Algorithm

Some objects, such as levels, application roles, and object permissions, use a vector merge algorithm that determines the parent/child relationships between objects.

Objects that use the vector merge algorithm include:

  • Levels in a dimension, levels associated with a logical column, and child levels

  • Dimensions and tables in a logical display folder

  • Aggregation content in a logical table source

  • Security objects like user and application role membership and permissions

  • Initialization block LDAP server settings and execution precedence

The Oracle BI Server determines the initial state of object relationships in each repository during the merge process. For example, the following list shows the different possibilities for object permissions and how they relate to users and application roles:

  • M - Missing. The application role, user, or object is not present in the repository.

  • D - Default. Permissions are inherited from the parent application role.

  • Y - Yes. The permission is explicitly granted to the user or application role.

  • N - No. The permission is explicitly denied to the user or application role.

The Merge Repository Wizard determines the appropriate relationship for the merged repository depending on the state of the object permission relationships in each repository. For example:

  • For an original repository with a result of Y, a modified repository with a result of N, and a current repository with a result of M, the Merge Repository Wizard determines a result of N for the merged repository.

  • For an original repository with a result of N, a modified repository with a result of Y, and a current repository with a result of M, the Merge Repository Wizard determines a result of Y for the merged repository.

Example D-1 provides a detailed explanation of how object relationships are merged for application role objects.

Example D-1 Vector Merge Example: Merging Application Roles

The following list shows the different possibilities for user and application role relationships:

  • M - Missing. The application role or user is not present in the repository.

  • Y - Yes. The application role or user is a member of the application role.

  • N - No. The application role or user is not a member of the application role.

Table D-1 shows the merged result for different combinations of object relationships in the merging repositories.

Table D-1 Results for Merging Application Roles Based on Object Relationships

Original Repository Modified Repository Current Repository Result

M

M

M

NFoot 1 

M

M

Y

Y

M

M

N

N

M

Y

M

Y

M

Y

Y

ImpossibleFoot 2 

M

Y

N

Impossible

M

N

M

N

M

N

Y

Impossible

M

N

N

Impossible

Y

M

M

Y

Y

M

Y

Y

Y

M

N

N

Y

Y

M

Y

Y

Y

Y

Y

Y

Y

N

N

Y

N

M

N

Y

N

Y

N

Y

N

N

N

N

M

M

N

N

M

Y

Y

N

M

N

N

N

Y

M

Y

N

Y

Y

Y

N

Y

N

Y

N

N

M

N

N

N

Y

Y

N

N

N

N


Footnote 1 This situation can happen if neither the application role nor the user are present in the original repository, but the user is present in the modified repository and the application role is present in the current repository. In this case, no membership can be assumed.

Footnote 2 M in original implies that either the user or application role is not present. The missing object added in both cannot be considered the same object.

Merging Logical Table Sources

Special rules govern how to merge column mappings in logical table source objects. Each column mapping is merged individually. For each column, if the mapping has changed in either the modified or current repository, the change is kept. If the mapping has changed in both repositories, the Oracle BI Server attempts to merge the mappings automatically.

Note that the deletion of a column is not considered to be a change in its mapping. If a column is not present in the modified repository, then the mapping in the current repository is used instead.

If there are differences in aggregation content, then the aggregation content specified by level has priority. In other words, if the aggregation content in one repository is by level and the aggregation content in another repository is by column, then the aggregation content by level is retained.

Merging Security Filters

If a filter for an application role has changed in only one repository, then the change is kept. If the filter has changed in both repositories, the Oracle BI Server attempts to merge the filters automatically.

If an object is required for merging a particular filter (such as a presentation column) and is not present, then that filter is considered invalid and does not appear in the merged repository. Note, however, that this rule does not apply to variables. If a variable is required for merging a particular filter, the Oracle BI Server ensures that the variable is retained in the merged repository.

Inferring the Use Logical Column Property for Presentation Columns

Presentation columns have both a Name property and a Use Logical Column Name property. In some cases, these properties can come into conflict. For example, Table D-2 shows a scenario where this situation could occur.

Table D-2 Conflicting Presentation Column Name and Use Logical Column Name Properties

Repository Presentation Column Name Logical Column Name Use Logical Column Name

Original

Sales

GroupSales

No

Current

Sales

Sales

Yes

Modified

GroupSales

GroupSales

Yes


If the regular merge rules for the objects in Table D-2 are applied, the merged repository contains a presentation column called GroupSales and a logical column called Sales, with the Use Logical Column Name property set to Yes. However, this result is incorrect, because the name of the presentation column is different from the name of the logical column.

To avoid this situation, the Oracle BI Server infers the value of the Use Logical Column Name property. Using this logic, the merged repository for the example in Table D-2 has a presentation column called GroupSales, a logical column called Sales, and a Use Logical Column Name property set to No.

Merging Aliases

During the full merge process, users are not prompted to make decisions about aliases. Aliases from the current and modified repositories are merged automatically.

In multiuser development merges, however, users are prompted to choose whether to keep aliases from the current repository, keep aliases from the modified repository, or merge choices to keep aliases from both repositories.

Also note the following:

  • If object names change because of the merge process, then the previous names are added as aliases.

  • Any aliases that are not associated with presentation objects are deleted.