One of the hidden features of BI Admin Tool is the ability to run certain commands from command line. I have written about some of the use cases of this here. In addition to the ones that i have written there are some more set of parameters that we can use(i hope Oracle will eventually publish all of them). I stumbled across some of these parameters while installing the BI Apps 18.104.22.168. As i have written in my last post, one of the things that BI Apps installer does is, depending on the modules chosen it automatically adds the corresponding modules into the repository. So, the size of the RPD can vary depending on the Module installed. Considering the fact that Oracle's internal development uses RPD Multi-User development extensively, i have always been keen on understanding how these modules are extracted and merged(actually looks like there is no merging done automatically). After installing BI Apps 22.214.171.124, its a lot more clearer now.
As you are probably aware, BI Apps basically contains a single master BMM (for the core reporting) containing all the necessary fact tables and dimensions. Depending on the modules chosen during install, the number of fact tables in the BMM can increase or decrease. For example, in the screenshots below, we have the BI Apps repository with 4 modules. As you see we just have 4 projects(1 corresponding to each module).
Now let's assume this is what we chose during the first time install of BI Apps. After the successful rollout of all these modules, lets assume that the requirement is to add say Sales Analytics into the repository. BI Apps 126.96.36.199 basically provides us with 2 Repositories.
The first one is the master repository containing all the modules.
And the second one will contain only the necessary modules we have chosen during the install i.e.
This is what we will typically use for our development. Now our requirement is to add the Sales Analytics module into the rpd. To do that we will be using the AdminTool command line switch. So, basically open up a text file and enter the following commands
New C:\oracle\biee11115\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\repository\WithSales.rpd Admin123 ImportRepository Offline C:\oracle\biee11115\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\repository\EnterpriseBusinessAnalytics.rpd Admin123 ImportRepositoryObject Project "Financial Analytics Fusion Edition" True True ImportRepositoryObject Project "Human Resources Analytics Fusion Edition" True True ImportRepositoryObject Project "Financial Analytics Fusion Edition" True True ImportRepositoryObject Project "Project Analytics Fusion Edition" True True ImportRepositoryObject Project "Supply Chain and Order Management Analytics Fusion Edition" True True ImportRepositoryObject Project "Sales Analytics Fusion Edition" True True ImportRepositoryExecute Save
Now use the command line switch of Admin tool to generate the new RPD. All this script does is, it uses the deprecated Import from Repository feature to import the necessary projects. So, this method is not recommended if your existing repository already has data(as there are possibilities of object overlaps). But for an empty repository (like in our case), this will not be a problem.
If we now open up the RPD, it will contain the master repository but with just 5 modules (makes our job of merging with our work repository easier).
From here on, its just a matter of merging this repository with our work repository. You might ask why are we doing the intermediate step of creating a new rpd with just 5 modules. The primary reason is to reduce the number of decisions we will have to make during the final repository merging.
It is also possible to use the direct import from repository to import the new projects(by altering the above command line switch). Since it is deprecated and also since it does not show us what objects are getting updated/deleted etc, it is better it go with the merge option. The above method will also be very helpful when you want to have a centralized development but multiple deployments (similar to BI Apps).