We have a requirement to use WCF as a data source in our reports. [Server Mode]
Dot Net 4.0/ SSRS 2008 R2/ ASP.Net 4.0
The idea behind this is to apply common business rules throughout the application from Reports to standard application grids.
Essentially it would work along the lines of
Normally its as follows
[RDL – SQL Sever Data Provider – DB]
but what we require is
[RDL – XML/Custom Dataprovider – WCF Method – Business Layer – – DB]
Our main app would use the WCF layer also.
Actually for practical purposes its an interface layer so if we had to use Web Services for SSRS instead, it would be considered if there were advantages to this approach.
I have found some articles on our approach
http://www.codeproject.com/Articles/37270/Consuming-a-WCF-Service-from-an-SSRS-RDL-Server-Re
http://msdn.microsoft.com/en-us/library/ms154655(v=sql.105).aspx
http://devblog.bardoloi.com/2011/09/using-wcf-web-services-as-data-source.html
http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx
Either way given the limitations here
http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx#repservxmlds_topic5
its all getting a little scary.
What I do not want to do of course is go down a certain path and this then impacts report design capability, performance and possibly limits the types of reports that can be created.
If anyone has any opinions or experience on the above layout I would appreciate greatly your views and input.
I’m also very much open to possible alternatives in how we could create reports containing data which has been though a business layer that does the appropriate massaging of data etc
Apologies for the long post.
Liam
I’m contemplating the same situation right now. It’s been a while since this questions was asked but I’ll add this for anyone who’s interested in this scenario.
So far it’s not worth the effort, getting SSRS to interact with our WCF service takes too long and has several restrictions, most of them are outlined in the links you provided.
Here are the two alternatives I’m now contemplating
All in all, I’m in a tight spot regarding this issue since there’s no easy way to acomplish this out of the box.
Hope this helps anyone!