SOAP Adapter: DO not use soap envelope
Hi Guys
I have a scenario, which calls a webservice from my ABAP Proxies, the twist in this is that SOAP request expects license info into the header of SOAP envelope, I could achive this by XSLT mapping in the receiver SOAP adapter I selected the option "Do not use SOAP envelope" and could do the call.
Due to this the response received from the webservice is treated as payload, as shown below...
response message payload:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Header xmlns="http://schemas.xmlsoap.org/soap/envelope/">
<SubscriptionInfo xmlns="http://ws.strikeiron.com">
<LicenseStatusCode>0</LicenseStatusCode>
<LicenseStatus>Valid license key</LicenseStatus>
<LicenseActionCode>0</LicenseActionCode>
<LicenseAction>Decremented hit count</LicenseAction>
<RemainingHits>18</RemainingHits>
<Amount>0</Amount>
</SubscriptionInfo>
</Header>
<soap:Body>
<getRateResponse xmlns="CurrencyRates">
<getRateResult>44.945</getRateResult>
</getRateResponse>
</soap:Body>
</soap:Envelope>
and when i am trying to do the response mapping, it is not able to read the value.
Anyone having any idea, on how we could do this.
Thanks
Dheeraj
Hi
I am sorry for replying in so late, was busy with some projects.
I got few mails and this post is cathing up again, so thought of giving the solution I followed without any adapter module or anything, simple plain XSLT mapping.
<u><b>Integration Repository</b></u>
1. Created data type and message type for Outbound Interface
2. Imported the WSDL
3. Created an XSD out of the sample response I got by calling the WSDL (this you can do from any tool available, i used the strikeiron website), pls refer below to see the XSD below, and you will have to use the message type envelope from it.
4. Most Important step, created 2 XSLT mappings, one for request and the other for response., Pls refer below for both these mappings.
5. did the interface mapping
<u><b>Integration Directory</b></u>
1. pls configure your scenario as normaly you do, and while you configure the communication channel for your soap receiver, make sure you click on the do not use soap envelop option.
thats it done.
<u><b>XSLT Request Mapping</b></u>
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<LicenseInfo xmlns="http://ws.strikeiron.com">
<RegisteredUser>
<UserID>xyz</UserID>
<Password>xyz</Password>
</RegisteredUser>
</LicenseInfo>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<getConversion xmlns="CurrencyRates">
<FromCurrencyCode>
<xsl:value-of select="//fromCurrency"/>
</FromCurrencyCode>
<ToCurrencyCode>
<xsl:value-of select="//ToCurrency"/>
</ToCurrencyCode>
<Amount>1</Amount>
</getConversion>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</xsl:template>
</xsl:stylesheet>
<u><b>XSLT Response Mapping</b></u>
<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="CurrencyRates" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:template match="/">
<ns0:MT_Cur_res xmlns:ns0="http://www.april.in/WebService/SOAPHeader">
<Rate>
<xsl:value-of select="soap:Envelope/soap:Body/a:getConversionResponse/a:getConversionResult"/>
</Rate>
</ns0:MT_Cur_res>
</xsl:template>
</xsl:stylesheet>
<u><b>Webservice Response XSD</b></u>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://ws.strikeiron.com" xmlns:ns2="CurrencyRates">
<xs:import namespace="CurrencyRates" schemaLocation="ns2.xsd"/>
<xs:import namespace="http://ws.strikeiron.com" schemaLocation="ns1.xsd"/>
<xs:element name="Envelope">
<xs:complexType>
<xs:sequence>
<xs:element ref="soap:Header"/>
<xs:element ref="soap:Body"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Header">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns1:SubscriptionInfo"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Body">
<xs:complexType>
<xs:sequence>
<xs:element ref="ns2:getConversionResponse"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
let me know in case somebody gets stuck somewhere for this scenario.
Take Care
Dheeraj
Similar Messages
-
SOAP scenario "Do not use SOAP Envelope" check problems
Hi Gurus!
I'm again here.
I've an scenario with SOAP Receiver, the WS do I need consume, looks like:
POST /SumTotalws1/services/Authentication.asmx HTTP/1.1
Host: xxx.xxx.xxx.xxx
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/Login"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Login xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/">
<credentials>
<Username>string</Username>
<Passcode>string</Passcode>
<AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
<AccountType>NotSpecified or WebService or WebUI</AccountType>
</credentials>
</Login>
</soap:Body>
</soap:Envelope>
but the response looks like:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
<Value>string</Value>
</UserToken>
</soap:Header>
<soap:Body>
<LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/" />
</soap:Body>
</soap:Envelope>
when I create my communication channel with "Do not Use SOAP Envelope" uncheck it, all run ok, but I only get in response message "<LoginResponse>" and I need <UserToken>
When I check it "Do not use SOAP Envelope" and I use XSLT mapping to add SOAP Env to request message, I get response message empty.
I tried the web Service with the message that I obtained from de XSLT mapping in the program SOAPUI. I get ok response with the <UserToken> value.
some idea to solve this problem??
Thanks in advance.
Edited by: KrlosRios on Sep 30, 2011 8:07 PMHi, thanks for your answer.
Can I use AXIS to execute any WS?
The WS that I tried execute looks like this:
POST /xxxx/services/Authentication.asmx HTTP/1.1
Host: xxx.240.106.39
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://xxx/Authentication/Login"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Login xmlns="http://xxxxAuthentication/">
<credentials>
<Username>string</Username>
<Passcode>string</Passcode>
<AuthenticationType>NotSpecified or Anonymous or NTAuthentication or Passport or LDAP</AuthenticationType>
<AccountType>NotSpecified or WebService or WebUI</AccountType>
</credentials>
</Login>
</soap:Body>
</soap:Envelope>
and for the response:
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<UserToken xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/">
<Value>string</Value>
</UserToken>
</soap:Header>
<soap:Body>
<LoginResponse xmlns="http://www.sumtotalsystems.com/sumtotal7/sumtotalws/Authentication/"></LoginResponse>
</soap:Body>
</soap:Envelope>
also I found in Trace node in SXI_MONITOR, jus before execute response mapping :
<Trace level="1" type="B" name="PLSRV_MAPPING_RESPONSE"></Trace><!-- ************************************ -->
<Trace level="1" type="Timestamp">2011-11-01T19:33:34Z UTC-6 Start of pipeline service processing PLSRVID= PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV">
<Trace level="3" type="T">Calling pipeline service: PLSRV_MAPPING_RESPONSE</Trace>
<Trace level="3" type="T">Reading Pipeline-Service specification... </Trace>
<Trace level="3" type="T">PLSRVTYPE = </Trace>
<Trace level="3" type="T">ADRESSMOD = LOCAL</Trace>
<Trace level="3" type="T">P_CLASS = CL_MAPPING_XMS_PLSRV3</Trace>
<Trace level="3" type="T">P_IFNAME = IF_XMS_PLSRV</Trace>
<Trace level="3" type="T">P_METHOD = ENTER_PLSRV</Trace>
<Trace level="3" type="T"> </Trace>
<Trace level="1" type="B" name="CL_XMS_MAIN-CALL_PLSRV_LOCAL"></Trace><!-- ************************************ -->
<Trace level="1" type="B" name="CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV"></Trace><!-- ************************************ -->
<Trace level="2" type="T">......attachment XI_Context not found </Trace>
<Trace level="3" type="T">Das Mapping wurde bereits in der Interface-Ermittlung bestimmt. </Trace>
<Trace level="3" type="T">Objekt-Id des Interface-Mappings 8594D8C2E6DA3C008F45B112FFCC86B8 </Trace>
<Trace level="3" type="T">Versions-Id des Interface-Mappings C3BB8FB0A1D511E0A688E9FCB9F06E16 </Trace>
<Trace level="1" type="T">Interface-Mapping http://xxxxx.net/pi/lms/Authentication OM_LMS_Authentication </Trace>
<Trace level="3" type="T">Mapping-Schritte 1 XSLT Response_LMS_Auth5 </Trace>
<Trace level="3" type="T">MTOM-Attachments werden nicht in die Payload überführt. </Trace>
<Trace level="1" type="T">Payload is empty. </Trace>
<Trace level="3" type="T">Dynamische Konfiguration ist leer. </Trace>
<Trace level="2" type="T">Modus 0 </Trace>
<Trace level="2" type="T">Call XSLT processor with stylsheet Response_LMS_Auth5.xsl. </Trace>
<Trace level="3" type="T">Method fatalError called, terminate transformation, because of
Thrown:
javax.xml.transform.TransformerException: java.io.IOException: Parsing an empty source. Root element expected!
at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:250)
Say Payload is empty.
and in left directory tree, not exist "payload" node, only existe SOAP Body and in "Manifest" node looks like this:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- XML Validation Outbound Channel Response -->
<SAP:Manifest wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<SAP:Payload xlink:href="cid:att-60c3078b066911e1bc1500000093b25a @sap.com">
<SAP:Name>MainAttachment</SAP:Name><
SAP:Description>Main document</SAP:Description>
<SAP:Type>Application</SAP:Type></SAP:Payload>
</SAP:Manifest>
Thanks for your help. -
Unsing RequestOneWayBean with Do Not Use SOAP Envelope
HI All ,
I have a requriement where Ecc is calling PI with an Asyn Proxy and PI calls a Sync Webservice and gets the Response back and sends the response back to ECC in Async manner . (Async - Sync Bridge).
I need to call aWeb Service which required specifc SOAP Headers . SO I have created a Custom Structure via XSLT mapping and calling the Web Service with the Option Do Not Use SOAP Envelope as checked . I have also used the RequestResponse Bean & ResponseOneWay Bean in the SOAP Receiver adapter to make the call from Sync to Asyn. When I execute the Interface the response from the Web Service is not flowing into PI .
I am getting the error "Exception caught by adapter framework: InterfaceDetermination did not yield any actual interface" .
Has anyone worked on the ResponseOneway Bean with parameter "Do Not Use SOAP Envelope as checked" . Can some one please help me out with this issue..
Thanks
Regards
NIlesh Taunk.HI Eng ,
I have not been able to accept the SOAP Fault Response. The link that you have provided above works for accepting the SOAP Fault . But in my case the SOAP Receiver Adapter has the Option "DO NOT Use SOAP Envelope " checked . So it is still not working in my case .
I have made all the Configurations in the Receiver SOAP adapter but am unable to get the fault response back .
Please find below the Screenshot of the Receiver SOAP Adapter.
Im my case I am able to receive the successfull response in my Response Mappping (I have created a diff ICO for Response Message and a diff ICO for Fault Message). When a fault is received even the Fault message goes to the response mapping and it fails in the response mapping as the fault structure & the response structure do not match .
Do we need to make some additional configuration for the handing faults, whn the option "DO NOT use SOAP envlope is checked" as it removed the Env from the messgaes.
Am I missing something, would you be able to have a look.
Thanks
Regards
Nilesh Taunk. -
Do Not Use SOAP Envelope doesn't show on SOAP Parameters
Hi!..
Somebody knows why the Do Not Use SOAP Envelope option on conversion Parameters for SOAP Adapter isn't there?...I have XI 3.0 SP19 and I'd seen on a lot of notes and how's to that there is a kind of option. I need the functionality that that check does but I can't find it.
I Only have Keep headers, Keep Attachments, Use Encoded headers and Use query string.
Thanks in advance..
Carlos.HI Carlos,
I've got same problem, which metadata should I reimport?
cheers,
Edu -
How to capture SOAP fault when using "Do not use SOAP envelope" parameter
Hi,
we have a synchronous RFC -> XI -> Web Service scenario. The Web Service requires some custom SOAP header elements for user authorization which forced us create the entire SOAP message in a message mapping and to set the "Do not use SOAP envelope" parameter in the receiving SOAP adapter.
In order to capture the SOAP fault message from the Web Service we have created a message interface with a fault message and also created an interface mapping with a fault message mapping.
Our problem is that the fault message is not populated when we get a SOAP fault message back from the Web Service. Is this due to the fact that we have set the "Do not use SOAP envelope" parameter?
Thanks in advance!
Stefan
Message was edited by:
Stefan NilssonHi Bhavesh,
I have exaactly same scenario. But the only difference is that the Successful payload is also not coming into PI.
The request is successfully hittng the webservice.
Please guide me on how to capture the paylod.
I am using the WSDL provided by the thirdparty but sill the message is not coming into PI. -
Problem in mapping while using Do not Use SOAP Envelope
Hi All,
This is wrt my thread 'Removing and adding SOAP Envelope'
I am currently working on SOAP-XI-Proxy Scenario.
For some un avoiadable reason, I had to use the option 'DO not use SOAP Envelope' .So the SOAP Envelope came withen the payload and in the pipeline, I can see the payload prefixed by '<?xml version="1.0" ?>' .
Now my payload looks like
<?xml version="1.0" ?> ( no more the encoding="utf-8" notation is there)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<Complaint_Request xmlns="urn:******createserviceticket">
<CaseNo>12345</CaseNo>
<CustomerNo>12345</CustomerNo>
</Complaint_Request>
</soapenv:Body>
</soapenv:Envelope>
To accomodate the change, I also changed my request structure as
<Complaint_Request> (My new message Type)
<Envelope>
<Body>
<Complaint_Request> (My previous message Type)
<caseNo>
<CustomerNo>
But I am facing problem in mapping the values to the target structure (which is a flat structure),
as the payload doesnot start with ' ns1: ' notation any more . Even XSLT mapping is not working.
When I am pasting the payload in the Testing Mapping Editor, the Source Node are correctly
formed, but all come in RED . But as the root node , ie 'ns0' is not there, the value
from child nodes are not getting mapped to the target fields.
Regards,
SubhenduHi Joel,
SAP says, when we use the option 'DO Not Use SOAP Envelope', the payload also contains the SOAP
Envelope. So it is obvious that the payload wont start with 'ns0' notation.
So I am searching for a solution, when we use that option.
Regards,
Subhendu -
I have a scenario in which a Webservice is called from PI; as the webservice request some specific fields in the SOAP-header I have found that I should check the "Do not use SOAP envelope" option in the SOAP-receiver channel.
I have searched the forum/SDN for examples of how to create the SOAP envelope including the required header fields. I have found some posts refering to XSLT-mapping; however I'm not famliar with XSLT so I'm looking for an example or guide how to create the SOAP envelope for this scenario.
Can anybody be of assistance?
Kind regards,
John.Here is a sample of an xlst I used for this purpose.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Header/>
<soapenv:Body>
<p262:operationName xmlns:p262="http://othersite.com">
<xsl:apply-templates/>
</p262:operationName>
</soapenv:Body>
</soapenv:Envelope>
</xsl:template>
<xsl:template match="shippingOptions">
<shippingOptions>
<xsl:apply-templates select="destination" />
<equipmentId><xsl:value-of select="equipmentId"/></equipmentId>
<xsl:apply-templates select="origin" />
</shippingOptions>
</xsl:template>
<xsl:template match="destination">
<destination>
<countryCode><xsl:value-of select="countryCode"/></countryCode>
<postalCode><xsl:value-of select="postalCode"/></postalCode>
</destination>
</xsl:template>
<xsl:template match="origin">
<origin>
<countryCode><xsl:value-of select="countryCode"/></countryCode>
<postalCode><xsl:value-of select="postalCode"/></postalCode>
</origin>
</xsl:template>
</xsl:stylesheet> -
HTTP 415 Unsupported Media Type with SOAP adapter trying to put SOAP header
Hello,
I am trying to put data into soap header using soap receiver adapter. Seems like building the complete soap message is the right way to go. Thus I wrote a java program to build the complete soap message (soap envelop, soap header and soap body which contains the message PI received from the sender). Mapping program works well. However when I ran the scenario, I got Error "SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 415 Unsupported Media Type" when calling the receiver's web service (the SOAP receiver adapter CC have the "Do Not use SOAP Envelop" checked). Anyone knows why I got this error? From google, seems like this error is because the http's content-type is set to other type, rather than "text/xml". However in soap CC there is no option to control this.
The message sent to the receiver is (after mapping);
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<SOAP-SEC:Signature xmlns:SOAP-SEC="http://schemas.xmlsoap.org/soap/security/2000-12" MyAttr="value">My Test Value</SOAP-SEC:Signature>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:UpdateEquipment xmlns:ns1="http://mycomp.com/mywebservice">
<ns1:EquipmentNumber>000000012345</ns1:EquipmentNumber>
<ns1:LicensePlate>654321</ns1:LicensePlate>
</ns1:UpdateEquipment>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Anyone can help?
ThanksWhen you check "Do Not use SOAP Envelop", the SOAP adapter chooses application/xml instead of text/xml.
You can change the content type with help of the MessageTransformBean. You put the bean in the module chain of the receiver channel and add the parameter Transform.ContentType = text/xml
See
http://help.sap.com/saphelp_nwpi71/helpdata/EN/57/0b2c4142aef623e10000000a155106/frameset.htm -
Error with Do Not use SOAP envelope
All,
I used the do not send SOAP envelope option in the SOAP receiver adapter.
Instead of XSLT, I used JAVA mapping to create the entire SOAP message ( Am more comfortable with Java and this is just a trial) , and this is the output of my java mapping with the SOAP envelope created,
<i><?xml version="1.0" encoding="UTF-8"?><soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"><soap:Header></soap:Header><soap:Body><ns1:GetQuote xmlns:ns1="http://www.webserviceX.NET/"><ns1:symbol>SAP</ns1:symbol></ns1:GetQuote></soap:Body></soap:Envelope></i>
Am using the STOCK Quote for testing purposes and this is the error I am getting when testing my interface,
<i><faultstring>System.Web.Services.Protocols.SoapException: Server found request content type to be '', but expected 'text/xml'. at System.Web.Services.Protocols.SoapServerProtocol.ReadParameters() at System.Web.Services.Protocols.WebServiceHandler.Invoke() at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()</faultstring></i>
Any directions / inputs on how to resolve this issue?
Regards,
BhaveshHenrique,
Tried various permutations~~ The only new error / progress seems to be for this,
SOAPAction "http://www.webserviceX.NET/GetQuote"
This is giving me an error ,
<i>HTTP server code 400 reason Bad Request explanation <h1>Bad Request (Invalid Header Name)</h1></i>
Also, tried by adding the Colon after SOAPAction,
SOAPAction: "http://www.webserviceX.NET/GetQuote"
Same error
Final thing i guess is to make SOAPAction all small as soapaction and check if it works. Will let you know.
Regards,
Bhavesh -
Soap Adapter Channel not found
I'm having problems geting the Sender SOAP adapter to work.
I'm using to test it
http://<XXXXXXXX>:50000/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:SunriseSoftwareSostenuto:TimeSentSoap
where <XXXXXXXX> is our domain
but this returns channel not found
SunriseSoftwareSostenuto is the Service
TimeSentSoap is the communication channel
I've already established that the Soap Adapter is active
Is there something that I've missed ?hi
I've tried to connect to the Soap adapter using
http://xxxxxx:50000/XISOAPAdapter/MessageServlet?channel=:SunriseSoftwareSostenuto:TimeSentSoap
Where SunriseSoftwareSostenuto is the business service and
TimeSentSoap is the communication channel
but get the error code returned below
I've tested the sender agreement/ communication channels config internally and they seem fine
could someone point me in the right direction
is it a java error
or is it a authorisation problem?
<SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP:Body>
<SOAP:Fault>
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
<detail>
<s:SystemError xmlns:s="http://sap.com/xi/WebService/xi2.0">
<context>XIAdapter</context>
<code>ADAPTER.JAVA_EXCEPTION</code>
<text>com.sap.aii.af.mp.module.ModuleException: either no channelID specified or no channel found for the specified party, service, and channel name, MessageServlet(Version $Id: //tc/xi/NW04S_21_REL/src/_adapters/_soap/java/com/sap/aii/af/mp/soap/web/MessageServlet.java#1 $) -
Problem with SOAP Adapter receiver not receiving the proper string
Hi friends
I have a very simple scenario as follows using SOAP Syncronous Call
SENDING SCENARIO
================
ExternalClient --> SOAP ADAPTER --> XI -> RFC ADAPTER --> ZBAPI
RECEIVING SCENARIO
==================
ZBAPI --> RFC ADAPTER --> XI --> SOAP ADAPTER --> ExternalClient
Here External Client is sending a search ID and ZBAPI searches for that record and send the FirstName and LastName.
I am using external Definitions in XSD format as follows.
INPUT XSD is
=========================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://cincom.com/xi/socrates/customerSearch" targetNamespace="http://cincom.com/xi/socrates/customerSearch">
<xsd:element name="ZBAPI_GET_NAME">
<xsd:complexType>
<xsd:all>
<xsd:element name="ID" type="xsd:integer" minOccurs="0" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
===========================================
Reciving XSD file has
==============================================
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:socrates.cincom.com" targetNamespace="urn:socrates.cincom.com">
<xsd:element name="ZBAPI_GET_NAME_RESPONSE">
<xsd:complexType>
<xsd:all>
<xsd:element name="ADDRESSDATA" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="LNAME" minOccurs="0">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="20" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
=========================================================
I HAVE TESTED THE ZBAPI AND IT WORKS WELL ON ITS OWN. ALSO I HAVE TESTED THAT THE MESSAGE SENT FROM OUTSIDE CLIENT IS REACHING BAPI. HOWEVER WHEN I GOTO 'SXMB_MONI' AND CHECK THE
XML STRING THAT THE RECIEVER IS GETTING, I SEE JUST THE FOLLOWING TWO LINES
===================================
<?xml version="1.0" encoding="UTF-8" ?>
<ns1:ZBAPI_GET_NAME_RESPONSE xmlns:ns1="urn:socrates.cincom.com" />
======================================
IF YOU NEED ANY FURTHER INFO, PLEASE LET ME KNOW.
HOPE SOME ONE CAN GUIDE ME WITH THIS PROBLEM.
THANKS IN ADVANCE
RAMRam
Can you pls. confirm whether the mapping of your XSD fields & BAPI fields are in same sequence. I mean hierarchy is same or not.
Just to verify, as you said you are using Sync scenario that means you are using ONE Sender Soap & ONE Reciever RFC adapter.
Regards
Lalit -
XI / PI SOAP Adapter - MessageServlet not found / not responding
I am in trouble with XI SOAP Adapter. When I try to reach the <b>MessageServlet</b> ( http://host:port/XISOAPAdapter/MessageServlet ) I get the response that document dont exists. Why MessageServlet do not respond? Anyone can help me?
In my Adapter Monitor ( http://host:port/mdt/amtServlet ) I see about the SOAP adapter a grey status and the information: "SOAP Adapter Monitoring is now part of Channel Monitoring". This is not a problem, according to Suraj: "SOAP Adapter will become active only when you sent a message through that for atleast one time.")
See also these topics:
SOAP adapter installation and activation
Adapter monitoring: SOAP is grey although it is used?
how can i enable SOAP Adapter?
https://websmp208.sap-ag.de/~form/sapnet?_FRAME=CONTAINER&_OBJECT=012003146900000286382005 (<b>SAP Note 856597</b>)
<i> I have readed these topics (and others), but my problem seems to be a little different.
</i>
My XI runtime cache contents (SXI_CACHE) are up-to-date.
<b>Information of some of my XI components:</b>
Software Components
Vendor Name Version Location Applied
sap.com SAP-JEE 6.40 SP17 (1000.6.40.17.0.20060516064307) SAP AG 20060612185606
sap.com SAP-JEECOR 6.40 SP17 (1000.6.40.17.0.20060516064111) SAP AG 20060612185559
sap.com NWMADMIN 6.40 SP17 (1000.6.40.17.0.20060515153837) MAIN_APPL63VA_C 20060612185601
sap.com SAP_XITOOL 3.0 SP17 (1000.3.0.17.0.20060504222004) SAP AG 20060613105756
sap.com SAP_XIPCK 3.0 SP16 (1000.3.0.16.0.20060220233019) SAP AG 20060612185556
sap.com LM-TOOLS 6.40 SP17 (1000.6.40.17.0.20060417111655) MAIN_APPL63VA_C 20060612185603
sap.com SAP-XICONS 3.0 SP16 (1000.3.0.16.0.20060220232901) SAP AG 20060612185600
sap.com SAP-XIAFC 3.0 SP12 (1000.3.0.12.5.20050712085155) SAP AG 20060612185555
sap.com SAP_XIAF 3.0 SP17 (1000.3.0.17.0.20060522230043) SAP AG 20060613103623
sap.com SAP_JTECHF 6.40 SP17 (1000.6.40.17.0.20060516064445) SAP AG 20060612185559
sap.com SAP_JTECHS 6.40 SP17 (1000.6.40.17.0.20060516064629) SAP AG 20060612185606
<b>sap.com com.sap.aii.af.mp 3.0 (3.0.1720060522104934.0000) SAP AG 20060613102037 sap.com/SAP-XIAFC </b>
sap.com com.sap.aii.af.soapadapter 3.0 (3.0.1720060522104934.0000) SAP AG 20060613103506 sap.com/SAP_XIAF
Thanks a lot! If you need other information, please, let me know.
<b><i>Ivan, from Brazil</i></b><i>"https://websmp208.sap-ag.de/~form/sapnet?_FRAME=CONTAINER&_OBJECT=012003146900000286382005 (<b>SAP Note 856597</b>)
I have readed these topics (and others), but my problem seems to be a little different."</i> -
Hello experts,
I've a provider proxy scenario where a DB table on the ECC backend system must be updated.
I used a receiver SOAP adapter with following parameters:
URL: http://<host>:<pmort>/sap/xi/engine/?type=receiver and user authentication for the ECC system.
This does not seems to work. I see nothing on the SXMB_MONI transaction on the backend system.
Then, I tried to use a receiver XI adapter with the same parameters and logon data for an SAP system.
This seems to work fine.
Please tell me what I did wrong because the SOAP adapter should work too, isn't it?
Thanks a lot
DimitriHi Ravi,
I published it and created an endpoint via SOAMANAGER, but still nothing.
Now, I also get this when I check SXMB_MONI on my ECC backend system:
No implementing class registered for the interface (ABAP interface, request message ...... request message, namespace ......)</SAP:Stack>
But I generated and regenerated the proxy. Very strange.
When I check SXI_CACHE tranaction on the ECC backend system, I see this: "cache contents are obsolete".
Please advice
Thanks
Dimitri -
BPE adapter : message not used by any process
hi frnds,
I've created 2 scenarios using BPM
1) merge scenario: 2 msgs ==> BPM ==> 1 msg
1st msg is going without any problem. but 2nd msg is giving error saying 'BPE ADAPTER ERROR: message not used by any process'. i checked in sxi_cache and found that return code for Intg'n process is 0 only. but still i tried reactivating. but no use
2) split scenario: 1 msg ==> BPM ==> 2 msgs
sender msg is going without any problem,but not receiving 2 rcvr msgs to the target directory. return code of IP is 0 and no other errors.
after installing PI on my system, for the first time i'm trying BPM scenarios. simple file to file working properly. BPE adapter has to be activated manually or i missed any initial configuration??? pls help me to resolve this.
thanks.abhishek,
I have used the following steps in BPM for this scenario xml file ==> BPM ==>xml file
1) data types: a)send_dt
b) rcv_dt
2) msg types a) send_mt
b)rcv_mt
3) interfaces : send_ob_im
send_abs_im
rcv_abs_im
rcv_ib_im
in integration process,
start ==> receive ==> send ==> stop
so in general its like,
send CC ==> send OB I/F ==> send ABS I/F ==> rcv ABS I/F ==> rcv IB I/F ==> rcv CC
when i'm not using BPM, outbound queue SMQ1 is empty and messages are not stickking up there. but if i use BPM, SMQ1 is having entry saying 'SYSFAIL'. for the first time i'm doing the BPM scenarios.
thanks. -
Hi experts,
We have a Proxy to SOAP scenario and we have the same issue mentioned in this post and in note 1522630, the version is SAP PI 7.31 (AEX). We configured 2 XSLT mappings and we use the MessageTransformBean (Transform.ContentType=text/xml;charset=utf-8) before call the standar module for SOAP receiver adapter.
Everything looks good but in the payload appears MainAttachment (in SAP PI and SXI_MONITOR in SAP ECC 6.0 SAP_BASIS 731) and the proxy can´t read the response for this reason.
This is that we see in the message content:
<sap:Manifest xmlns:sap='http://sap.com/xi/XI/Message/30' xmlns:xlink='http://www.w3.org/1999/xlink'><sap:Payload xlink:type='simple' xlink:href='cid:[email protected]'><sap:Name>MainAttachment</sap:Name><sap:Description>Main document</sap:Description><sap:Type>Application</sap:Type></sap:Payload></sap:Manifest>
Do you have any updates of this problem or any suggestion?
Thanks and regards.Hi Sriram and Mark,
Thanks a lot for your help.
After a lot of test we solve the problem.
We are using an Integrated Configuration and the keepAttachment checkbox is not necesary.
The problem was that the value "ns0" in the message type of the xml was not added by the XSLT mapping(altova), we added manually in the xsl file and the proxy read the information.
The message content was not changed and looks like an attachment, also y sxi_monitor looks as MainAttachment in the payload but is interpreted good.
Maybe you are looking for
-
ITunes 9.2.1 doesn't recognise my iPhone 3G (Windows 7 64-bit)
Hi there I recently upgraded to iTunes 9.2.1 and the software no longer recgnises my iPhone. Windows does recognise the phone, but it doesn't show in Devices on iTunes. I've tried all the tips on the Apple website several times now (uninstalling/rein
-
In 3.6.16, the buttons are all over the place. In previous versions, the forward, back, refresh, stop and home buttons were all together. In this version, the refresh and stop buttons are between the address and search windows, and the home button to
-
I previously had Adobe Reader 9, which worked perfectly.
-
PAYMENT BATCH를 APP-10050 때문에 CANCEL 할 수 없을때의 해결책
제품 : FIN_AP 작성날짜 : 2003-11-24 PAYMENT BATCH를 APP-10050 때문에 CANCEL 할 수 없을때의 해결책 ================================================ PURPOSE PAYMENT BATCH를 APP-10050 때문에 CANCEL 할 수 없을때의 해결책을 제시한다. Problem Description Payment Batch를 cancel 하고자 할때 'APP-1005
-
Purchase Order Accounting Accurals
I have an issue with the way the accounting accrual is working for my purchase orders. I have set my freight conditions up to pay a flat rate and this is working exactly as desired; however, when the accounting accrual posts it post an amount that i