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