2

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?

0 Answers0