Author: Vivian(Weibei) Li
Comparing RPD is a very necessary and useful process in RPD development. It is good to consider doing it in the following use cases.
There are many more cases to compare RPDs. This blog describes how to compare the RPDs.
There are two ways to compare RPDs, one is to use the compare utility and another is to use the compare dialogue in the admin tool.You can choose either way to compare your RPDs. Here are the comparison of the two methods and some tips.
There are utilities used for rpd comparison in OBIEE. You can call the utilities with a few commands in the command prompt of Windows. Here lists the steps to compare RPDs with this option.
Use the later version of OBIEE to do the comparison if you compare the two releases, and the two releases need different versions of OBIEE.
For example, there are two releases, let’s say release 1 and release 2. release 2 uses the later version of OBIEE. To compare the two releases, you need to use the OBIEE version for release 2.
It is recommended to check out the subset of RPDs that you want to compare with the projects you are interested in. Comparing the entire RPDs will be very inefficient and time-consuming.
Before comparing the RPDs, you should equalize the RPDs first with equalizerpds utility. The equalizerpds utility will 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.
equalizerpds.exe can be found under <ORA_HOME>\Oracle_BI1\bifoundation\server\bin.
· Syntax
The equalizerpds utility takes the following parameters:
equalizerpds [-B original_repository_password] -C original_repository_name [-E modified_repository_password] -F modified_repository_name [-J rename_map_file]
[-O output_repository_name] [-Y equalStringSet]
· Explanation
Original and modified repository – Use the base repository as the ‘original’ repository and use repository you want to compare as ‘modified’ repository.
For example, if you want to compare release 1 and release 2 RPDs to find out upgrading issues to upgrade from release 1 to release 2, put release 1 RPD as the original and release 2 RPD as the modified repository.
rename_map_file
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.
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, logical column "Core"."Dim - Customer"."Address4" is re-named as "Core"."Dim - Customer"."Address 4" from Release 1 to Release 2. The file can be written as Logical Column "Core"."Dim - Customer"."Address4" "Core"."Dim - Customer"."Address 4"
Tip: How to find out the TypeName value? Query your object with Query Repository tool in the admin tool, and you will find the TypeName value in the result.
1. Open the admin tool. Go to Tools->Query Repository
2. In the popup dialogue, query your object.
3. You will find the Type value in the result.
You can put this file in any folder in your machine, and give the absolute path in rename_map_file parameter. See the example below.
· An equalization command example
equalizerpds -B pwd123
-C C:\rpdcomparison\release1\release1.rpd -E pwd123 -F C:\rpdcomparison\release2\release2.rpd
-J C:\rpdcomparison\rename-map-file.txt
-O C:\rpdcomparison\release2\equalizedrpd.rpd
Now you can compare the RPDs with the comparerpd utility. comparerpd.exe can be found under <ORA_HOME>\Oracle_BI1\bifoundation\server\bin.
· Syntax
The comparerpd utility takes the following parameters:
comparerpd [-P modified_rpd_password] -C modified_rpd_pathname
[-W original_rpd_password] -G original_rpd_pathname {-O output_csv_file_name |
-D output_patch_file_name | -M output_mds_xml_directory_name} -E -8
· Explanation
Original and modified repository –
Use the base repository as the ‘original’ repository and use repository you want to compare as ‘modified’ repository. The ‘modified’ repository should be the equalized RPD got from step 3.
-O output_csv_file_name is the name and location of a csv file where you want to store the repository object comparison output.
-D output_patch_file_name is the name and location of an XML patch file where you want to store the differences between the two repositories.
-M output_mds_xml_directory_name is the top-level directory where you want to store diff information in MDS XML format.
Note: You can specify an output CSV file using -O, an XML patch file using -D, or an MDS XML directory tree using -M. You cannot specify more than one output type at the same time.
· A comparison command example
comparerpd -P pwd123 -C C:\rpdcomparison\release2\equalizedrpd.rpd -W pwd123 -G C:\rpdcomparison\release1\release1.rpd -O C:\rpdcomparison\results.csv
In this session, I will describe how to compare RPDs with the compare dialogue. The compare dialogue must be used with admin tool opened.
· Open your fixed MUD RPD.
· Go to ‘File’->‘Multiuser’->’Compare with Original’.
It will compare the current modified rpd with the local copy of the original rpd.
You can also use compare dialogue to do the comparison for the local RPDs.
Note: It is recommended to use the compare utility to compare the local RPDs. Remember to extract the subset of RPDs before comparing. Comparing the entire RPDs will be time-consuming.
· Open your local RPD, let’s say RPD1 with admin tool. This RPD is the base RPD in your comparison.
· Go to ‘File’->’Compare’.
· Select the repository or XML file in the popup compare dialogue.
· Enter the password for the repository which you want to compare to, let’s say RPD2. RPD2 will be the modified repository.
· The compare dialogue will open the RPD2, equalize RPD2, then compare the RPD2 with RPD1, and finally show the results.
· You can see what the object looks like in RPD1 and RPD2 by clicking ‘View 1’ and ‘Edit 2’.
View 1 – the object in RPD1
Edit 2 – the object in RPD2