Compare published reports

  • Im not sure if there is a specific tool available or if there is a good way to go about doing this.

    We are trying to clean up the reports we have on our live server compared with the reports we have checked into our source control.

    The movement of reports to suit the folders users required their reports to be in have changed slowly over time and with 100s of reports to check, i wanted a relaviely easy way to check that the reports we have in source control , match the reports we have on our live system.

    My Thought was to clean our test Report Server of all reports and then upload all the reports contained in source control...

    But then what I need to be able to do is identify which reports are different

    Is there a good tool available for this comparrioson, (obviously its not just the report name and location that may have changed, the rdl may also have changed and a developer may not have checked a report in after updating it)

    Any good ideas ?

  • Declare @LiveRS Table (

    RDL varchar(MAX),

    CompletePath nvarchar(max)

    )

    Insert Into @LiveRS

    select convert(varchar(max), convert(varbinary(max), content)) [RDL],Path + Name [CompletePath]

    from [TEST].[Reportserver].[dbo].catalog

    where content is not null

    Declare @SourceControlRS Table (RDL varchar(max),

    CompletePath nvarchar(max))

    Insert Into @SourceControlRS

    select convert(varchar(max), convert(varbinary(max), content)) [RDL],Path + Name [CompletePath]

    from [LIVE].[Reportserver].[dbo].catalog

    where content is not null

    Select SC.CompletePath [Source Control Path], RS.CompletePath [Live Server Path],case

    When SC.RDL = RS.RDL Then 'Match'

    Else 'RDLs different'

    End [RDL Match],

    Case

    When SC.CompletePath = RS.CompletePath Then 'Match'

    Else 'Paths Different'

    End [Path Match]

    From @LiveRS RS

    Full Outer join @SourceControlRS SC on SC.CompletePath = RS.CompletePath

    [/Code]

    that should work shouldn't it?

  • I'd suggest you check out the RS Scripter available here. One of the options of this tool is to download the reports from your live server to a solution file complete with .rdls and such. Then you should be able to use your differencing tools (VSS has some built in but there are plenty of others out there, most likely your source control solution does as well) to check the downloaded solution with that already checked into source control.

    -Luke.

    To help us help you read this[/url]For better help with performance problems please read this[/url]

  • HA! when I was first tasked with this I looked at RS Scripter , but I didn't know you could generate the entire solution

    Much Appreciated!

  • The only thing to note is you should pay attention to what settings you set when you download the reports and create the solution. For example, if you upload a report to SSRS with a defaulted parameter, then decide to change the default but only change it via Report manager, depending on what options you choose with the RS scripter it will either grab the original default or the modified default. Just something to be aware of. Read the manual for more information.

    -Luke.

    To help us help you read this[/url]For better help with performance problems please read this[/url]

Viewing 5 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic. Login to reply