cancel
Showing results for 
Search instead for 
Did you mean: 

No SOAP Envelope

Former Member
0 Kudos

Hi there,

I'm quite new to SAP PI and I've got the following synchronous scenario:

SAP ECC ->SOAP -> PI -> SOAP -> non-SAP

I've created a proxy on our ECC system for calling the PI web service.

When I try to execute the web service using ABAP code, I can see the following XML message in PI:

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

<!-- Inbound Message -->

<SAP:Error SOAP:mustUnderstand="1" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">

<SAP:Category>XIAdapterFramework</SAP:Category>

<SAP:Code area="MESSAGE">GENERAL</SAP:Code>

<SAP:P1 />

<SAP:P2 />

<SAP:P3 />

<SAP:P4 />

<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: No SOAP Envelope but 1 definitions; HTTP 200 OK</SAP:AdditionalText>

<SAP:Stack />

<SAP:Retry>M</SAP:Retry>

</SAP:Error>

When I try to call the target WS via SOAP UI, I don't see that message.

Could it be, that the target WS is not in the format that PI is expecting?

Thanks in advance.

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

I've now seen that a CX_AJ_SYSTEM_FAULT exception is thrown when calling the execute_synchronous method in my ABAP coding.

Former Member
0 Kudos

Please refer this link :

Regards,

Sainath Chutke

Former Member
0 Kudos

The issue is still unresolved.

I've done some testing via SOAP UI:

1.) Calling the final WS without using PI works.

2.) If I import the WSDL from the sender agreement into SOAP UI (we've PI 7.11), it creates the request etc.

But if I put in the same payload as under 1.), it gives me the following error message:

com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=SAPT01;TS=BS_eTravel;AN=SAP2eTravel_Add_OUT;ANS=urn:sap.mdm_eTravel;

As endpoint of the WS I use

http://xxx.xxx.com:56100/XISOAPAdapter/MessageServlet?senderParty=&senderService=SAPxxx&receiverPart...

When calling the PI WS via ABAP proxy, it still raises the CX_AJ_SYSTEM_FAULT exception without any details.

In SXI_MONITOR I see the error message:

com.sap.engine.interfaces.messaging.api.exception.MessagingException: java.io.IOException: No SOAP Envelope but 1 definitions; HTTP 200 OK

If I use the Test Configuration Tool in Integration Builder, it only gives me green lights...

Thanks in advance!

baskar_gopalakrishnan2
Active Contributor
0 Kudos

If you create WSDL from sender agreement you might get the above error when tesing using XMLSPY Or SOAPUI. BUt SOAPSONAR gives no error. I have noticed that.

I would recommend you to try create WSDL using below link (see soap sender part) and test via SOAPUI.

http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/40611dd6-e66e-2910-f383-e80fb44f9...

Former Member
0 Kudos

Thanks!

After having changed the URL in SOAP UI to the format http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?

channel=:<service>:<channel>, I get now the same error in SOAP UI than using the ABAP code:

No SOAP Envelope but 1 definitions; HTTP 200 OK

So it seems, that this is the real issue...

Any suggestions how to solve that?

Could it be that the WS I'm calling is not compliant with the SAP standards?

If I call that WS directly from SOAP UI, there are no such problems.

Thanks in advance!

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

in your channel did you select Do not use SOAP Envelope under Adapter Specific Message Attribute (ASMA)

Former Member
0 Kudos

@Rodrigo: I've tried that now for the Receiver CC.

Then I get the following message:

Runtime Exception when executing application mapping program com/sap/xi/tf/_MM_SAP2eTr_Add_OUT_RESP_; Details: com.sap.aii.mappingtool.tf7.IllegalInstanceException; Cannot create target element /ns0:addMemberResponse. Values missing in queue context. Target XSD requires a value for this element, but the target-field mapping does not create one. Check whether the XML instance is valid for the source XSD, and whether the target-field mapping fulfils the requirement of the target XSD Thrown: com.sap.aii.ib.core.mapping.execution.

But as I wrote before, if I run the Test Configuration Tool with the same data, it doesn't give me any error message.

baskar_gopalakrishnan2
Active Contributor
0 Kudos

The message shows that PI receives soap message without soap envelope from SOAP Sender. The problem could be at soap sender configuration or at ABAP Proxy triggering level.

rodrigoalejandro_pertierr
Active Contributor
0 Kudos

this error is related to response from the backend.

lets do this:

The result shows that WSDL URl in the soap receiver adapter is not fully write. correct it.

i want you to

a) Load WSDL in soap ui

b) fillup user and password

c) target url (the URL you defined in the receiver channel)

d) test it

if you get response fine, then copy the url used in soap ui and paste it in the soap receiver cc. you will be all set.

Rgds

RP

Former Member
0 Kudos

Hey Rodrigo,

you made my day!

I've now realized that I used the wrong URL in receiver CC (I used the URL pointing to the WSDL file...).

I've corrected it, unticked the "Do Not Use SOAP Envelope" and now it works!!

Thanks a lot for your help!

Former Member
0 Kudos

+1

very helpful!

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi

Related Post ..Check it out Once