Groups | Blog | Home
all groups > sql server reporting services > september 2007 >

sql server reporting services : SOAP Client Requests & Responses



Don Miller
9/30/2007 12:29:34 PM
Although MS says over and over that RS can be used via SOAP web services
(not URL Access) with any SOAP-capable application to execute and return
rendered reports, I've searched for hours trying to find even one example
where a non-.NET application (like VB6 or Classic ASP) constructs a complete
SOAP request (as a string) to send over HTTP to execute a specific report
for a specific customer (with a parameter or two, credentials, ????) using
the RS webservice (ReportExecution2005.asmx). And then what would a typical
response look like? (e.g. Warnings, ???) The only example of a request and
response in BOL is this simple request/response:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItem xmlns="http://www.microsoft.com/sql/ReportingServer">
<item>/Samples/Report1</item>
</DeleteItem>
</soap:Body>
</soap:Envelope>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<DeleteItemResponse
xmlns="http://www.microsoft.com/sql/ReportingServer" />
</soap:Body>
</soap:Envelope>

Yes, the WSDL is available (16 pages long) if one could comprehend it all,
but there is no documentation of the dozens of gotchas that probably exist
(e.g. leaving out a single element could bomb any request). And yes, I
understand .NET hides such details to make it easier for .NET programmers
but this all becomes basically impossible for non-.NET developers (the lack
of examples on the web would suggest this).

Does it take a series of method calls within a SOAP request to actually
execute a report? (e.g. <LoadReport><Render>)

Is there any way to see what working, real-life SOAP client requests and
responses look like for report executions?

I'm lost :(

Mike G.
10/1/2007 12:00:00 AM
Just do a search on the internet for "call web service vbscript". You may
not find any examples that call the sql reporting web service. But there are
many examples of calling other web services.

No, it won't be as easy as using .net.

Mike G.


[quoted text, click to view]

Don Miller
10/1/2007 8:21:10 AM
I have found how to call a web service using ServerXMLHTTP and such, but
where I really need help/direction has to do with putting together the SOAP
request specifically for SSRS. Apparently no one in the world has EVER done
this outside of .NET (or they are keeping it to themselves). And the reason
for this is, I'm guessing, MS has not published all the nuances and tricks
for generating SOAP requests outside of .NET. There is no documentation of
how to do this leaving it to developers like myself to reverse engineer what
they were thinking and go through countless trial and error cycles.

This is what I have come up with that makes some sense (completely untested
at this point) but I fear a thousand more gotchas (like the order of the web
method calls, what username/passwords, etc.).

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>

<SetExecutionCredentials>
<DataSourceCredentials>
<DataSourceName>datasource</DataSourceName>
<UserName>username</UserName>
<Password>password</Password>
</DataSourceCredentials>
</SetExecutionCredentials>

<LoadReport>
<Report>TestReport/MyReport</Report>
</LoadReport>

<SetExecutionParameters>
<Parameters>
<ParameterValue>
<Name>CustomerID</Name>
<Value>5800</Value>
</ParameterValue>
</Parameters>
</SetExecutionParameters>

<Render>
<Format>PDF</Format>
</Render>

</soap:Body>
</soap:Envelope>




[quoted text, click to view]

AddThis Social Bookmark Button