This section provides a tutorial example on how to call an RPC method defined a WSDL 1.1 document with SOAP 1.1 binding.
I used the local version of my WSDL document, c:/herong/GetExchangeRate_WSDL_11_SOAP_11_RPC.wsdl. The online version at http://www.herongyang.com/Service/ GetExchangeRate_WSDL_11_SOAP_11_RPC.wsdl gives me an access problem because the site does not like Perl HTTP client agent.
I used readable('true') to make the SOAP request XML message is nice format.
SOAP::Lite does allow you to make an RPC call through a WSDL document like a local method call: GetExchangeRate('USD', 'JPY', '2007-07-07').
SOAP::Lite is smart to convert the RPC call into a SOAP request message.
SOAP::Lite is smart to provide type information xsi:type="..." to support message encoding.
SOAP::Lite is smart to pick up the return value from the SOAP response message.
SOAP::Lite is not smart to follow the parts="fromCurrencyPart toCurrencyPart datePart" specified in the WSDL document to order the parameters. It follows the original order of how these message parts were defined in the WSDL document. To correct the issue, you need to make the call like this: GetExchangeRate('2007-07-07', 'USD', 'JPY').
Conclusion, SOAP::Lite 0.710 does not support the parts="..." of the "soap:body" WSDL statement.