http://schemas.microsoft.com/sqlse rver/reporting/2010/01/reportdefin ition
Hello, We have a 2008 R2 SP1 server which we are developing SSRS reports for. We also have Report Builder 3.0 in this environment. When getting ready to promote reports from dev to test (we are trying to deploy reports with rs.exe using RSS scripts), we found that reports developed in RB give the following sort of error: System.Web.Services.Protocols.SoapException: The report definition is not valid or supported by this version of Reporting Services. This could be the result of publishing a report definition of a later version of Reporting Ser vices, or that the report definition contains XML that is not well-formed or the XML is not valid based on the Report Definition schema. Details: '.', hexadecimal value 0x00, is an invalid character. Line 102, position 10. at Microsoft.ReportingServices.WebServer.ReportingService2005Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings) at Microsoft.ReportingServices.WebServer.ReportingService2005.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, Warning[]& Warnings) Reports developed in BIDS deploy without error. In fact, if we import an RB report into BIDS and deploy it manually, there are no issues. Looking at the code page, there are a few differences, but the crux of it seems to be with the declaration. If I create a report in BIDS (2008 R2 SP1), we get teh following on the code page: < Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner"> While the code page from RB 3.0 looks like this: < Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition"> The report definition also contains a new node <ReportSections>, so there are definite schema differences. I tried to take a look at the web site: http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition and the page is not found (the 2008 version exists.) So what's the deal? Why does it seem like BIDS is using an older report definition even with the latest version of BIDS? How come RB is out of synch and how can I deploy these reports using rs.exe? Has anyone run into this error yet? Thanks for any thoughts on this, Mark Update: I created a new report in BIDS, confirmed that it was using the 2008 schema, dragged in an indicator (new in 2008 R2) and BAM! the schema updated to 2010. So sweet, now it seems I can't deploy anything with a new feature in it via rss scripts?
September 30th, 2011 10:21am

Hi Mark Wojciechowicz, Report Builder 3.0 provides an intuitive report authoring environment for business and power users. It supports the full capabilities of SQL Server 2008 R2 Reporting Services. Have you tried to open reports that are developed in BIDS (SSRS 2008 R2) using Report Builder 3.0? Please try to replace report definition schema with the following: http://msdn.microsoft.com/en-us/library/ee720565.aspx For more information about it, please see: Planning for Report Authoring and Report Deployment: http://msdn.microsoft.com/en-us/library/dd207009.aspx If you have any question, please feel free to ask. Thanks, Eileen
Free Windows Admin Tool Kit Click here and download it now
October 3rd, 2011 3:53am

Eileen, Thank you for the reply and the links! The first link is exactly the schema that I am trying to deploy through rs.exe. In fact, if you create a blank report in bids, then look at the code page, it will show the 2008 version. Then if you add any of the new items (in R2), like an indicator or sparkline, the schema will be replaced with the 2010 version. Whether I try to deploy a RB 3.0 report or a report with 2008 R2 features, each fails with the use of the schema. One side note on the second link, it has links to each of the rdl schemas, of which 2010 version is a dead link: http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition I would welcome any work arounds that would still allow me to use RS.exe. Mark
October 3rd, 2011 9:46pm

I somehow received feedback from another user on this (TPinney) in my email, not sure why the entry does not seem to be in here. In any case, I do not have a work around - but thank you for the reminder. I put this up on connect, please give it a vote: https://connect.microsoft.com/SQLServer/feedback/details/704194/2010-report-definition-not-supported-with-rs-exe-utility Mark
Free Windows Admin Tool Kit Click here and download it now
November 15th, 2011 5:22pm

What does your rs.exe command line look like? Are you specifying the -E Mgmt2010 option to use the 2010 management endpoint?
November 15th, 2011 5:44pm

I did a quick test and it seems like it is not using the same methods. I am getting errors like: error BC30456: 'CreateReport' is not a member of 'Microsoft.SqlServer.ReportingServices2010.ReportingService2010'. and error BC30332: Value of type '1-dimensional array of Microsoft.SqlServer.ReportingServices2010.SearchCondition' cannot be converted to '1-dimension al array of Microsoft.SqlServer.ReportingServices2 010.Property' because 'Microsoft.SqlServer.ReportingServices2010.SearchCondition' is not derived from 'Microsoft.SqlServer.ReportingServices2010.Property' The above is for using the FindItems method error BC30456: 'Value' is not a member of 'Microsoft.SqlServer.ReportingServices2010.SearchCondition'. I'll hack around with it more tomorrow, but it doesn't seem to help, Mark
Free Windows Admin Tool Kit Click here and download it now
November 15th, 2011 6:28pm

I believe you need to use the ReportService2010 management endpoint to avoid the "invalid report definition" error you were hitting. The old ReportService2005 endpoint does not support reports using the new report definition namespace. Regarding the other errors you are hitting, there were several API changes made between the 2005 and 2010 endpoints. The CreateReport API was replaced with the more generic CreateCatalogItem API. Also, a new parameter was introduced in the FindItems API. You need to modify your RSS scripts to account for these changes. Here is some info on those two particular APIs: http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.createcatalogitem.aspx http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.finditems.aspx
November 15th, 2011 8:05pm

Hi Tristan, I think this is answer then, but I'm having a hard time converting the script to the 2010 version. I'm wondering if any samples are available? Mark
Free Windows Admin Tool Kit Click here and download it now
November 17th, 2011 12:57pm

I did find this sample in another thread: http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/44369a1f-94c6-416c-83e4-76ca3285fac1/ I'm not aware of any extensive collection of 2010-specific sample scripts. Could you provide your scripts and the issues you're running into?
November 17th, 2011 1:55pm

Thanks Tristan - I will check out the link. I was able to get the finditems and publish report piece working. My last challenge is the creation of the data source. I will show you what I am doing in the meanwhile and the error that is being returned: Code: Public Sub CreateDataSource(ByVal name As String, ByVal extension As String, ByVal connectionString As String, ByVal CredentialType As Integer, ByVal connUser As String Dim definition As New Dim warnings As Warning() = definition.CredentialRetrieval = CredentialType definition.ConnectString = connectionString definition.Enabled = definition.EnabledSpecified = definition.Extension = extension definition.ImpersonateUser = definition.ImpersonateUserSpecified = definition.Prompt = definition.UserName = connUser definition.WindowsCredentials = warnings = rs.CreateCatalogItem( "DataSource", name, "/Data Sources", False, definition, Nothing If Not (warnings Is Nothing) Dim warning As For Each warning In Next Console.WriteLine( "Data source {0} created successfully" End Catch e As End End Error: error BC30455: Argument not specified for parameter 'Warnings' of 'Public Function CreateCatalogItem(ItemType As String, Name As String, Parent A s String, Overwrite As Boolean, Definition() As Byte , Properties() As Microsoft.SqlServer.ReportingServices2010.Property, ByRef Warnings() As Microsoft.SqlServer.ReportingServices2010.Warning) As Microsoft.SqlServer.ReportingServices2010.CatalogItem'. warnings = rs.CreateCatalogItem("DataSource", name, "/Data Sources", False, definition, Nothing) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error BC30311: Value of type 'Microsoft.SqlServer.ReportingServices2010.DataSourceDefinition' cannot be converted to '1-dimensional array of Byte '. warnings = rs.CreateCatalogItem("DataSource", name, "/Data Sources", False, definition, Nothing) The definition in this last line is being underlined. But it seems unhappy about the way that I am setting warnings. Thanks for any thoughts on this. Mark Sub Try Exception Console.WriteLine(e.Message) If , name) Else warning warnings Console.WriteLine(warning.Message) Warning Then ) Try False Nothing 'Use the default prompt string. True False True True Nothing DataSourceDefinition() 'Define the data source definition. )
Free Windows Admin Tool Kit Click here and download it now
November 17th, 2011 6:02pm

For data sources, I would recommend that you continue using the CreateDataSource API, which still exists on the 2010 endpoint: http://msdn.microsoft.com/en-us/library/reportservice2010.reportingservice2010.createdatasource(v=SQL.105).aspx rs.CreateDataSource(name, "/Data Sources", False, definition, Nothing)
November 18th, 2011 3:33am

Tristan, the data source method you mentioned above works perfectly with old code - thanks for that. In another case, I was testing publishing one of the newer report versions and I encountered that error again. Here are the details: The Script was run to deploy are report called ETL Dashboard in the DBA Reports folder: Public Sub PublishReport(ByVal reportName As String, ByVal ReportFullPath As String, ByVal ReportFolderName As String) Try Dim stream As FileStream = File.OpenRead(ReportFullPath) definition = New [Byte](stream.Length) {} stream.Read(definition, 0, CInt(stream.Length)) stream.Close() Catch e As IOException Console.WriteLine(e.Message) End Try Try rs.CreateCatalogItem("Report", reportName, ReportFolderName, True, definition, Nothing, warnings) If Not (warnings Is Nothing) Then Dim warning As Warning For Each warning In warnings Console.WriteLine(warning.Message) Next warning Else Console.WriteLine("Report: {0} published successfully with no warnings", reportName) End If Catch e As Exception Console.WriteLine(e.Message) End Try End Sub The following error was returned: System.Web.Services.Protocols.SoapException: The report definition is not valid or supported by this version of Reporting Services. This could be the result of publishing a report definition of a later version of Reporting Ser vices, or that the report definition contains XML that is not well-formed or the XML is not valid based on the Report Definition schema. Details: '.', hexadecimal value 0x00, is an invalid character. Line 7497, position 10. at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, CatalogItem& ItemInfo, Warning[]& Warnings) at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateCatalogItem(String ItemType, String Name, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, CatalogItem& ItemInfo, Warning[]& Warnings) at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateCatalogItem(String ItemType, String Name, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, CatalogItem& ItemInfo, Warning[]& War nings) This was using the CreateCatalogItem method and It's the same error as reported earlier. I did use the -E Mgmt2010 swtich when running the command. Any thoughts on this would be greatly appreciated Mark
Free Windows Admin Tool Kit Click here and download it now
November 18th, 2011 1:31pm

Hmm, this may not actually be an issue with the report definition namespace, so my previous answer might be inaccurate. The error seems to be around the RDL content itself. Would it be possible for you to provide the RDL content so we can see if anything sticks out?
November 18th, 2011 3:08pm

Hi Tristan, Sorry for the delay in reply to this problem. We have been focused on other parts of the project, but I would like to tie up this deployment issue. In the following link, you will find an example rdl which I can deploy through bids, but I get errors for when using the rss script. Also, I will attach the command and error message: Link to test file Command and error: cmd /c "C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DeploymentUtilities\ssrs\rs.exe" -E Mgmt2010 -i C:\Windows\system32\WindowsPowerShell\v1.0\Modules\DeploymentUtilities\ssrs\Publish-SsrsReport.rss -s http://localhost/reportserver -v TargetServer=http://localhost/reportserver -v ReportServerPath="/DBA Reports" -v DataSourceServerPath="/Data Sources" -v ReportFilePath="C:\Temp\SSRS_2008_R2_Report.rdl" -v ReportName="SSRS_2008_R2_Report" System.Web.Services.Protocols.SoapException: The report definition is not valid or supported by this version of Reporting Services. This could be the result of publishing a report de finition of a later version of Reporting Services, or that the report definition contains XML that is not well-formed or the XML is not valid based on the Report Definition schema. D etails: '.', hexadecimal value 0x00, is an invalid character. Line 371, position 10. at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateReport(String Report, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Properties, CatalogIt em& ItemInfo, Warning[]& Warnings) at Microsoft.ReportingServices.WebServer.ReportingService2010Impl.CreateCatalogItem(String ItemType, String Name, String Parent, Boolean Overwrite, Byte[] Definition, Property[] P roperties, CatalogItem& ItemInfo, Warning[]& Warnings) at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateCatalogItem(String ItemType, String Name, String Parent, Boolean Overwrite, Byte[] Definition, Property[] Prope rties, CatalogItem& ItemInfo, Warning[]& Warnings) <ErrorCode xmlns="http://www.microsoft.com/sql/reportingservices">rsItemNotFound</ErrorCode><HttpStatus xmlns="http://www.microsoft.com/sql/reportingservices">400</HttpStatus><Messag e xmlns="http://www.microsoft.com/sql/reportingservices">The item '/DBA Reports/SSRS_2008_R2_Report' cannot be found.</Message><HelpLink xmlns="http://www.microsoft.com/sql/reporting services">http://go.microsoft.com/fwlink/?LinkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsItemNotFound&amp;ProdName=Microsoft%20SQL %20Server%20Reporting%20Services&amp;ProdVer=10.50.2500.0</HelpLink><ProductName xmlns="http://www.microsoft.com/sql/reportingservices">Microsoft SQL Server Reporting Services</Produ ctName><ProductVersion xmlns="http://www.microsoft.com/sql/reportingservices">10.50.2500.0</ProductVersion><ProductLocaleId xmlns="http://www.microsoft.com/sql/reportingservices">127 </ProductLocaleId><OperatingSystem xmlns="http://www.microsoft.com/sql/reportingservices">OsIndependent</OperatingSystem><CountryLocaleId xmlns="http://www.microsoft.com/sql/reportin gservices">1033</CountryLocaleId><MoreInformation xmlns="http://www.microsoft.com/sql/reportingservices"><Source>ReportingServicesLibrary</Source><Message msrs:ErrorCode="rsItemNotFo und" msrs:HelpLink="http://go.microsoft.com/fwlink/?LinkId=20476&amp;EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&amp;EvtID=rsItemNotFound&amp;ProdName=Micro soft%20SQL%20Server%20Reporting%20Services&amp;ProdVer=10.50.2500.0" xmlns:msrs="http://www.microsoft.com/sql/reportingservices">The item '/DBA Reports/SSRS_2008_R2_Report' cannot be found.</Message></MoreInformation><Warnings xmlns="http://www.microsoft.com/sql/reportingservices" /> Thanks for help and thoughts on this, Mark
Free Windows Admin Tool Kit Click here and download it now
December 13th, 2011 5:52am

It seems the byte array in PublishReport is being initialized with one too many elements, so the extra element at the end is causing issues on creation. I tweaked the script below (the line I changed is bolded) and was able to successfully upload your report: Public Sub PublishReport(ByVal reportName As String, ByVal ReportFullPath As String, ByVal ReportFolderName As String) Try Dim stream As FileStream = File.OpenRead(ReportFullPath) definition = New [Byte](stream.Length - 1) {} stream.Read(definition, 0, CInt(stream.Length)) stream.Close() Catch e As IOException Console.WriteLine(e.Message) End Try Try rs.CreateCatalogItem("Report", reportName, ReportFolderName, True, definition, Nothing, warnings) If Not (warnings Is Nothing) Then Dim warning As Warning For Each warning In warnings Console.WriteLine(warning.Message) Next warning Else Console.WriteLine("Report: {0} published successfully with no warnings", reportName) End If Catch e As Exception Console.WriteLine(e.Message) End Try End Sub
December 16th, 2011 2:46pm

Tristan - this works on all newer and older version of reports - thank you for the fix! I have to ask, so I am smarter about this sort of thing in the future, how did you go about finding that the byte array had too many elements in it? Also, when you say that it is being intialized with too many elements, is there something wrong in the way that I am calling the subroutine? Thank you again for the help and guidance on this, Mark
Free Windows Admin Tool Kit Click here and download it now
December 19th, 2011 8:43am

Hi Tristan, I am also facing a similar issue while upgrading my SSRS component from 2005 to 2012. Can you please help me out? Here is the description: We have an SSRS component to generate reports using: Report Server: Microsoft Windows Server 2003 R2, Standard Edition, SP2DB Server: Microsoft SQL Server 2005 Currently, Reporting Services application based on the Web service is using the rsutility (RS.exe), the Reporting Services script environment. Our reporting service script is written in Visual Basic .NET and uses the Mgmt2000 endpoint to access the various operations of Report Server Web Service. The Report Server is configured to Native mode. Current script attached (RunReportFromXML.rss). Going-to-be Setup: We have upgraded our Report Server and DB Server to the following versions of Windows and SQL Server: Report Server: Windows Server 2008 R2 Enterprise, SP1DB Server: Windows Server 2008 R2 Enterprise, SP1; Microsoft SQL Server 2012 Now, after upgrading the Report Server and DB Server the Reporting Services VB script is failing at the rs.exe command. Here is the analysis and the steps that we have done so far to troubleshoot this issue: Ran the SSRS component using the endpoint Mgmt2000 and got the error: Invalid Endpoint, so we changed it to Mgmt2005 per http://msdn.microsoft.com/en-us/library/ms162839.aspx. After changing the endpoint when we execute the package we are getting the following error: error BC30456: 'Render' is not a member of 'Microsoft.SqlServer.ReportingServices2005.ReportingService2005'.Updated the Management Endpoint to Mgmt2010 since this endpoint merges the functionalities of the endpoints Mgmt2005 and Mgmt2006 perhttp://msdn.microsoft.com/en-us/library/ms155398.aspx. After changing the endpoint when we execute the SSRS component we are getting the errors like: error BC30451: Name 'ExecutionSettingEnum' is not declared, rs.SetExecutionOptions(reportPath, ExecutionSettingEnum.Snapshot, definition) error BC30456: 'Render' is not a member of 'Microsoft.SqlServer.ReportingServices2010.ReportingService2010'. results = rs.Render(reportPath, format, _ etc. etc. After going through the ReportingService2010 Class Properties and Methods we realized that some of the methods that we were referring in our Reporting Service Script are obsolete. For e.g. GetReportParameters in ReportingService2005 class is changed to GetItemParameters in ReportingService2010. This way we are able to resolve all the errors except BC30456: 'Render' is not a member of 'Microsoft.SqlServer.ReportingServices2005.ReportingService2005'. It seems that this Render method which is a part of ReportExecutionService is not exposed by ReportService2010 endpoint since it is a method which is exposed by an Execution Endpoint and not by a Management Endpoint.So, in order to access Render method through ReportExecutionService we ran the SSRS component using the endpoint Exec2005 and got the list of errors like: error BC30456: 'SetExecutionOptions' is not a member of 'Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService'.rs.SetExecutionOptions(reportPath, ExecutionSettingEnum.Live, Nothing) error BC30456: 'GetReportParameters' is not a member of 'Microsoft.SqlServer.ReportingServices2005.Execution.ReportExecutionService'.reportParameters = rs.GetReportParameters(reportPath, historyID, forRendering, parameters, Nothing) etc.etc. In this case we are getting errors corresponding to all those methods which are not exposed by this endpoint but by ReportService2010, for e.g., GetReportParameters etc. as can be seen in the attached error log file. Now here are the questions / issues: What is the easiest & Microsoft Recommended way to upgrade SSRS (from 2005) when some the options/components/methods are obsolete in SSRS 2012?How can we use the methods exposed by both ReportService2010 and ReportExecutionService using a single end point using the aforementioned Report Server and DB Server configuration? We tried to use the endpoints Mgmt2005 and Mgmt2010 but failed to access the methods exposed by Exec2005. When we use the endpoint Exec2005 we fail to access the methods exposed by the Management End Points (Mgmt 2005 and Mgmt2010).If the answer to #1 is NO, then, what are our options to execute the existing SSRS Package with the aforementioned Report Server and DB Server configuration? Abhinav Vohra.
May 17th, 2012 3:10pm

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics