Now that you have collected all your information in your SharePoint lists, your business users will want to see reports off them.
You may want to leverage SQL Server Reporting Services for this (I would! I’d love to use SSRS for all the reports I need to create!), but we know it’s not an easy task.
Your options are:
- Query the SharePoint database. Although I say it’s an option, this is NOT AT ALL recommended. Don’t touch your SharePoint content databases directly! Not only that it’s complicated to query it, it also adds extra load to the server that is outside of SharePoint’s control. MS also places no guarantee that the structure of the db will not change when patches or service packs are applied. Your changes may get overwritten, and you will have to re-do them, or re-architect your solution
- Duplicate your data. You can either create an event that inserts into a parallel database when a record is inserted/updated/deleted from your SharePoint list, or dump the data to a database using a batch job that runs on a regular basis. If you choose the latter, you can go with either a console application, or PowerShell (yes, yes, I’m a big PowerShell fanatic). The advantage here is you gain awesome speed in your reports (which could very well be readonly, indexed to the max, and “written” only during the bulk updates). It also makes your report creation a lot easier! The big disadvantage is the latency, which may or may not be tolerable depending on your business.
- Use Web Services But it is not great in terms of performance, and you cannot query and correlate multiple lists (for example if you need to “join” lists together in one report)
- Use a reliable, third party tool
I’ve tried all of the above, and so far, my best bet is using a third party tool called Enesys RS Data Extension.
Enesys has made it easy to create data sources from SharePoint lists. And since I’m a database person, I am happy to report that they support a “limited” version of SQL syntax called SQLLite. Doing basic operations like aggregates, JOINs, UNIONs is fairly easy.
The best part is it plugs into Reporting Services with no issues! You just need to install the Enesys Server component, and away you go.
Interested to learn more? Have a look at these links:
- Reporting on List Data in SharePoint provides a good comparison, and matrix of pros and cons of the different ways to report off your SharePoint Lists.
- Reporting on List Data in SharePoint using Enesys
- Enesys Web Site
Related posts:
- SQL Server PowerShell : How to View your SSRS Reports (rdl) Using PowerShell and ReportViewer ...
- Creating a MOSS VPC Image: The whole 9 yards ...
- SQL Server PowerShell : How to List SQL Server Services using PowerShell ...
- DEVTEACH/VANTUG 2007 – Sharepoint Integration Presentation Materials ...
- DevTeach/VANTUG Sharepoint 2007 Integration Presentation (Nov 2007): Resources ...
- Step by Step Guide to Creating a SQL Server VM Using VMWare ...











Hye,
i am searching for reporting tools for SharePoint2007. Could you show us the steps and demo
Hi,
I too have run through all these options, I created quit a few report with the Ensys tool, but found it took to long to craft the XML, and the report performance wasn’t too good either.
I ended up creating utility that went down the Data duplication path, but not on an over night batch, instead I used Item Event Handlers to make the data replication occur in real-time.
It has been hugely sucessful and it’s now become a fully bonfied product (i-PMO’s SharePoint Data Miner).
Adrian
oops forgot the link, if your interested.
http://www.i-pmo.com.au/Products/SharePointDataMiner.aspx
Adrian
We’ve recently launched a commercial product called SQList that makes this process much easier, and should be relatively cost effective given the time and complexity of the custom development approach.
It takes the pain out of creating clean, normalized SQL Server tables from your SharePoint lists and libraries. SQList is a Windows service; all it needs to access your SharePoint data is a user with at least read permissions and it will keep your SQL tables constantly up to date.
Find out more here: http://www.axioworks.com/sqlist.aspx