Hi,
I have been using suds for about a week now, and I am very impressed with the capabilities and ease of use of this API. Outstanding work!
I am using suds to work with a fairly complex WSDL, and have almost everything working, with the exception of the arrayType encoding. I downloaded and installed the beta of 0.3.8 because I saw a posting stating that the beta supports setting the arrayType. After spending a couple of hours grepping through the code and trying different things, I am still unable to determine how to set the arrayType.
I can make successful requests using SoapUi, and the section I am trying to generate looks like this:
<item xsi:type="bus:parameterValue">
<name xsi:type="xsd:string">owner_id</name>
<value xsi:type="soapenc:Array" soapenc:arrayType="bus:parmValueItem[]">
<item xsi:type="bus:simpleParmValueItem">
<use xsi:type="xsd:string">321</use>
</item>
</value>
</item>
The API is generating:
<item xsi:type="ns0:parameterValue">
ns0:name xsi:type="ns2:string"owner_id</ns0:name>
<ns0:value xsi:type="SOAP-ENC:Array">
<item xsi:type="ns0:simpleParmValueItem">
<ns0:inclusive xsi:type="ns2:boolean"/>
<ns0:display xsi:type="ns2:string"/>
ns0:use xsi:type="ns2:string"321</ns0:use>
</item>
</ns0:value>
</item>
Here is my code:
def createParameter(client, name, value):
item = client.factory.create('parameterValue')
item.name = name
item.value = client.factory.create('SOAP-ENC:Array')
spvi = client.factory.create('simpleParmValueItem')
spvi.use = value
item.value.item = [spvi]
The WSDL is almost 1MB, so I won't include it here. Any help is very much appreciated.
Thanks,
-Bill