Generic Web Service and xmlgregoriancalendar date format

Hi, I’m trying to connect to a WSDL and pass values to it using the Generic Web Service node. I can connect to the WSDL fine, but when I try to pass a date of birth date using the node I get an error saying the date is in the wrong format and cannot be parsed. The date format is meant to be passed as xmlgregoriancalendar date format. Does anyone know the correct format syntax that can be shared please? I’ve tried so many different options of date formats and always get the Java parsing error. I thought the correct format was 1980-04-18T00:00:00, but I have tried many many alternatives.
Has anyone successfully used the Generic Web Service node by parsing the xmlgregoriancalendar format, and if so could you provide an example of the date notation that is parsable?
Thanks for your help, and I love Knime by the way!

Hi Hugh,

Does writing the date as XML like below help? 

<request>
    <head>
        <title>Load data</title>
        <startDate>2013-08-06</startDate>
        <startTime>2013-08-07T05:51:37</startTime>
    </head>
  <request>

Best,

Jon

Hi Jon, Unfortunately, I get the same error passing an xml style date value like: 

<startDate>2013-08-06</startDate> OR
<startTime>2013-08-07T05:51:37</startTime>

No matter what value I pass back, I get the error: "java.text.ParseException: Unparseable date:" .I can get the web service to respond correctly in SOAP UI, but just can't work out if it's even possible to pass a date value to the wsdl using the generic soap client at all. Thanks for your suggestion though.

Hopefully someone has succesfully passed a xmlgregoriancalendar date format value back using this node?

 

Hi,

I faced this problem yesterday and I had a look at the source code for the node and it turned out the format should be like this

Sep 30, 2017

it is the default format for the dateparse function used in the source code.

I tried it and it worked fine, hope that helps.

 

1 Like

Hi,

I am also having the same issue and writing “Sep 30, 2017” format didn’t help. Can someone suggest a date format ?

Thanks,
Mateen

Just an update for future readers, I was able to get WSDL workflow working with “POST” node and using WSDL request in the “Request Body” section of the node as described here:

Generic Web Service Client seems to have problems as it retrieved 3000 duplicated rows when used for a single request and was not able to parse xmlgregoriancalendar dateTime properly. With Post node I used time format “2020-05-20T00:00:00” and it worked like a charm :slight_smile:

2 Likes

Could you post your actual workflow? I’d like to see how you accomplished that.

I have a very similar problem. Using the generic web services client, I get an error that two declarations cause a collision in the ObjectFactory. But in my case I don’t see any underscore characters that could be causing this. The WSDL request is below. Works fine with Microsoft Visual Studio, but Knime is choking on it:

https://webservice.kareo.com/services/soap/2.1/KareoServices.svc?singleWsdl

So if I can do this with a POST it would be better. But I also don’t see what the issue is in the file. I don’t see the duplicate.

You don’t need a workflow rather only a POST node and then you can already write your query in Request Body tab and provide the link of WSDL at URL settings.

I was hoping to see yours because Im only familiar with REST. Soap is completely new to me. So I dont understand the conversion process. Until recently I didn’t even know what a WSDL file was. So I’m not sure how it should look when it reaches the POST command. I was hoping to your XML and POST configuration settings so I could understand how to make the conversion to a POST from SOAP.

Well, then you need to learn about WSDL. For POST node, you need to write the WSDL statements which looks like same as shown in screenshot. These statements shall go to Request Body.