Hello,<br><br>I encountered a problem with parsing a SOAP response by suds. It seems that suds cannot parse the whole response and returns to a user only a part of the response.<br><br>In details:<br>I have a function popTabularResultRows which is supposed to return a list of results (given by rows):<br>
<br>Input: popTabularResultRows (SOAP:body, use = encoded)<br>authString [ string ]<br>requestId [ int ]<br>maxRows [ int ]<br>returnValueInfo [ boolean ]<br>returnValueSid [ boolean ]<br>returnValueIess [ boolean ]<br>
Output: popTabularResultRowsResponse (SOAP:body, use = encoded)<br>valueInfo [ TabularResultValueInfo ]<br><br> * sid [ nonNegativeInteger ]<br> * iess [ string ]<br><br>rows [ TabularResultRow ]<br><br> * ts [ nonNegativeInteger ]<br>
* values (optional, unbounded) [ TabularResultValue ]<br> o value [ float ]<br> o valueS64 (optional) [ long ]<br> o valueU64 (optional) [ unsignedLong ]<br> o valueDouble (optional) [ double ]<br>
o qual [ byte ]<br> o tss [ int ]<br> o sid (optional) [ nonNegativeInteger ]<br> o iess (optional) [ string ]<br> o corId (optional) [ nonNegativeInteger ]<br><br>rowCount [ int ]<br>
<br>The function is defined in WSDL as follows:<br><br><message name="popTabularResultRows"><br><part name="authString" type="xsd:string"/><br><part name="requestId" type="xsd:int"/><br>
<part name="maxRows" type="xsd:int"/><br>
<part name="returnValueInfo" type="xsd:boolean"/><br><part name="returnValueSid" type="xsd:boolean"/><br><part name="returnValueIess" type="xsd:boolean"/><br>
</message><br><br>With dependencies:<br><br><message name="popTabularResultRowsResponse"><br><part name="valueInfo" type="eds:TabularResultValueInfo"/><br><part name="rows" type="eds:TabularResultRow"/><br>
<part name="rowCount" type="xsd:int"/><br></message><br><br>And complex types:<br><br><complexType name="TabularResultRow"><br><sequence><br><element name="ts" type="xsd:nonNegativeInteger" minOccurs="1" maxOccurs="1"/><br>
<element name="values" type="eds:TabularResultValue" minOccurs="0" maxOccurs="unbounded" nillable="true"/><br></sequence><br></complexType><br><br><complexType name="TabularResultValue"><br>
<sequence><br><element name="value" type="xsd:float" minOccurs="1" maxOccurs="1"/><br><element name="valueS64" type="xsd:long" minOccurs="0" maxOccurs="1" nillable="true"/><br>
<element name="valueU64" type="xsd:unsignedLong" minOccurs="0" maxOccurs="1" nillable="true"/><br><element name="valueDouble" type="xsd:double" minOccurs="0" maxOccurs="1" nillable="true"/><br>
<element name="qual" type="xsd:byte" minOccurs="1" maxOccurs="1"/><br><element name="tss" type="xsd:int" minOccurs="1" maxOccurs="1"/><br>
<element name="sid" type="xsd:nonNegativeInteger" minOccurs="0" maxOccurs="1" nillable="true"/><br><element name="iess" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/><br>
<element name="corId" type="xsd:nonNegativeInteger" minOccurs="0" maxOccurs="1" nillable="true"/><br></sequence><br></complexType><br><br>The problem is that the method popTabularResultRows returns just one item in rows wherease the XML that arrives has more items:<br>
<br><b>XML response (</b><i> rows part in italics )</i><b>:</b><br><br></SOAP-ENV:Envelope><br>DEBUG:suds.client:headers = {'SOAPAction': u'""', 'Content-Type': 'text/xml'}<br>
DEBUG:suds.client:http succeeded:<br><?xml version="1.0" encoding="UTF-8"?><br><SOAP-ENV:Envelope xmlns:SOAP-ENV="<a href="http://schemas.xmlsoap.org/soap/envelope/">http://schemas.xmlsoap.org/soap/envelope/</a>" xmlns:SOAP-ENC="<a href="http://schemas.xmlsoap.org/soap/encoding/">http://schemas.xmlsoap.org/soap/encoding/</a>" xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" xmlns:xsd<br>
="<a href="http://www.w3.org/2001/XMLSchema">http://www.w3.org/2001/XMLSchema</a>" xmlns:eds="<a href="http://www.tt.com.pl/eds.wsdl">http://www.tt.com.pl/eds.wsdl</a>"><br><br><SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Body SOAP-ENV:encodingStyle="<a href="http://schemas.xmlsoap.org/soap/encoding/">http://schemas.xmlsoap.org/soap/encoding/</a>"><eds:<br>
popTabularResultRowsResponse><valueInfo><sid>3887</sid><iess>testshade01</iess></valueInfo><i><span style="color: rgb(204, 0, 0);"><rows><ts>1269425044</ts><values><value>0.000000</value><qual>78</qual><tss>0</tss><iess>testshade01</iess></</span><br style="color: rgb(204, 0, 0);">
<span style="color: rgb(204, 0, 0);">values></rows></span><rows><ts>1269428644</ts><values><value>0.000000</value><qual>78</qual><tss>0</tss><iess>testshade01</iess></values></rows><rows><ts>1269432244</ts><values><value>0.000000</value><qual>7<br>
8</qual><tss>0</tss><iess>testshade01</iess></values></rows><rows><ts>1269435844</ts><values><value>0.000000</value><qual>78</qual><tss>0</tss><iess>testshade01</iess></values></rows><rows><ts>1269439<br>
444</ts><values><value>0.000000</value><qual>78</qual><tss>0</tss><iess>testshade01</iess></values></rows><rows><ts>1269443044</ts><values><value>0.000000</value><qual>78</qual><tss>0</tss><iess>tests<br>
hade01</iess></values></rows></i><rowCount>6</rowCount></eds:popTabularResultRowsResponse><br></SOAP-ENV:Body><br><br></SOAP-ENV:Envelope><br><br><b>In python when printing the reponse I got (just one row):<br>
</b><br>(reply){<br> valueInfo =<br> (TabularResultValueInfo){<br> sid = 3887<br> iess = "testshade01"<br> }<br> <span style="color: rgb(204, 0, 0);"> rows =</span><br style="color: rgb(204, 0, 0);">
<span style="color: rgb(204, 0, 0);"> (TabularResultRow){</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> ts = 1269443044</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> values[] =</span><br style="color: rgb(204, 0, 0);">
<span style="color: rgb(204, 0, 0);"> (TabularResultValue){</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> value = 0.0</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> qual = 78</span><br style="color: rgb(204, 0, 0);">
<span style="color: rgb(204, 0, 0);"> tss = 0</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> iess = "testshade01"</span><br style="color: rgb(204, 0, 0);">
<span style="color: rgb(204, 0, 0);"> },</span><br style="color: rgb(204, 0, 0);"><span style="color: rgb(204, 0, 0);"> }</span><br> rowCount = 6<br> }<br>{'ts': [], 'testshade01': []}<br>
<br>What's wrong? Is it a bug?<br>