There are few methods that can be used individually or combined, but first of all, here are background information on the issue:
In Analyzer each report points to one or more specific data source objects (by ID), and each data source object points to a specific SSAS server. The reports are stored in encrypted binary format so there is no way to modify them directly. So consider you are using identical cube and database, then the issue is -- how to switch the report to another data source object (ID) when imported into anther Analyzer.
Method I - Keeping Data Source IDs Identical
If you have control over the creation of the data source objects in your Analyzer systems then with some careful planning , you can manually set all data source objects in all your Analyzer instances to be the same. For example, assume we will create a data source called "Default_DataSource" for both your development and production Analyzer, then after you create the data source object in your development Analyzer, immediately go to the development Analyzer system database to obtain Default_DataSource's ID, it will be an integer value (e.g. -982224858), you can set this value to another more easily remembered value (e.g. 1234567890) or leave it as-is. Now create the Default_DataSource data source object in your production system, then immediately go to the production Analyzer system database to look up Default_DataSource, now change its ID to match the ID in your development Analyzer.
Once your data sources are established, then you can freely export/import report since no matter on which system the reports are created, they will always point to the same data source sine the ID of the same data source on each system are identical. PLEASE NOTE: The is under the assumption that the name of the database and the cube are also identical between systems.
Pro: Easiest way to perform report migration
Con: The name of database and cube cannot be changed (if they do change, then you will have to combine this method with either method II or III). Takes time to setup and to keep the data source IDs identical between systems.
Method II - Modify the Exported Report XML File
Through this method, you will need to export the report at the source Analyzer, modify exported XML file, then import the file at the destination Analyzer.
1. Use the Report Import/Export function to export reports to a XML file.
2. Modify the XML file by injecting modification tokens into the XML file.
3. Use the Report Import/Export function to Import the XML file at the destination Analyzer.
For detailed information please see this link.
Pro: No need to take the system offline.
Con: The method is not the most reliable, it requires precise input.
Method III - Use Report Schema Export/Import to Modify the Metadata
A feature in the latest version of the Analyzer is the ability to export the entire table that contains all the reports to a readable database table, then either directly or through SQL queries to modify the metadata.
1) Export the reports using the Report Import/Export function, this will save the reports into a XML file
2) Import the reports to all 11 different environments using the Report Import/Export function.
3) Use the Schema Export function to export the report table into a readable schema table
4) Write simple query to search and replace reports with the correct data source ID. If it is necessary, also modify the name of the database or the cube, etc.
5) Use the Schema Import function to import the schema table back to report table.
For more information, please download Support Guide - Report Metadata Query and Modification.pdf below.
Please Note: The drawback with this approach is that your must take your Analyzer system database offline since the Report Schema Import will simply replace the dbo.Reports table with contents so any new reports that weren't exported by Report Schema Export will not be included.
Pro: Most flexible way of modifying the metadata.
Con: Need to take the system offline.
0 Comments