cancel
Showing results for 
Search instead for 
Did you mean: 

SOAP Receiver to use operations and methods

Former Member
0 Kudos

Hi.

I have got a WSDL with 3 methods and I have to call one of them.

However, the SOAP Receiver adapter only has a Action section which can be maintained.

How can this be attained?

The WSDL I am using is as follows:

<?xml version="1.0" encoding="ISO-8859-1"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="urn:uniface:applic:services:CSYV1000" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" targetNamespace="urn:uniface:applic:services:CSYV1000" name="CSYV1000">

<wsdl:types />

<wsdl:message name="EXTERNALRequest">

<wsdl:part name="REQUEST" type="s:string" />

<wsdl:part name="REQUESTDATA" type="s:string" />

</wsdl:message>

<wsdl:message name="LOGOFFRequest">

<wsdl:part name="REQUEST" type="s:string" />

</wsdl:message>

<wsdl:message name="LOGONRequest">

<wsdl:part name="REQUEST" type="s:string" />

</wsdl:message>

<wsdl:message name="EXTERNALResponse">

<wsdl:part name="return" type="s:int" />

<wsdl:part name="RESPONSE" type="s:string" />

<wsdl:part name="RESPONSEDATA" type="s:string" />

<wsdl:part name="RESPONSEERROR" type="s:string" />

</wsdl:message>

<wsdl:message name="LOGOFFResponse">

<wsdl:part name="return" type="s:int" />

<wsdl:part name="RESPONSE" type="s:string" />

<wsdl:part name="RESPONSEERROR" type="s:string" />

</wsdl:message>

<wsdl:message name="LOGONResponse">

<wsdl:part name="return" type="s:int" />

<wsdl:part name="RESPONSE" type="s:string" />

<wsdl:part name="RESPONSEERROR" type="s:string" />

</wsdl:message>

<wsdl:portType name="CSYV1000PortType">

<wsdl:operation name="EXTERNAL" parameterOrder="REQUEST REQUESTDATA RESPONSE RESPONSEDATA RESPONSEERROR">

<wsdl:input message="tns:EXTERNALRequest" />

<wsdl:output message="tns:EXTERNALResponse" />

</wsdl:operation>

<wsdl:operation name="LOGOFF" parameterOrder="REQUEST RESPONSE RESPONSEERROR">

<wsdl:input message="tns:LOGOFFRequest" />

<wsdl:output message="tns:LOGOFFResponse" />

</wsdl:operation>

<wsdl:operation name="LOGON" parameterOrder="REQUEST RESPONSE RESPONSEERROR">

<wsdl:input message="tns:LOGONRequest" />

<wsdl:output message="tns:LOGONResponse" />

</wsdl:operation>

</wsdl:portType>

<wsdl:binding name="CSYV1000Binding" type="tns:CSYV1000PortType">

<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" />

<wsdl:operation name="EXTERNAL">

<soap:operation soapAction="" />

<wsdl:input>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:input>

<wsdl:output>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="LOGOFF">

<soap:operation soapAction="" />

<wsdl:input>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:input>

<wsdl:output>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:output>

</wsdl:operation>

<wsdl:operation name="LOGON">

<soap:operation soapAction="" />

<wsdl:input>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:input>

<wsdl:output>

<soap:body use="encoded" namespace="urn:uniface:applic:services:CSYV1000" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />

</wsdl:output>

</wsdl:operation>

</wsdl:binding>

<wsdl:service name="CSYV1000Service">

<wsdl:port name="CSYV1000" binding="tns:CSYV1000Binding">

<soap:address location="http://localhost/pathway/environment.pathway" />

</wsdl:port>

</wsdl:service>

</wsdl:definitions>

Your help is appreciated.

Regards,

Reenal

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi,

Whenever you call a webservice from any web service client you can just call one method at a time and so just one action, which is there in XI as well. I am not sure what you want to achieve here, you just want to call one method which is very normal and possible in XI.

Just Import the wsdl in your XI, select the message type of the method which you want to invoke in your Message Interface.

Moreover I can see the action defined in your webservice is blank for all the three methods. Please tryt the way I suggested and it will work.

Thanks

Amit

Reward points if sugestion helps

Former Member
0 Kudos

Hi, Amit.

The problem arises when I send a logon messages from XI, it fails.

The request which works is:

<?xml version="1.0" encoding="utf-16"?>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:uniface:applic:services:CSYV1000" xmlns:types="urn:uniface:applic:services:CSYV1000/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<tns:LOGON>

<ns0:REQUEST xmlns:ns0="urn:aucklandcity-govt-nz:filenet:property_search"><service>CSYV1000</service><trace/><groupId/><product>SAP XI</product><processId/><threadId/><nodeId/><ipAddress/><sourceUserId/><sourceOSUserId/><uiForm>CMNQ1030</uiForm><groupIdPrevious/><userId>albadryh</userId><password>husain</password><osUserId></osUserId></ns0:REQUEST>

</tns:LOGON>

</soap:Body>

</soap:Envelope>

The problem is that XI is not adding the <tns:LOGON> tags.

Regards,

Reenal

stefan_grube
Active Contributor
0 Kudos

Your WSDL is rpc style. When you upload the WSDL, mark the field for rpc.

Regards

Stefan

Answers (0)