CloverETL Server and Salesforce.com WSDL WebServiceClient

Hi all,
Any pointers, tips, or best-practices on connecting CloverETL WebServiceClient with Salesforce.com?

SF expects that web clients download (once, or irregularly) the WSDL file, but the WebServiceClient is looking for an URL, not a file.
Could it be served from within CloverETL Server, rather that downloaded each time from SF?

Also, what would the appropriate Auth Domain / Auth Realm settings be for a Salesforce.com instance?

Examples and suggestions welcome!

Thanks,

Hi twaldock,

you can use http://en.wikipedia.org/wiki/File_URI_scheme (e.g.

file:///d:/test/AmazonWebServices.wsdl.xml

).

Regarding login: I think all auth fields (incl. login and password) should stay empty for salesforce. You need to do extra call using web service method “login” http://www.salesforce.com/us/developer/ … ex_api.pdf (page 942). This will give you “sessionId” which you need to pass in further requests.

I hope this helps.

Thanks again Jarek!

… I missed the third slash needed when trying the file:// approach - my bad.

Salesforce tips would be a good cookbook topic. Will let you know how it goes.

Cheers,

Hi Tom,

there is one issue in WebServiceClient when trying to use salesforce methods. As I wrote you need to fill “sessionId” into requests header. That is unfortunately not possible with current state of WebServiceClient. We plan to write completely new version, but that will take some time. There is jira issue https://bug.javlin.eu/browse/CL-1882 .

One workaround is:

0] please first take a look on http://en.wikipedia.org/wiki/SOAP#Example_message for SOAP request structure.

1] generate your request via WebService client, then catch generated request on output port (see http://www.cloveretl.com/documentation/ … lient.html for details) - it is field “Request structure”

2] this “Request structure” is by default enveloped by soap:Envelope and soap:Body - what you need to do is envelope it with the same, but also use soap:Header with “sessionId” field (you can do this by Reformat)

3] now you should have complete request (with similar structure as one mentioned above)

4] use HttpClient for execution of this request

Second:

1] generate your requests via tool like http://www.soapui.org/ in advance

2] by Reformat insert dynamic parts

3] use HttpClient for execution of this request

I hope this helps. Sorry for inconvenience.

Hi Jarek,

Thanks for the transparency - without your comments this could have taken a lot of time to reach a very frustrating stage.

This is a really big issue for us - web services and Salesforce.com are key sources and consumers of data here.
… to work well with Salesforce.com would be a great sales and marketing advantage.

Please flag/vote/increase priority on this item so that it gets addressed. It looks 95% there but needs that last part repaired.

-- Tom