In this series of blog posts, I will show how to write a simple report that makes use of the integrated business intelligence (BI) capabilities that are available in TFS 2010. If you’re unfamiliar with how to use this great feature, this series is for you! This first post will describe the final “product’” we’d like to construct.
What We’re Aiming For
Our end result for this series is the aptly-named Bug’s Life report:
For each specific bug ID, the report shows us the various states that the bug went through, along with the date, reason and the person responsible for setting this state. Here are some things that I plan to cover:
1. How to pull information from the TFS 2010 relational data store
2. How to use the Report Builder tool to create a report and store it in a Report Definition Language (.rdl) file. In particular, we’ll see how to:
- Design the report
- Add a parameter for the user to fill in
- Change the appearance of a field based on its contents
3. How to upload the report to a TFS 2010 Team Project, so it is accessible from the Team Explorer window
Why Write a Report?
The question arises – why bother? We can view the history for each bug directly through Team Explorer. The answer is fairly simple – using reports we can precisely decide how to present the information. Proper use of charts, graphics and color can help us identify trends and bring out important characteristics of our data.
Reporting in TFS 2010
TFS 2010 is based on the enterprise-grade SQL Server 2008 database. As such, it also makes use of SQL Server Reporting Services (SSRS), the component that enables us to combine a visual layout with the relevant data to produce a useful report. This means that we can produce useful visualizations of the hugely-useful amount of data that we put into TFS. In fact, you can access SSRS reports directly from the Team Explorer window using the Reports node:
In the next post, we’ll start the actual work. The first thing to do is to design the actual query: we’ll see how we can pull the data out of TFS based on user input. Stay tuned!