The Good folks at SQLdbatips created back in 2005 a nice little tool which helps you migrate your Reporting Services Reports from 1 environment to another. This tool is called RSScripter. It looks like this tool is now longer available for download.
The installation of this tool is pretty simple. Once you have downloaded the zip file you just need to unzip it to the appropriate location you will like to work from. Job done for your installation. How simple was that for and installation?
Now that you have downloaded your copy of RSScripter you now need to configure it to point to your SQL Server Reporting Services environments. To do this you need to open the servers.xml and modify this to point to your environment.
The Tag’s Server Label are what comes up in the tool for you to select which environment you are going to connect to so you can name these appropriately for you environment. And you will need to change the url for your service.
Now that we have configured the tool you can start the work of migrating your reports from 1 environment to another quickly and easily.
I was recently on a client site and needed to use this tool as they were just starting to develop some reports and starting to get to a point of wanting to migrate from the development environment to a testing environment before migrating up into production. Sounds like a pretty normal process that most of us would do. This tool makes this very simple and easy to achieve.
One of the things to take into account is the number of reports that you are going to be migrating. What happens as part of the migration process? Some script files are created that you can copy the folder structure over to your new environment and deploy the scripts. To achieve this there are some values that you need to change in your scripts so that your reports are migrated and work correctly in your test environment.
In your reporting services environment, when you connect to Report Manager, you will more than likely have a Reports folder and under this subsequent folders based on the types of reports or groupings of reports that you have decided is appropriate. When you run the RSScripter tool this will extract the appropriate folder and/or reports that you select. For this Blog I am taking the folders and reports. Your script extract location will generate the same folder structure as you see in Report Manager as well as 3 types of files in each of the sub folders:
*.fldr.rss (script for the folder)
*.rdl.rss (this is the actual script file to migrate your report)
*.rdl (actual report files)
If you require to change the location of the folder your reports will be being created in, or change the Datasource name that your reports are going to connect to then you need to modify these in your scripts before applying them into the new environment. Based on the number of reports this can be quite a tedious process to achieve.
To get around this tedious process I created a powershell script which utilises a token file to be used to search and replace various values in your 2 sets of rss files as listed above.
I may come back to this and include the ability to change the actual folder name the reports are residing in. But at this stage it is just giving the ability to change the root parent folder that the sub folders reside in. If you do not want to perform the changes for the 3 options as available in the token file you can comment out the appropriate line.
Enjoy and I hope this makes your migration time quicker and easier.