cancel
Showing results for 
Search instead for 
Did you mean: 

Problem ABAP PROXY to SOAP

former_member187533
Participant
0 Kudos

I am developing an ABAP Proxy to SOAP interface.

I'm using an external definition with the wsdl for the service inbound interface and outbound interface for the determination, I was not allowed to use the definition as external error occurred while creating the abap proxy.

Thus, utilized a message type of structure to be sent, and a message maping.

However when I run the error message occurs:

/ Parsing / ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'.

Already confirmed URL of sending CC and left blank SOAP ACTION, however problem persists.

Already viewed this problem?

Accepted Solutions (1)

Accepted Solutions (1)

former_member187533
Participant
0 Kudos

Hi!

Mapping the problem, I found a problem in mapping:

When I test the mapping with the default structure, works without problem with the headers:

<? xml version = "1.0" encoding = "UTF-8">

<ns0:mt_XXX_Request xmlns:ns0="http://www.XXX.com.br/funcionario">

However when I copy the message coming from sxi_monitor, the header appears:

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

- <nm:mt_SPColab_Request Xmlns:nm="http://www.bravante.com.br/funcionario" xmlns:prx="urn:sap.com:proxy:D01:/1SAI/TAS337475E2AF22EC2AC09A:702">

Introducing the error:

Mapping:

Obrigado!

former_member184720
Active Contributor
0 Kudos

Hi Lucas - Is it your responce mapping? if so your webservice responce strcuture should be source and proxy should be your target right?

If it is request mapping, you don't need to worry about this mapping.

The error in the channel is complaining about responce mapping.

Refer to the below blog for a better understanding and compare your configuration.

http://scn.sap.com/people/anilkumar.bodapati3/blog/2013/07/07/proxy-to-soap-synchronous-scenerio-in-...

Former Member
0 Kudos

Hello,

>>However when I copy the message coming from sxi_monitor, the header appears:

Proxy adds this "xmlns:prx="urn:sap.com:proxy:D01:/1SAI/TAS337475E2AF22EC2AC09A:702" kind of prefix and namespace by default, but i don't think u should get error becoz of this?

In addition to that, ur XML declaration should be like this:

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

So, if u want u can test ur mapping again with correct request structure coming in moni.

Thanks

Amit Srivastava

former_member187533
Participant
0 Kudos

Good afternoon !

So , I adjusted the structures and all MM and OP are OK . Even realize a test of the interface in Interface determination in Configuration using the XML coming from the proxy and they are ok .

However when I run the proxy keeps the problem :

  <SAP:AdditionalText> Com.sap.engine.interfaces.messaging.api.exception.MessagingException : SOAP : response message contains an error XIAdapter / parsing / ADAPTER.SOAP_EXCEPTION - soap fault : No such operation ' DOC ' < / SAP : AdditionalText >

This " DOC " would be the " header " of the mapping of WS .

This could be trouble for releasing firewall or communication with the WS ?

Thank you.

former_member184720
Active Contributor
0 Kudos

Hi Lucas - I think the problem is with your soap action. Did you configure the soap action as "DOC"?

If you don't have any operation leave that field as empty in the communication channel.

Former Member
0 Kudos

Hello,

Did u test ur WS using SOAP UI? - I have already asked this question

If not, then i would suggest you to do it and check if u are getting response or not?

If u are getting successful response from SOAP UI then open RAW tab in request and copy the action name in ur receiver channel and then test again.

But do remember to test it first fro SOAP UI.

Thanks

Amit  Srivastava

former_member187533
Participant
0 Kudos

Thanks for the help!

With or without the SOAPAction configured and the error message is the same.

So when the testo SOAPUI works yes.

I did exactly this test, I took the RAW SoapUI and put in SOAPAction:

But:

This could be a problem to release the IP communication with the Legacy?

Thx!

Former Member
0 Kudos

Hello,

Is it possible for u to show me the RAW tab + SOAP Request for which u r getting correct response?

Thanks

Amit Srivastava

former_member184720
Active Contributor
0 Kudos

Hi Lucas - I don't think it has got something to with IP communication. I believe there is something wrong with the implimentation.

So when the testo SOAPUI works yes.

>>> Are you able to recieve the successful response when you test in Soap UI.

One more question : Have you imported the wsdl for your target strcture/manually created?

Former Member
0 Kudos

Hello,

One more point u can make use of TCP Gateway tool to check what exactly u are passing from PI and compare the same with SOAP UI request (message + header).

Thanks

Amit Srivastava

former_member187533
Participant
0 Kudos

Hi!! Thanks for help!

Then, the test conducted by SOAPUI works:

Follows the RAW tab:

Hareesh Gampa,

The WSDL was imported through a URL released by the legacy system and imported into a external definition.

Thxxx!

former_member184720
Active Contributor
0 Kudos

Hi Lucas - i see another root tag "ATUALI***" in your requestxml which is not there in your target structure.

Your request strcture xml (from soap UI) should be same as output of the graphical mapping.

May be you can compare them and see what is missing.

Former Member
0 Kudos

Hello,

Eventually, I think i got u...

Ur WSDL file is correct + the way u are testing WS using SOAP UI is also correct, but the only thing which is wrong is u are not importing WSDL file in PI properly.

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

BTW, this line in WSDL file made me think that

So, try to re-import ur WSDL file as a "RPC Style WS" and then u will see ATUALIZIDOC" node in ur request message (u have to readjust ur request mapping)

Thanks

Amit Srivastava

former_member187533
Participant
0 Kudos

Amit Srivastava,

Perfect! Actually this option solved my problem.

Many thanks for the help!

Best regards!

Former Member
0 Kudos

Glad to know that

BTW, just for information always try to debug calls in PI and TCP Gateway is one such tool to do that which could really help u in solving ur issues quickly.

Answers (4)

Answers (4)

Muniyappan
Active Contributor
0 Kudos

Hi,

I hope you received the wsdl from your webservice team. you have to use the soap action which should be there in the wsdl.

Regards,

Muni.

former_member187533
Participant
0 Kudos

The staff of the legacy system, which freed the WSDL not know inform the SOAP Action for this interface. Since the WSDL using SOAPUI works normally.

Thank you!

rhviana
Active Contributor
0 Kudos

Wait Lucas,

It's inbound SAP or outbound SAP ?

Because How do you use the SOAPUI for receiver msg ?

Do you have the adress of Webservice ? IF yes could you please do the action below:

http:/blalblalblabalbalbalbalba?wsdl

You will see the structure of WSDL , search for "soapAction'.

Kind regards,

Ricardo Viana.

former_member187533
Participant
0 Kudos

Ricardo,

This will be a synchronous interface, outbound.

ECC -> PI -> Legacy

Importing the WSDL in SOAPUI realize the call passing the parameters.

I do have access, however the only SOAPAction in this webservice would be this:

rhviana
Active Contributor
0 Kudos

You should insert this info at CC - SOAP Receiver at SoapAction: ATUALIZADO.

Another question, the legacy team is ready to receive this msg ?

Regards,

former_member187533
Participant
0 Kudos

Ricardo,

SoapAction:

But the problema persist:

<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'</SAP:AdditionalText>


Obrigado!

rhviana
Active Contributor
0 Kudos

Lucas,

I´m think that webservice it´s not ready to receiver your Message Type_XX_Request, I suggest you contact the webservice team do ask about it.

De nada.


BR,

Ricardo Viana.

Former Member
0 Kudos

Hello,

I am little bit confused.

First of all, using SOAP UI are u able to receive response from WS?

>>: No such operation 'mt_XXX_Request'

Secondly, which structure u are using for SOAP receiver? - WSDL file structure / or ur custom MT?

Thanks

Amit Srivastava

former_member187533
Participant
0 Kudos

Error creating ABAP PROXY in SPROXY using the External Interface Definition in Service:

message part refers a type, not an element

Structure XML:

<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:DefaultNamespace" xmlns:intf="urn:DefaultNamespace" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:DefaultNamespace">

<wsdl:types>

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:DefaultNamespace">

<complexType name="CAMPO">

<sequence>

<element name="NOMECAMPO" type="xsd:string"/>

<element name="TIPOCAMPO" type="xsd:string"/>

<element maxOccurs="unbounded" minOccurs="0" name="VALORCAMPO" type="xsd:string"/>

</sequence>

</complexType>

<complexType name="DOC">

<sequence>

<element name="CHAVE" type="xsd:string"/>

<element name="FORM" type="xsd:string"/>

<element maxOccurs="unbounded" minOccurs="0" name="CAMPOS" nillable="true" type="impl:CAMPO"/>

</sequence>

</complexType>

<complexType name="RETORNO">

<sequence>

<element name="UNID" type="xsd:string"/>

<element name="CODIGO" type="xsd:short"/>

<element name="MESSAGE" type="xsd:string"/>

</sequence>

</complexType>

</schema>

</wsdl:types>

<message name="ATUALIZADOCResponse">

<part name="ATUALIZADOCReturn" type="impl:RETORNO"/>

</message>

<message name="ATUALIZADOCRequest">

<part name="DOC" type="impl:DOC"/>

</message>

<portType name="GerAtualizaRegistro">

<operation name="ATUALIZADOC" parameterOrder="DOC">

<input message="impl:ATUALIZADOCRequest" name="ATUALIZADOCRequest"/>

<output message="impl:ATUALIZADOCResponse" name="ATUALIZADOCResponse"/>

</operation>

</portType>

<binding name="DominoSoapBinding" type="impl:GerAtualizaRegistro">

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

<operation name="ATUALIZADOC">

<wsdlsoap:operation soapAction="ATUALIZADOC"/>

<input name="ATUALIZADOCRequest">

<wsdlsoap:body namespace="urn:DefaultNamespace" use="literal"/>

</input>

<output name="ATUALIZADOCResponse">

<wsdlsoap:body namespace="urn:DefaultNamespace" use="literal"/>

</output>

</operation>

</binding>

<service name="GerAtualizaRegistroService">

<port binding="impl:DominoSoapBinding" name="Domino">

<wsdlsoap:address location="http://XXXXX/GeralDoc?OpenWebService"/>

</port>

</service>

</definitions>

rhviana
Active Contributor
0 Kudos

Lucas,

Because there is no any element into wsdl.


As for XSD, is it possible ?

If you I suggest you generate manually, creating a DT e MT  - REQ/RESP

Kind regards,

BR.


Ricardo Viana.

former_member187533
Participant
0 Kudos

So Ricardo, this was my first exit, create the DT and MT REQ / RES, but then the interface begins to show the problem:

/ Parsing / ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'.

If I use the External Definition SI presents the error to create the proxy!

Thanks for the help!

rhviana
Active Contributor
0 Kudos

Lucas,

Could you please provide the audit log from adapter SOAP ?

Also display the soap adapter configuration and soapAction from Webservice.

Kind regards,

former_member187533
Participant
0 Kudos
31.01.2014 10:17:38.994InformationMessage was received by the messaging system. Protocol: XI URL: http://XXXX/MessagingSystem/receive/AFW/XI Credential (User): PIISPD1
31.01.2014 10:17:38.998InformationUsing connection SOAP_http://sap.com/xi/XI/System. Trying to put the message into the request queue
31.01.2014 10:17:39.003InformationMessage successfully put into the queue
31.01.2014 10:17:39.006InformationThe message was successfully retrieved from the request queue
31.01.2014 10:17:39.007InformationMessage status set to DLNG
31.01.2014 10:17:39.009InformationDelivering to channel: XXXX_Funcionario
31.01.2014 10:17:39.009InformationMP: processing local module localejbs/sap.com/com.sap.aii.af.soapadapter/XISOAPAdapterBean
31.01.2014 10:17:39.030InformationSOAP: request message entering the adapter with user J2EE_GUEST
31.01.2014 10:17:39.218InformationSOAP: completed the processing
31.01.2014 10:17:39.219InformationSOAP: continuing to response message ad26d533-8a71-11e3-b462-000003ca861a
31.01.2014 10:17:39.219ErrorSOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation mt_XXX_Request
31.01.2014 10:17:39.226ErrorSOAP: error occured: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation mt_XXX_Request
31.01.2014 10:17:39.226ErrorMP: exception caught with cause com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'
31.01.2014 10:17:39.230ErrorException caught by adapter framework: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'
31.01.2014 10:17:39.231ErrorDelivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: SOAP: response message contains an error XIAdapter/PARSING/ADAPTER.SOAP_EXCEPTION - soap fault: No such operation 'mt_XXX_Request'. Setting message to status failed
31.01.2014 10:17:39.233ErrorMessage status set to FAIL
rhviana
Active Contributor
0 Kudos

Lucas,

Do you create the DT and MT for proxy structure or use a wsdl for that ?

I dont understand the point "I was not allowed to use the definition as external error occurred while creating the abap proxy." Why not ?

Kind regards,

BR.

Ricardo Viana.

former_member187533
Participant
0 Kudos

Ricardo,

Yes, I had to create the DT and MT for when trying to use External Service, Proxy could not create the sproxy, with the error mentioned in the update below.

Former Member
0 Kudos

Hi Lucas,

actually you need a SOAP action for calling the SOAP service. YOu should check the WSDL for that action and enter this in the SOAP CC.

BR
Harald