Reporting (SSRS and Excel) in TFS makes use of SQL Server Analysis Server, or OLAP cube. This cube is by default refreshed every two hours. This is in most cases frequently enough to get the correct information. You can however change this default behavior. You can either change the interval of the warehouse refreshment or you can refresh the cube manually.

Be aware that SSRS is caching the reports, which means that when the data might not be refreshed in the SSRS report as you expected. For changing the caching settings of the reports see http://msdn.microsoft.com/en-us/library/ms157146.aspx.

Change the interval

To change the interval follow the following steps

1. Go to the desktop of the Application Tier

2. Open Internet Explorer and type http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx in the address bar. You get a list of all available web services.

clip_image001

3. To change the interval, choose the ChangeSetting webservice

4. You will see a new page where you can enter the setting and its new value.

clip_image002

Enter in the SettingId: RunIntervalSeconds
and in the newValue the number of seconds (3600 is one hour)

5. Click on Invoke to change the setting

Manually refresh the cube

You can also choose to refresh the cube once. To do that follow the following steps.

1. Open the list of web services again with http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx

2. Select the ProcessWarehouse web service from the list

clip_image003

3. Enter in the collectionName the name of the Project Collection you want to refresh. The default collection is named DefaultCollection, but you can change that in the collection that is in use on your TFS environment.

4. Click on Invoke

5. Go back to the list of webservices and click on the ProcessAnalysisDatabase webservice, and enter in the processType textbox the value Full.

clip_image004

6. Click on Invoke

7. The data warehouse is now refreshed. This can take some time when you have a large database. To check the status of the warehouse update, you can check the GetProcessingStatus webservice. You can leave the parameters for the webservice blank to retrieve all information. The warehouse update is ready when all jobs have the “Idle” job status.