EcoStruxure Geo SCADA Expert Forum
Schneider Electric support forum about installation, configuration, integration and troubleshooting of EcoStruxure Geo SCADA Expert (ClearSCADA, ViewX, WebX).
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-02 07:17 AM . Last Modified: 2023-05-03 12:00 AM
I am testing the XML SOAP of Geo SCADA Expert. The software used is SOAPUI 5.6.
I would like to execute "Override" method through SOAP.
I am able to execute this method without argument (here below the syntax of the SOAP xml query).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:scx6="http://serck-controls.com/webservices/SCX6/">
<soapenv:Header/>
<soapenv:Body>
<scx6:ExecuteMethod>
<scx6:Object>_TESTS.PointAnalogTest</scx6:Object>
<scx6:Method>Override</scx6:Method>
<!--Optional:-->
<scx6:Arguments>
<!--1 or more repetitions:-->
<scx6:Argument></scx6:Argument>
</scx6:Arguments>
</scx6:ExecuteMethod>
</soapenv:Body>
</soapenv:Envelope>
The reply is OK.
However, when I set an argument such as 2 (here below), error occurs.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:scx6="http://serck-controls.com/webservices/SCX6/">
<soapenv:Header/>
<soapenv:Body>
<scx6:ExecuteMethod>
<scx6:Object>_TESTS.PointAnalogTest</scx6:Object>
<scx6:Method>Override</scx6:Method>
<!--Optional:-->
<scx6:Arguments>
<!--1 or more repetitions:-->
<scx6:Argument>2</scx6:Argument>
</scx6:Arguments>
</scx6:ExecuteMethod>
</soapenv:Body>
</soapenv:Envelope>
Does somebody have any idea how to send argument through the method in SOAP ? which syntax is needed ?
Thank by advance,
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-03 06:12 AM
Sorry, I forgot to mention that you also need to define the xsi namespace for the xsi:type attribute:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:scx6="http://serck-controls.com/webservices/SCX6/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<scx6:ExecuteMethod>
<scx6:Object>_TESTS.PointAnalogTest</scx6:Object>
<scx6:Method>Override</scx6:Method>
<!--Optional:-->
<scx6:Arguments>
<!--1 or more repetitions:-->
<scx6:Argument xsi:type="xsd:double">12</scx6:Argument>
</scx6:Arguments>
</scx6:ExecuteMethod>
</soapenv:Body>
</soapenv:Envelope>
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-03 02:50 AM
The <scx6:Argument> element is missing the xsi:type attribute to define what kind of value the argument is.
For example, for an analogue point override using double precision floating point value:
<scx6:Argument xsi:type="xsd:double">12.34</scx6:Argument>
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-03 04:07 AM
Justed checked.
The reply of the scada is unfortunately NOK: "the request body was not valid" whatever the xsd type (like int, float, double, short, long, etc.). Here below the print screen.
It becomes better when "xsi" and the value are removed...
It seem working properly, however no value is sent...
Any idea ? Are you sure of the syntax ? Is there no error message from the soap server when the type is wrong ?
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-03 06:12 AM
Sorry, I forgot to mention that you also need to define the xsi namespace for the xsi:type attribute:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:scx6="http://serck-controls.com/webservices/SCX6/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<scx6:ExecuteMethod>
<scx6:Object>_TESTS.PointAnalogTest</scx6:Object>
<scx6:Method>Override</scx6:Method>
<!--Optional:-->
<scx6:Arguments>
<!--1 or more repetitions:-->
<scx6:Argument xsi:type="xsd:double">12</scx6:Argument>
</scx6:Arguments>
</scx6:ExecuteMethod>
</soapenv:Body>
</soapenv:Envelope>
Link copied. Please paste this link to share this article on your social media post.
Link copied. Please paste this link to share this article on your social media post.
Posted: 2021-11-03 06:28 AM
Hi,
It is working now.
Good job. Thank you so much.
Cheers,
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.