function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Eric.HeEric.He 

Web service callout failed: Unable to parse callout response.

HELP!!

I generate an Apex Class from a WSDL file, but i always get the following error message while invoking the apex class.

Error Message: "Web service callout failed: Unable to parse callout response. Apex type not found for element IATSRESPONSE". Is there anybody can help me get out of this problem? Thanks in advance!!!

 

The WSDL file is too large, i can only put the link to the WSDL file here: https://www.iatspayments.com/NetGate/ProcessLink.asmx?WSDL

 

I've already removed the "ProcessLinkSoap12" binding and port element from the WSDL file.

 


BuntyBunty

Please check
Apex does not support any other WSDL constructs, types, or services, including:
RPC/encoded services
WSDL files with mulitple portTypes, multiple services, or multiple bindings
WSDL files that import external schemas. For example, the following WSDL fragment imports an external schema, which is not supported:

Eric.HeEric.He

Thanks for your information.

 

I already removed the second bindings and service from the WSDL file, and was succesul to generate an Apex Class from the WSDL file. The problem is the WSDL contains "<s:any />" element, which is not supported by salesforce. But i don't know how to fix it. Do you have any idea?

BuntyBunty

It's not like that, You will parse and generate the WSDL but you will not able to use that wsdl because the responce came in remote format and your salesforce generated Class will not able to unserstand the symbols.

 

I hope you are using Third party WSDL. The best way ask the third party team to give to doc type WSDL because it's necessary.

 

All the modification you did in the wsdl those are manually not exact wsdl parsing.

 

Eric.HeEric.He

I see. Thanks a lot.

 

I will contact IATS support to ask for help.

BuntyBunty

You welcome. Please let me know if you found some other new information.

Please share with me. :)

Bunty.

Skype Name : niket.chandane

Eric.HeEric.He

Yes, i will.

Eric.HeEric.He

Hi, still not get this problem solved. I consulted IATS represetative for help, and they send me a documentation about their web service API, so that i was able to replace the "<s:any/>" element in the WSDL with a group of elements described in the document. But I still got the same error message when i tried to make call to their web service from the generated apex class.

I paste the revised WSDL file so that you can simply generate an apex class from this WSDL file in salesforce. I got the error message "Web service callout failed: Unable to parse callout response. Apex type not found for element IATSRESPONSE." every time when I invoke the "ProcessACHEFTChargeBatch" method in the class. Does anybody can give me some suggestion or hint on the solution? Thanks a LOT!

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="https://www.iatspayments.com/NetGate/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="https://www.iatspayments.com/NetGate/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="https://www.iatspayments.com/NetGate/">
<s:element name="ProcessACHEFTChargeBatchV1">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="agentCode" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="password" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="customerIPAddress" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="batchFile" type="s:base64Binary"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="ProcessACHEFTChargeBatchV1Response">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="ProcessACHEFTChargeBatchV1Result">
<s:complexType mixed="true">
<s:sequence>
<s:element name="iatsresponse">
<s:complexType>
<s:sequence>
<s:element name="status" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="errors" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="batchProcessResult">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="authorizationResult" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="batchID" type="s:string"/>
<s:element minOccurs="0" maxOccurs="1" name="batchProcessResultFile" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
<wsdl:message name="ProcessACHEFTChargeBatchV1SoapIn">
<wsdl:part name="parameters" element="tns:ProcessACHEFTChargeBatchV1"/>
</wsdl:message>
<wsdl:message name="ProcessACHEFTChargeBatchV1SoapOut">
<wsdl:part name="parameters" element="tns:ProcessACHEFTChargeBatchV1Response"/>
</wsdl:message>
<wsdl:portType name="ProcessLinkSoap">
<wsdl:operation name="ProcessACHEFTChargeBatch">
<wsdl:input name="ProcessACHEFTChargeBatchV1" message="tns:ProcessACHEFTChargeBatchV1SoapIn"/>
<wsdl:output name="ProcessACHEFTChargeBatchV1" message="tns:ProcessACHEFTChargeBatchV1SoapOut"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ProcessLinkSoap" type="tns:ProcessLinkSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="ProcessACHEFTChargeBatch">
<soap:operation soapAction="https://www.iatspayments.com/NetGate/ProcessACHEFTChargeBatchV1" style="document"/>
<wsdl:input name="ProcessACHEFTChargeBatchV1">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="ProcessACHEFTChargeBatchV1">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="ProcessLink">
<wsdl:port name="ProcessLinkSoap" binding="tns:ProcessLinkSoap">
<soap:address location="https://www.iatspayments.com/NetGate/ProcessLink.asmx"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

 


BuntyBunty

Can you use this we service in the other technology like .net. If it works in the other technology then problem in Salesforce Class generated by WSDl. Other wise problem in WSDL.