How to create report using WebService as DataSource.

Hi,

We created a simple web serivce having a Web Method which accepts a string parameter and returns "Hello World" concatenated with parameter value. We tested this web service by browsing it through IE and it was working fine by accepting a parameter and displaying the "Hello World " concated with the value given through the parameter when clicked on "Invoke" button.

We now created a Reporting Services 2005 project using BI having a report for which the data source will be the web service which is mentioned above. We defined a parameter for the report which will pass the value to the webservice and the report will display the returned value from the web service.

When we have done the report and executed by giving a value to the parameter and clicking on view report button it was displaying the "Hello World" but the parameter which we passed to the web service is not getting concatenated. When we tried to trace the application we could see that the value passed to the web service web method was comming as null. So kindly help me where I went wrong in developing such a kind of report which is not passing a parmeter to webservice.

Kindly provide us the solution in order to make this issue to be resolved.

Thanks in Advance.



Answer this question

How to create report using WebService as DataSource.

  • KamalHWZ

    It's probably not your implementation, but in the parsing specifics of the SoapAction and Namespace. 

    For example, if your SoapAction is http://tempuri.org/HelloMyNameIs, we split it
    into http://tempuri.org and HelloMyNameIs throwing away the separating / character.

    But if you look at the way webservice is defined, the namespace is actually http://tempuri.org/ - with a trailing /.

    So in this case, when method name/namespace can not be correctly derived from SoapAction and when SoapAction can not be correctly derived from method name (in the above case we would get http://tempuri.org//HelloMyNameIs) you should use both <Method …/> and <SoapAction …/>, e.g.

    <Query>
       <Method Namespace="http://tempuri.org/" Name="HelloMyNameIs"/>
       <SoapAction>http://tempuri.org/HelloMyNameIs</SoapAction>
    </Query>

    We are working on updates to the documentation.



  • ubm0158

    Thanks Brain, it really helped us to solve this issue.

    Thanks once again,

  • SuperCoder0101

    Worked for me as well.  Thanks a lot!
  • Francois Malgreve

    I can concur with VDeevi, I was able to recreate the exact same issue.  In my case I'm passing parameters to a web service that is returning a dataset.  When I set a default value in the webmethod it returns a dataset successfully.  My problem is also that the parameters are not getting passed to the web service. 

    What I think is strange is that I've done the BOL sample with the SSRS web service Listchildren method and it works successfully.  Does that mean that the problem is not in SSRS but in my implementation of the web service

    This works:


    <WebMethod()> _
    Public Function GetTestDataset() As System.Xml.XmlElement
    Dim TestXDataset As New TestXDataset()
    TestXDataset.Fill(1)
    Dim xdd As System.Xml.XmlDataDocument = New System.Xml.XmlDataDocument(TestXDataset)
    Dim docElem As System.Xml.XmlElement = xdd.DocumentElement
    Return docElem
    End Function

     


    This doesn't work:


    <WebMethod()> _
    Public Function GetTestDataset(ByVal ID As Integer) As System.Xml.XmlElement
    Dim TestXDataset As New TestXDataset()
    TestXDataset.Fill(ID)
    Dim xdd As System.Xml.XmlDataDocument = New System.Xml.XmlDataDocument(TestXDataset)
    Dim docElem As System.Xml.XmlElement = xdd.DocumentElement
    Return docElem
    End Function

     

  • How to create report using WebService as DataSource.