I'm trying to call a soap webservice.
https://api.accounting.twinfield.com//webservices/finder.asmx?wsdl
It takes ArrayOfArrayOfString as a parameter. When I do a get_type on it,
emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfArrayOfString")
options1 = emptyArrayPlaceholder()
print(options1)
gives
{
'ArrayOfString': []
}
I've tried a few combinations but can't seem to find the right one.
EmptyString = proces2.get_type('ns0:ArrayOfString')
emptyArrayPlaceholder = proces2.get_type("ns0:ArrayOfArrayOfString")
options1 = EmptyString()
print(options1)
options2= EmptyString()
print(options1)
options1['string'].append('office')
options1['string'].append('072')
options2['string'].append('dimtype')
options2['string'].append('DEB')
options4 = emptyArrayPlaceholder()
options5 = emptyArrayPlaceholder()
options4['ArrayOfString'].append(options1)
options5['ArrayOfString'].append(options2)
options6 = emptyArrayPlaceholder()
options6['ArrayOfString'].append(options4)
options6['ArrayOfString'].append(options5)
options7 =[options4,options5]
print(options6)
responz = proces2.service.Search(type = "DIM", field = 0, firstRow = 1, maxRows = 0, options = options7, _soapheaders={'Header': header_value})
I've tried it with any of these options. A correct xml call would look like this:
<Search xmlns="http://www.twinfield.com/">
<type>DIM</type>
<pattern>*</pattern>
<field>0</field>
<firstRow>1</firstRow>
<maxRows>0</maxRows>
<options>
<ArrayOfString>
<string>office</string>
<string>072</string>
</ArrayOfString>
<ArrayOfString>
<string>dimtype</string>
<string>PNL</string>
</ArrayOfString>
</options>
</Search>''
Any ideas?