I am migrating from CF9 to CF11 and have some web service client code that interfaces with Salesforce.com. After the WSDL is parsed with createObject() the method arguments in CF11 are not the same as they were in CF9. For example, in CF9 the login() method only requires 2 arguments, username and password. In CF11 there is an extra parameter called LoginScopeHeader.
It looks like it has to do with the operation elements. CF9 appears to be using this definition in the WSDL file:
<!-- Login Message Types --> <element name="login"> <complexType> <sequence> <element name="username" type="xsd:string"/> <element name="password" type="xsd:string"/> </sequence> </complexType> </element> <element name="loginResponse"> <complexType> <sequence> <element name="result" type="tns:LoginResult"/> </sequence> </complexType> </element><portType name="Soap"> <operation name="login"> <documentation>Login to the Salesforce.com SOAP Api</documentation> <input message="tns:loginRequest"/> <output message="tns:loginResponse"/> <fault message="tns:LoginFault" name="LoginFault"/> <fault message="tns:UnexpectedErrorFault" name="UnexpectedErrorFault"/> <fault message="tns:InvalidIdFault" name="InvalidIdFault"/> </operation>
CF11 appears to be using this one.
<!-- Soap Binding --> <binding name="SoapBinding" type="tns:Soap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="login"> <soap:operation soapAction=""/> <input> <soap:header use="literal" message="tns:Header" part="LoginScopeHeader"/> <soap:body parts="parameters" use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="LoginFault"> <soap:fault name="LoginFault" use="literal"/> </fault> <fault name="UnexpectedErrorFault"> <soap:fault name="UnexpectedErrorFault" use="literal"/> </fault> <fault name="InvalidIdFault"> <soap:fault name="InvalidIdFault" use="literal"/> </fault> </operation>
Is there any way I can force it to use the CF9 behavior?
Michael