2 Replies Latest reply on Apr 7, 2010 10:22 AM by dhryvastov

    Problem with using Web Services as Relational Source Model

    dhryvastov

      Hello,

      I am new to Teiid and I am researching how Teiid can help me in solving some specific integration tasks. I was really impressed when I saw how easy it is to integrate MS SQL Server and text files as a data provider. This is really great!!! Now I try to use Web Service as data provider but here I have some problems. Could anybody help me, please?

      I use one free web service (just for testing and researching purposes) - http://www.webservicex.net/WeatherForecast.asmx?wsdl. The steps that I am performing are the following:

      1)      Create new Model Project in Teiid Designer (I use Designer 6.3_v20100118).

      2)      Right click on the project created, select import.

      3)      In the Import dialog select Web Service as Relational Source Model.

      4)      Enter the following wsdl URL - http://www.webservicex.net/WeatherForecast.asmx?wsdl (this is free web service which I use for testing)

      5)      Select both WeatherForecastSoap operations, click finish.

      6)      New connector was created.

      7)      Drag and Drop Weather.xmi (my project is names Weather) into WeatherForecast connector.

      8)      Select GetWeatherByPlaceName operation in Model Explorer. After double click I see three tables: WeatherData, GetWeatherByPlaceNameSoapIn and GetWeatherByPlaceNameSoapOut.

      9)      Now I select GetWeatherByPlaceNameSoapIn and after clicking the running man I expect to see the dialog for input data (PlaceName parameter) but I see error message instead (Error occurred on connector WeatherForecast<35> - Value not found for parameter PlaceName).

      I do not know what is wrong, why don't I see the output? Does anybody know what I do wrong? Thanks in advance!

        • 1. Re: Problem with using Web Services as Relational Source Model
          jdoyle

          This connector will not work with the preview functionality (the running man).  Queries for this connector have to be joins and preview only makes single table queries.  So the first thing you would have to do is make a VDB so that you can query with joins.

           

          In order to query this service you have to supply your criteria to the table representing the soap request (soapin) and join this table with the result tables with criteria like ResponseOut = ResponseIn in order to 'feed' the response document to the data table.

           

          This query should work.

          select data.MaxTemperatureF

          from GetWeatherByPlaceNameSoapIn request, GetWeatherByPlaceName.WeatherData data

          where

          request.placename = 'Boston' and

          request.ResponseOut = data.ResponseIn

           

          There is unfortunatly one defect that the connector that is fixed in the forthcoming release that will block you from getting this service to work.  The SOAP-Action is not getting entered in the request document.  There is no way to work around this.  Please take a look at the next milestone release when it comes out.

           

          ~john

          • 2. Re: Problem with using Web Services as Relational Source Model
            dhryvastov

            Thank you, John!

            I will try the steps you described.

            I am looking forward for the next release.

            - Denys