How to create a dataflow flow to read data WSDL web service

Hi All,

I am currently using bods 14.0.1.142.

I have created a Web Service datastore

I filled the URL with the WSDL path

To make the test:

I created a batch job with one Dataflow.In this Dataflow I have :

  1. A Row Generation transform to create one record
  2. A Query transform
  3. A Query transform
  4. A Query transform
  5. Finally, I load a target table with the result

When I execute the job with the DataStore (Web Service) I get an error :

And get the below error
(14.0) 03-23-12 18:11:19 (E) (4576:14020) VAL-030258: |SESSION JOB_TEMP|WORKFLOW WF1|DATAFLOW DF_WEB_SRVC|STATEMENT <GUID::‘6a4fc48a-4c74-4298-8ac1-7ed1ff99534c’ LOAD TABLE OVSTG_DS.OVSTG.WEB_SRVC INPUT(Query_2)>
Input to target <WEB_SRVC> contains column that is a nested table type. Input to loader cannot contain a
column representing a nested table.

(14.0) 03-23-12 18:11:19 (E) (4576:14020) VAL-030258: |SESSION JOB_TEMP|WORKFLOW WF1|DATAFLOW DF_WEB_SRVC|STATEMENT <GUID::‘6a4fc48a-4c74-4298-8ac1-7ed1ff99534c’ LOAD TABLE OVSTG_DS.OVSTG.WEB_SRVC INPUT(Query_2)>
Input to target <WEB_SRVC> contains column that is a nested table type. Input to loader cannot contain a
column representing a nested table.

Can someone please advice me how to unnest. A sample logic.
Thanks in advance.


vivekullal (BOB member since 2011-10-04)

Add a new query before the loader. In this query drag all columns and schema from the input to the output. The schema elements you rightclick and say “unnest”.


Werner Daehn :de: (BOB member since 2004-12-17)

Thanks Darren for your reply.

Now I am getting the error Function call has no input mapping defined.(BODS-1111047)

Also I am attaching the define input parameter screen. What needs to be entered in the highlighted section.

Also attaching the screenshot of the wsdl.

Thanks in advance.
WEB_SRVC.JPG
wsdl_2.JPG


vivekullal (BOB member since 2011-10-04)

Your function has a schema called findall and it contains two columns, pageindex and noofrecords.
Hence you have to pass a schema into the function, one that has those two columns as well. So you will need an upstream query where you create the schema and the columns accordingly - see Wiki for the details.


Werner Daehn :de: (BOB member since 2004-12-17)

Thanks Werner for the prompt reply.

Request you to please let me know where do I look in the wiki to get the details.


vivekullal (BOB member since 2011-10-04)

I have created one schema and two cols in the upstream query and have fed it into the function call of the webservice.

Now I get the below error

  1. [Query:QRY_GET_ROW_ID]
    No columns defined for target schema. (BODI-1111079)
    (Attached the screenshot of the error)

  2. [Function Call:DS_WEB_SRVC…FindAll]
    NRDM Function <Cannot parse expression.

In call to adapter function , the number of columns for nested table is <2>, while the input nested table has <0> columns. Ensure that the number of columns is identical… (BODI-1112351)> (BODI-1111191)
err.JPG


vivekullal (BOB member since 2011-10-04)

http://wiki.sdn.sap.com/wiki/display/EIM/Consuming+an+external+Web+Service

Download the ATL file in the above link and take a look at the data flow… I guess it will give you a better idea.

Cheers!


cpmohanraj :australia: (BOB member since 2002-09-23)