Change default locaton that tfs reporting datasources are created - reporting-services

The Reporting Taxonomy guru in my office has requested that during our next TFS upgrade, that the datasources Tfs2010ReportDS and Tfs2010OlapReportDS not be placed right in the root/home folder of the reporting server. He would like all tfs datasources and tfs reports tucked away in their own tfsreports folder. While the reports install nicely in a folder, the datasources appear to have no way to control where they are created. Specifying a folder within the TFS administration console while configuring report appears to affect only reports, not datasources. While I could move the datasources after they are created, I fear that I would break all the reports that depend on the datasource and force me to manually update each one. Because we didn't follow best practices of keeping everything in one team project, this would require that I visit 50+ reports. Am I missing a some setting somewhere that controls where the datasources are created?
P.S. we are recreating all reports as a part of the upgrade using this MSDN article (https://msdn.microsoft.com/en-us/library/dn148128.aspx) and powertools, etc.

This is not supported by TFS and as per the documentation it owns both the instance of RS and SQL and any change to the documented installation and permissions will negate your support agreement with MS (invalidate the warranty).
However you can achieve it if those pushing for this change are willing to take on that support from MS. They will need to manually configure all reports up from, and then continue to manually update the reports when a new team project is created. This procedure may need to be reverted and redone every time you upgrade TFS so they are taking on this task on a quarterly basis.
I would recommend that you NOT do this and explain to them that the instances of RS, AS, and SQL used by TFS are owned and managed by the application itself and that they should keep their grubby paws off of it. 90% of all issues I see in the field (I have been a TFS consultant since 2010) in TFS configuration and upgrade are due to DBA's believing that they know better than the product team.
TFS and all its systems should be a black box managed by your TFS Support team.

Related

Versioning of reports in reporting services (SSRS)

It is not the first time this question has been asked, but no solution has been found yet. The only thread I found somewhat relevant was this but it is 4 years old: SSRS Reports Versioning
Perhaps a solution has been found since then?
Back to my questions:
I have several reports in a Visual Studio solution (BIDS). From here I can deploy to several reporting servers: Test1, Test2 and Production.
1) It seems that the granularity of deployment is: Reports, Datasets and Datasources. This can be setup in Properties for the solution. But I want to be able to only deploy a single report, if I only have changes to one report. How do I do this? As it is now it seems that I have to deploy ALL reports.
2) Since I have more than 1 place to deploy there is a possibility of the reports getting out of sync. Normally the procedure would be to deploy the reports to Test until everything is fine, and thereafter deploy to Production. But since this is a manual process something can go wrong. Therefore I believe it would be nice to have some sort of versioning on the individual reports. But I can find no way of doing this? I'm thinking that it would be really nice if a timestamp and/or versionnumber could be set on the reports when they are deployed. Is there a way to do this?
Thanks in advance.
How about putting the version number of the report on the report itself? You would need to run the report to see it though.
To deploy a single report, right-click on the report name and Deploy to deploy that report (or dataset or data source).
As far as the deployment issues, you can use version control such as Visual Studio Team Foundation Server.
https://www.visualstudio.com/en-us/products/tfs-overview-vs.aspx

How to use SSRS solution through TFS

I am using SQL server 2012. I have created one SSRS solution in SSDT (Sql sever data tools).
I want to add it in TFS Visual Studio 2010. It only used for Syncing purpose for all team members. so every one can get all reports by doing get latest every day. there is about 300 reports for different modules. I want to use SSRS solution through TFS.
previous project i was facing problem about Syncing of all my team members. because individual is created their own solutions and after completing report they are upload it on report server.
I don't want to do it again.
I want to use TFS to Syncing all teams members for all reports.
Any solution for it?
TFS will allow your team members to sync the reports locally to their machines whenever a change occurs or a report is added. Your team members will just need to get latest from TFS to their local workspace.
Sounds like you need to create a process for your team to follow and educate them on how reports should be added or modified.
For example, if you have a folder called reports in TFS then anytime a developer needs to make a change or add a report they would add it to this solution and folder. Lock down the ability to deploy reports straight to the server until approved therefore developers cannot bypass TFS.
Steps a developer would take to ensure the latest report is being updated or changed:
Developer pulls down latest report folder from TFS locally
Developer makes updates and changes
Before developer checks in any changes they again pull down the latest to ensure they will not overwrite any new changes. A possible merge may be required if the report has changed since the developer started working on it.
Developer checks in changes to TFS
Once changes to reports are approved then the report is deployed to reporting server. This could be done via a TFS build.
Hope this helps. Please let me know if I misunderstood your question or problem.
Looks like you going to need to make a custom plugin that can sync your reports to other teams when it is checked in

SSRS Create development environment from Live server

I've inherited a live SSRS server and have been asked to amend a lot of reports that are on there.
Is there a quick way I can "export" all of the reports/data sources to a local instance so I can develop against it using BIDS?
e.g. Can I copy the ReportServer database from Production?
What else would I need to do?
I'd like to be able to have a Development copy of everything, with DataSources pointing to copies of the production databases but with the same names. Therefore I could re-write the report and re-define any SP's required locally, and then just deploy the new RDL to the server along with the ALTER SP scripts.
Is that possible or even sensible!?
Personally, with the volume you mentioned in the comments (30 RDL's and 3 databases) I wouldn't recommend some automated cloning of the entire Reporting setup from production to local. Instead, I'd suggest the following:
Reports
Go to the web front-end for your reportserver (typically http://yourserver/reports). Find each report, open it, and on the Properties tab click the Edit button. This button does not do what you might expect (edit the report inside the browser), but instead offers you a download of the RDL file. Save all the RDL files in one folder on disk.
With 30 reports manually downloading the reports may take you maybe an hour, max. This will probably beat most automated approaches. And since you should only need to do this step once...
Databases
It's not entirely clear from the question, but if you only have production databases and no DTAP setup yet, now may be a good time to start with that. You could host clones of the 3 production databases on a test server or possibly on your dev environment. Note that the schema's important here (should be the same as production), the data doesn't have to be entirely up to date.
Alternatively you can skip this bit and develop your reports against the production databases, assuming you can create connections from your dev machine to the production databases. Up to you.
Visual Studio / BIDS
This bit has a few parts to it:
Create a new reports project and solution in Visual Studio.
Add the existing RDL files you've downloaded earlier.
Depending on how the reports were set up, you may need to add shared data sources in your project, to get your reports up and running.
After all this, you should be able to preview your reports from Visual Studio (either with data coming from the "cloned" databases, or directly from production).
At this point you should also be able to safely make changes and preview/test them before deploying them.
Be sure to add the solution, reports, etc. to your version control system of choice.
Deployment
Once you've made changes you want to deploy to the reportserver, you have two basic options:
Deploy them using BIDS (see also the deployment properties MSDN page)
Go back to the web front-end, find the report, open the Properties tab again, click the Update button. This allows you to re-upload the RDL file with the changes you've made.
From now on you can just rinse and repeat on making updates and deploying the reports. No need for cloning/exporting the entire SSRS instance to keep things in sync.

How can I report on files with pending changes in TFS?

I'd like to create a simple report that shows files that currently have pending changes (checked out) from a TFS 2008 server. I know that I can use the "Find in Source Control" option from Team Explorer, but I would rather generate a reporting services report. Ideally, I'd be able to show when the file was checked out and the user that checked it out, but that's not imperative.
If the data isn't pushed to the TFS data warehouse by default, then I'd like to find the relational table(s) in the SQL Server instance that would need to be queried.
I've spent some time digging around the TFS data warehouse and looking at all of the canned Reporting Services reports that I can get my hands on, but everything seems to be geared towards work items, check-ins associated with work items, etc...
If you're looking for some easy to read data and not too worried about print outs, have a look at the TFS sidekick application by Attrice. Very helpful and if you have the correct permissions, you'll be able to see all the checked out files.
http://www.attrice.info/cm/tfs/
I doubt the information you're looking for is in the data warehouse and even if it was it might not be fresh enough for your purposes. By default the warehouse is updated once an hour.
You could use SSRS to report directly against the TFSVersionControl database but I would not recommend going this route. The database is not documented and chances are very good that it will change in the next version. It could also have performance implications if your queries are not written correctly.
A better solution would be to use the TFS web services as your SSRS data source. There are services you can call to get all files that are checked out. This iformation is always current and the queries it runs are highly optimized.
Example command line (Studio 2008):
"C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf.exe" status /recursive /user:*

SQL Server Reporting Services - Report Maintenance Tools

It seems very easy to deploy new reports to a reporting server directly from visual studio, however when these are to be pushed into our web farm (where developers have no access), this either needs to be done manually, report by report, through microsoft's web front end, or into an MSI.
However, from time to time we might want to reconfigure report options on the report server such as, changing the data source for all reports or changing the caching options for them. Rather than create a whole new MSI for each set of changes or do this manually I wondered if anyone knew of any alternative tools that can update multiple reports at a time or even able to deploy the contents of a folder into a folder on the reporting server.
Cheers, Chris
For Administrators, rs.exe, http://technet.microsoft.com/en-us/library/ms162839.aspx , allows remote scripting via VBScript. If it's possible to give SOAP access, you should be able to accomplish all you want and more without resorting to an MSI.
Thanks, Jamie
Microsoft Reporting Services - Developer