You need to sign in to do that
Don't have an account?
soni
Apex classes generated from WSDL, has missing return types.
I generated apex classes from a WSDL provided by external app. But it seems like the generated class replaces the return type of all the methods with void. I can even see some variables missing in some of the classes, when they are clearly mentioned in WSDL. Any idea why is this so?Below is the WSDL am using ..
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://temporg" targetNamespace="http://temporg"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://temporg" targetNamespace="http://temporg" elementFormDefault="qualified" attributeFormDefault="unqualified" version="v1_0"> <xs:annotation> <xs:documentation> External Service for Sales Related Integration - Version 1.0.0 - Release 03/19/2010 </xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType abstract="true"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType abstract="true"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute use="required"/> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element> <xs:annotation> <xs:documentation>This element carries a standard message code from the message catalog</xs:documentation> </xs:annotation> </xs:element> <xs:element maxOccurs="1" minOccurs="0"> <xs:annotation> <xs:documentation>This element carries static exception message from the message catalog</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>This element will carry dynamic exception messaging determined by provider at runtime</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" maxOccurs="unbounded"> <xs:annotation> <xs:documentation>This element carries supporting exception details to further qualify the primary exception</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element> <xs:annotation> <xs:documentation>This element carries a standard message code from the message catalog</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>This element carries static exception message from the message catalog</xs:documentation> </xs:annotation> </xs:element> <xs:element minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>This element will carry dynamic exception messaging determined by provider at runtime</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:complexContent> <xs:extension base="GeographicAddress"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> <xs:element minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseRequest"> <xs:sequence> <xs:element minOccurs="1"/> <xs:element minOccurs="1"/> <xs:element minOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseResponse"> <xs:sequence/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseRequest"> <xs:sequence> <xs:element minOccurs="1"/> <xs:element minOccurs="1"/> <xs:element minOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseResponse"> <xs:sequence/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseRequest"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded"/> <xs:element minOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseResponse"> <xs:sequence/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseRequest"> <xs:sequence> <xs:element minOccurs="1" maxOccurs="unbounded"/> <xs:element minOccurs="1"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> <xs:element/> <xs:complexType> <xs:complexContent> <xs:extension base="baseResponse"> <xs:sequence/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:schema> </wsdl:types> <wsdl:message> <wsdl:part element="tns:setupCustomerAccount"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:setupCustomerAccountResponse"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:updateCustomerAccount"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:updateCustomerAccountResponse"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:createCustomerContact"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:createCustomerContactResponse"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:updateCustomerContact"/> </wsdl:message> <wsdl:message> <wsdl:part element="tns:updateCustomerContactResponse"/> </wsdl:message> <wsdl:portType> <wsdl:operation> <wsdl:input message="tns:setupCustomerAccount"/> <wsdl:output message="tns:setupCustomerAccountResponse"/> </wsdl:operation> <wsdl:operation> <wsdl:input message="tns:updateCustomerAccount"/> <wsdl:output message="tns:updateCustomerAccountResponse"/> </wsdl:operation> <wsdl:operation> <wsdl:input message="tns:createCustomerContact"/> <wsdl:output message="tns:createCustomerContactResponse"/> </wsdl:operation> <wsdl:operation> <wsdl:input message="tns:updateCustomerContact"/> <wsdl:output message="tns:updateCustomerContactResponse"/> </wsdl:operation> </wsdl:portType> <wsdl:binding> <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation> <wsdlsoap:operation soapAction="setupCustomerAccount_v1_0"/> <wsdl:input> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation> <wsdlsoap:operation soapAction="updateCustomerAccount_v1_0"/> <wsdl:input> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output > <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation> <wsdlsoap:operation soapAction="createCustomerContact_v1_0"/> <wsdl:input> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> <wsdl:operation> <wsdlsoap:operation soapAction="updateCustomerContact_v1_0"/> <wsdl:input> <wsdlsoap:body use="literal"/> </wsdl:input> <wsdl:output> <wsdlsoap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service> <wsdl:port binding="tns:SecureWebSalesBinding"> <wsdlsoap:address location="http://temp.org"/> </wsdl:port> </wsdl:service> </wsdl:definitions>
And here goes a part of the apex class which was generated from -
Even if the wsdl says that the output is a response object. I don't see them in the generated code.
For eg : In the below code setupCustomerAccount method returns void, whereas the wsdl says that it should return setupCustomerAccountResponse object(which actually inherited from Base Response object). Sadly I cant see this relation even here.
Is this some type of fault with how salesforce generates code or this has something to do with the wsdl.
Ever get anywhere with this?