Wednesday, 15 May 2013

OBIEE – 2 Way Merge

                                               The 2 Way Merge, or Parentless 3 Way Merge, is the most reliable method that we have, out of the box, for merging mutliple repository files.   If you have no idea what I’m talking about then follow the link to understand the OBIEE 3 Way Merge.
How does it differ from the 3 Way Merge?
                                               Usually we would checkout a Modified RPD from the MUD, taking a snapshot at checkout called the Original RPD in the process.  When we checkin our changes then we take a  subsequent snapshot of the MUD called the Current RPD.  We merge the Current RPD with the Modified version, using the Original to help understand the source of conflicts.
We may want to merge 2 entirely different RPDs from different streams of work.  I would say that it is good practice to keep a Trunk (or baseline) RPD and consider this as the Current RPD.  Additional RPDs can be merged into this baseline; they should be merged one at a time and each time regarded as the Modified version.  A blank RPD should be created and this should be regarded as our Original version.
Files required for the Merge
Files required for the Merge
 Steps to merge into a single Merged RPD are detailed in the next section.
Creating the Merged RPD
Creating the Merged RPD
This is not the only method of merging RPDs, but it is quite reliable; there is a short discussion at the end of the blog, following the How To steps.
Merging 2 Repository Files
                                          Make sure that you have the three source files, as described in the previous section.  We need to open the Current version, which will be your Baseline.  I would also take a backup.
  • Once open, select Merge from the File Menu
Select Merge from File Menu
Select Merge from File Menu
  • You will be asked to select the Original Repository; this will be the blank RPD created
Select the Original RPD
Select the Original RPD
  • In the Merge Repositories Window, click to Select your Modified RPD file
Click to Select Modified RPD
Click to Select Modified RPD
  • Browse to and select the Modified version, the in-coming RPD.
Select the Modified Branch RPD
Select the Modified Branch RPD
  • You will need to provide valid credentials to login
Enter Modified Login Credentials
Enter Modified Login Credentials
  • In the Merge Repositories Window you have all source files named; select which RPD to take each conflict from.  Once all conflicts are resolved you may click Merge.
Resolve any Conflicts & click Merge
Resolve any Conflicts & click Merge
  • Once the Merge is complete, click Yes to perform a consistency check; you should do this
Click Yes to check consistency
Click Yes to check consistency
  • All going well there should be no issues; click Close to complete the process
Click Close to complete check
Click Close to complete check
The process is quite straight forward; and although you will find some niggling issues, in the main it is a reliable one.
Points to Note
                                                        The main problem with this approach is that any objects that do not translate into the Presentation Layer will not be included in the Merged RPD.  I think it is rare this issue will occur; this currently occurs with a client where we have a database used only for a session variable; the database is not included in the Merged RPD and the initialization pool errors during the conssitency check as it does not relate to any Connectin Pool.
To resolve this issue you can manually copy and paste the Database Object into the Merged RPD at the end of the process.  If the process is likely to repeat with a fequency then we can use UDML scripting to apply the missing objects following the Merge.
There are other methods of merging Repositories, but I find this method most reliable.

No comments:

Post a Comment