XI SOAP adapter vs webservice testing tools

Actually I have creted simple xslt mapping and managed to come up with exactly in the format of endpoint request format of the webservice.
here is the payload( I have created the SOAP Envelop, Header and body in the payload)
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
  <SOAP-ENV:Header>
    <eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
      <eb:ConversationId>sucesss</eb:ConversationId>
      <eb:From>
        <eb:PartyId type="urn:x12.org:IO5:01">applevac.com</eb:PartyId>
      </eb:From>
      <eb:To>
        <eb:PartyId type="urn:x12.org:IO5:01">webservices.sabre.com</eb:PartyId>
      </eb:To>
      <eb:CPAId>P4XC</eb:CPAId>
      <eb:Service eb:type="sabreXML">session</eb:Service>
      <eb:Action>SessionCreateRQ</eb:Action>
      <eb:MessageData>
        <eb:MessageId>mid:[email protected]</eb:MessageId>
        <eb:Timestamp>2001-02-15T11:15:12Z</eb:Timestamp>
        <eb:TimeToLive>2001-02-15T11:15:12Z</eb:TimeToLive>
      </eb:MessageData>
    </eb:MessageHeader>
    <wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility">
      <wsse:UsernameToken>
        <wsse:Username>5555</wsse:Username>
        <wsse:Password>password</wsse:Password>
        <Organization>L5x5</Organization>
        <Domain>DEFAULT</Domain>
      </wsse:UsernameToken>
    </wsse:Security>
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <eb:Manifest SOAP-ENV:mustUnderstand="1" eb:version="1.0">
      <SessionCreateRQ>
        <POS>
          <Source PseudoCityCode="P4XC"/>
        </POS>
      </SessionCreateRQ>
    </eb:Manifest>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I want XI to post just the payload and nothing else so....
I selected Do not use envelope in the adapter configuration because we have every thing( SOAP envelop, header and body in the payload) but it is not working as i am still getting the same error message before implementing this xslt.
Error Message:
<StackTrace>com.sabre.universalservices.base.session.SessionException: errors.session.USG_CONVERSATION_ID_REQUIRED at com.sabre.universalservices.gateway.control.SecurityInterceptor.executeOnRequest(SecurityInterceptor.java:116) at com.sabre.universalservices.base.interceptor.Interceptor.execute(Interceptor.java:113) at com.sabre.universalservices.base.interceptor.InterceptorChain.applyInterceptors(InterceptorChain.java:32) at com.sabre.universalservices.base.interceptor.InterceptorManager.process(InterceptorManager.java:121) at com.sabre.universalservices.gateway.control.WSGateway.onMessage(WSGateway.java:415) at com.sabre.universalservices.gateway.control.WSGateway.handleRequest(WSGateway.java:313) at com.sabre.universalservices.gateway.control.WSGateway.doPost(WSGateway.java:247) at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
Do you have any idea like XI will add anything to this pay load when it sends out to the webservice?
If i take the payload from the XI and try it in SOAPUI(tool to test webservice, you would know it already ) it works fine, I mean I was able to get the proper response but in XI it does not work.
Any help in this regards is highly appreciated.
we are using PI 7.0 and SP 9.
Message was edited by:
        Venkat Marni
Message was edited by:
        Venkat Marni

Hi,
Finally I could solve the problem.
I was actually trying to post the information from the http client at the sender and receiver side I am getting the error.
Later i have actually created the webservice for my sender interface in XI then post the info using the SOAPUI(3rd party tool) to post the info to XI and then Xi will communicate the webservice using SOAP adapter then I got the proper response from the webservice.
In this whole episode I guess there is some thing wrong in using a htp client but technically we should be able to use http client as XI will take the payload and use xslt mapping to come up with target interface soap message( but i do not know why XI failed in that).
thanks for all your help and hope this is clear.
thanks,
Venkat

Similar Messages

  • SOAP Adapter with Webservice Provider URL

    This is what I did. Configured a Receiver SOAP adapter with SOAP 1.1 Message Protocol. Target URL is the WSDL URL Binding (SOAMANAGER) with authentication.
    When I test the scenario the Message is through PI and Communication Channel - No errors
    However strangely I do not see anything happening in ECC. Sometimes a log shows up in SOAMANGER "SOA Runtime Log/Trace Viewer" which has SOAP Runtime Error Information. This is very inconsistent again.
    I have tested SOAP with XI 3.0 Message Protocol and the messages are through in ECC. No problems there.
    Also Tried with directly using "SOAP Location URL" from within the Binding WSDL URL. This also results in DUMP in ECC.
    Does SOAP adapter with SOAP 1.1 Message Protocol support Webservice Provider in ECC EHP5(SOAMANAGER Binding)? Is it built to support this kind of scenario? Or only WS adapter can invoke the Binding URL?
    Is there any other URL that can be invoked with SOAP -SOAP1.1?
    Using PI 7.1 Service Pack 5.
    Pavan.
    Edited by: pavan sodani on Aug 12, 2011 4:57 AM

    Did you properly expose the RFC/Class in SOAMANAGER of the backend system? there is no endpoint created by default. You have to create and endpoint for a logical system (I guess). Then try calling the webservice from any 3rd party tool like Altova XML Spy. If that works then the ABAP webservice is working good and could be called from PI.
    VJ

  • XI http-adapter; http-post test tool?

    Hi All
    We have following scenario: system A sends data to R/3 through XI, XI's inbound adapter is type http (Syst A -> XI 3.0 -> R/3).
    Now we need to test the XI's inbound http-adpater.
    Does anyone have some experience with a tool that can send xml-document to XI using http-post or HTML code for this?
    Many Thanks,
    Sami

    Hi Sami,
    Make sure you have activated the plain http adapter.
    1.Edit the HTML code below to change the Hostnames (Radio buttons)/Port numbers to suit your needs.
    2.On selection of radio button you will get the hostname and portnumber populated automatically.
    3.supply the values for sender business system, sender interface and sender namespace and QoS.
    4.Copy and paste the XML in the text area.(make sure you delete the detault tab spaces in the text area) or you can select the file from the file system.
    5.Click Send XML button
    <html>
    <head>
    <title>Send XML Data to XI System</title>
    <script language="javascript">
    <!--
    function SendData() {
      var mypath = document.myform.filename.value;
         var myescns = escape(document.myform.mynamespace.value);
         var mycall = 'http://'
         + document.myform.myhost.value  + ':'
         + document.myform.myport.value + '/sap/xi/adapter_plain?bs='
         + document.myform.mysystem.value + '&namespace='
         + myescns + '&interface='
         + document.myform.myinterface.value + '&qos='
         + document.myform.myqos.value;
         var xmlstream;
         if (document.myform.selectXML[0].checked == true) {
              xmlstream = new ActiveXObject("ADODB.Stream");
              xmlstream.Mode = 3;                                                                                      // 1=read  3=read/write
              xmlstream.Open();
              xmlstream.Type = 1;                                                                                      // 1=adTypeBinary  2=adTypeText
              xmlstream.LoadFromFile(mypath);
         else {
              xmlstream = document.myform.xmltext.value;
         var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
         xmlhttp.Open("POST",mycall,false);
         xmlhttp.setRequestHeader("Content-Length",xmlstream.Size);
         xmlhttp.setRequestHeader("Content-Type","text/xml");
         if (document.myform.selectXML[0].checked == true) {
           xmlhttp.send(xmlstream.Read(xmlstream.Size));
         else {
           xmlhttp.send(xmlstream);
         XICall.innerText = mycall;
         XIAnswer.innerHTML = xmlhttp.responseText;
    function getFile() {
      var mypath = document.myform.filename.value;
         var ForReading  = 1;
         objFSO          = new ActiveXObject("Scripting.FileSystemObject");
         objTextFile     = objFSO.OpenTextFile(mypath, ForReading);
         var filearray   = "";
         for(var n=0;!objTextFile.AtEndOfStream;n++) {
              sRead = objTextFile.ReadLine();
              filearray += sRead + "n";
         objTextFile.Close();
         document.myform.xmltext.value = filearray;
    function setDefaults(n) {
         switch(n) {
              default:
                   document.myform.filename.value = "";
                   document.myform.myhost.value = "";
                   document.myform.myport.value = "";
                   document.myform.mysystem.value="";
                   document.myform.mynamespace.value="";
                   document.myform.myinterface.value="";
                   document.myform.myqos.value="EO";
                   break;
    function setHost(n) {
         switch(n) {
              case 1:
                   document.myform.myhost.value = "yourhostname1";
                   document.myform.myport.value = "8080";
                   break;
              case 2:
                   document.myform.myhost.value = "yourhostname2";
                   document.myform.myport.value = "8000";
                   break;
              case 3:
                   document.myform.myhost.value = "yourhostname3";
                   document.myform.myport.value = "8000";
                   break;
              default:
                   document.myform.myhost.value = "";
                   document.myform.myport.value = "";
    function setNamespace(n) {
         switch(n) {
              case 1:
                   document.myform.mynamespace.value = "urn:sap-com:document:sap:rfc:functions";
                   break;
              case 2:
                   document.myform.mynamespace.value = "urn:sap-com:document:sap:idoc:messages";
                   break;
              default:
                   document.myform.mynamespace.value = "";
    //-->
    </script>
    </head>
    <body>
    <form name="myform">
    <p>XI adapter parameters: </p>
    <!--
    <input type="radio" name="selectDefaults" value="" onClick="setDefaults(1)">XR3 Test PO
    <input type="radio" name="selectDefaults" value="" onClick="setDefaults(2)">XR3 Test Vendor
    <input type="radio" name="selectDefaults" value="" onClick="setDefaults(9)" checked>None
    -->
    <p>
    <table border=0>
    <tr><td>hostname:</td><td>
    <input type="text" name="myhost" size=50 maxlength=100
    value=""><br/></td></tr>
    <tr><td></td>
    <td>
    <input type="radio" name="selectHost" value="" onClick="setHost(1)">XI1
    <input type="radio" name="selectHost" value="" onClick="setHost(2)">XI2
    <input type="radio" name="selectHost" value="" onClick="setHost(3)">XD3
    <input type="radio" name="selectHost" value="" onClick="setHost(9)" checked>Other
    </td></tr>
    <tr><td>port:</td><td>
    <input type="text" name="myport" size=50 maxlength=100
    value=""><br/></td></tr>
    <tr><td>sender business system:</td><td>
    <input type="text" name="mysystem" size=50 maxlength=100
    value=""><br/></td></tr>
    <tr><td>sender interface:</td><td>
    <input type="text" name="myinterface" size=50 maxlength=100
    value=""><br/></td></tr>
    <tr><td>sender namespace:</td><td>
    <input type="text" name="mynamespace" size=50 maxlength=100
    value=""></td>
    </tr>
    <tr><td></td>
    <td>
    <input type="radio" name="selectNamespace" value="" onClick="setNamespace(1)">RFC
    <input type="radio" name="selectNamespace" value="" onClick="setNamespace(2)">IDoc
    <input type="radio" name="selectNamespace" value="" onClick="setNamespace(3)" checked>Other
    </td></tr>
    <tr><td>quality of service (EO/BE):</td><td>
    <select name="myqos">
    <option value="BE" selected>Best Effort</option>
    <option value="EO" >Exactly Once</option>
    </select>
    <br/></td></tr></table>
    <p></p>
    <input type="button" value="Send XML File" onclick="return SendData()">
    <p>XML Text:
    <table>
         <tr>
              <td><input type="radio" name="selectXML" value="1">from File</td>
              <td><input type="radio" name="selectXML" value="2" checked>from Text</td>
         </tr>
         <tr valign="top">
              <td>
                   Path to XML file: (e.g. C:temptest.xml)
                   <br><input type="file" name="filename" size=30 maxlength=80 value="" onChange="return getFile()">
              </td>
              <td>
                   Text for XML:
                   <br><textarea name="xmltext" cols="50" rows="20" wrap="off">
                   </textarea>
              </td>
         </tr>
    </table>
    <p>XI call:</p>
    <div id=XICall></div>
    <p>Answer:</p>
    <div id=XIAnswer></div>
    </form>
    </body>
    </html>
    Regards,
    Sridhar
    Message was edited by: Sridhar Rajan Natarajan

  • Error while using  soap adapter in webservice to sap system scenario

    Hi everybody,
    i got the error while using saop adapter in scenario(sender webservice----->sap system)
    error is
    HTTP error:couldnot post file
    '/XISOAPAdapter/MessageServlet:Channel=:BS1:SPA.&amp;
    version+3.0&amp;sender.Service=BS1&amp;interface=http%3ASP%5OUTBOUND'on server 'XI03'(500)

    check with ur basis people

  • SOAP adapter - unauthorized problem

    Hi all,
    Our third party receive an unauthorized (401) message back when they send a soap request via http protocol to our XI server.
    In the soap request, the following location adapted.
    http://integration.test.com/XISOAPAdapter/MessageServlet?channel=P_Cop:BSrv_EDS:CC_Cop_SOAP_Sender_buf&version=3.0&Sender.Party=http://sap.com/xi/XI:XIParty:P_COP&Sender.Service=BSrv_EDS&Interface=http://test.com/interfacing/lp/eds/cop^MI_O_vatCOP_BUF
    Changing the location into did not work also
    http://XIusername:XIpassword@*integration.test.com/XISOAPAdapter/MessageServlet?channel=P_Cop:BSrv_EDS:CC_Cop_SOAP_Sender_buf&version=3.0&Sender.Party=http://sap.com/xi/XI:XIParty:P_COP&Sender.Service=BSrv_EDS&Interface=http://test.com/interfacing/lp/eds/cop^MI_O_vatCOP_BUF
    Using a the Oxygen web service testing tool works fine (after enter a valid XIusername and XIpassword).
    Using the SOAP UI web service testing tool does not work (after enter a valid XIusername and XIpassword).
    Are there any other options or ideas?
    Please help

    Hi E.J.C. Theuns !
            Maybe the problem is being caused because the way that the user and password is being sent to XI WebService.
            I have used to send user and password joined to the url in the format that you specified in your first message but, this worked in Java, not in PHP.
            When I used PHP to call a RFC function as a WebService, I do it using NuSOAP package, and using NuSOAP, the code was something like this:
    require_once('nusoap.php');
    $client=new soapclient('http://<server>:<port/sap/bc/soap/rfc');
    $client->setCredentials('<user>','<password>');
    $msg='<BAPI_MATERIAL_GETLIST xmlns="urn:sap-com:document:sap:rfc:functions">
       <MAXROWS>200</MAXROWS>
       <MATNRSELECTION>
        <item>
         <SIGN xsi:type="xsd:string">I</SIGN>
         <OPTION xsi:type="xsd:string">GE</OPTION>
         <MATNR_LOW xsi:type="xsd:string">000000000000000001</MATNR_LOW>
        </item>
       </MATNRSELECTION>
       <MATNRLIST></MATNRLIST>
       <MATERIALSHORTDESCSEL></MATERIALSHORTDESCSEL>
      </BAPI_MATERIAL_GETLIST>';
    $msg1 = $client->serializeEnvelope($msg);
    echo "Makes the call !";
    $client->send($msg1,"BAPI_MATERIAL_GETLIST");
    echo '<br><br><br><br><b>Request:</b><xmp>'.$client->request.'</xmp>';
    $material = $client->response["MATNRLIST"];
    $item = $material["item"];
    echo '<b>Test:</b> <xmp>'.$item["MATERIAL"].'</xmp>';
    echo '<b>Response:</b> <xmp>'.$client->response.'</xmp>';
    echo '<b>Debug log:</b> <pre>'.$client->debug_str.'</pre>';
    echo "End of execution";
            How you can see in this sample code, the user and password are sent using this code:
    $client->setCredentials('<user>','<password>');
            Where $client is a instance of the NuSOAP soapclient class.
            This code always work very well, I don´t know if your third part system is using NuSOAP too but, case not, tell the php programmer to check if the library that is being used doesn´t have some class/method like NuSOAP, to set credentials.
            Thank you for your attention, and I hope this info helps you !
            Best regards,
            Wilson

  • Soap adapter default encoding

    Hi there,
    we have a XI <-> webservice scenario, where the XML messages are sent in a string (the wsdl is wrapped, literal) with digital signing.
    As of now, we have a problem in the digital signing, since the webservice won't validate the signature. We made some tests and this is what I've concluded.
    From what I've observed, there are three ways of sending XML file content in a string (let me know if there are more). They are:
    1. putting the xml content between "<![CDATA[" and "]]>";
    2. replacing '<', '>' and '"' with "&lt;", "&gt;" and "&quot;";
    3. replacing '<' and '>' with "&#60;" and "&#62;".
    2 and 3 appear to be different encodings.
    We tried to send three messages to a test webservice, each with a different way of defining the string, using receiver soap adapter. This test webservice was located in a local machine and we ran a sniffer on it. The three incoming messages were logged by the sniffer, but the upseting news were that the three of them had the same encoding in the input string, which was the third one above ("&#60;" and "&#62;", which by the way is the default by UTF-8).
    This only occurs when using SOAP adapter. I tested File adapter and it sent the file exactly how delivered by the sender service (meaning, with the different encodes or with CDATA). We even thought about using module processor for replacing the characters in the message, but since any custom module processor comes before the main adapter module processor, it won't have any effect on the final message.
    Using XMLSpy, I sent some test messages to our digital signer (which is also a webservice) with the three ways and it returned a different output when using "&lt;" encoding in the input. Then, I sent this signed message to the webservice and it validated the signature!
    We are suspecting that the webserver (which is IBM's WebSphere) always converts the input string to "&lt;", and when they calculate the message hash code, it's different from what we sent (since we always sign a "&#60;" encoded message).
    My question is: is there any way of changing the default encode that the soap adapter module processor uses? Or at least of making it not changing the encode of the payload? If it were possible, we would send the message to the signer webservice with "&lt;" encoding and the problem would be solved.
    Thanks in advance,
    Henrique.

    Morten,
    actually, we've found out that &#60; = &lt; , in both UTF-8 and ISO-8859-1 encodings. It makes no difference if you use one or the other.
    The point which was troublesome for us were the special characters (like á,â,à,ã,é, etc) which have different encoding for UTF-8 and ISO-8859-1. Since we had identified that the service we were accessing wasn't able to identify these characters properly, we just removed them from the string fields and that worked out for us.
    Hope it helps you out.
    Regards,
    Henrique.

  • Sender SOAP Adapter: zipped Payload or zipped Attachement possible?

    Hi,
    I've a SOAP --> PI --> Proxy Scenario. As the payload of the message can become quite huge (around 10MB), I'd like to zip the message.
    From the documentation it's not clear for me if the Sender SOAP Adapter can be enhanced with the standard PayloadZipBean:
    "You cannot add your own modules to this adapter" --> so is it possible to use modules provided by SAP?
    If it's not possible: is there another way to send the message zipped via SOAP, e.g. as a additional attachement to the SOAP message, and to unzip the attachement / use the content of it as message payload for mapping?
    Please note: usage of SOAP is a must for that scenario.
    Best regards
    Holger

    > File size is a question due to limited network speed between sender and PI. If I can reduce the data package to be transferred, it'd be a big help. Therefore I'd like to zip the message.
    In this case it would be sufficient to use Content-Encoding gzip.
    This is part of the HTTP protocol and will be unzipped automatically by the HTTP framework, so you need not do anything special in SOAP adapter.
    See http://tools.ietf.org/html/rfc2616#section-14.11
    Check if your SOAP client is able to use that.
    Regards
    Stefan
    Edited by: Stefan Grube on Mar 31, 2009 2:11 PM

  • Receiver SOAP adapter SSL error - client certificate required?

    Hi all,
    Problem configuring SSL in XI 3.0 NW04 SP17....
    I have followed the config steps from Rahul's excellent weblog at <a href="/people/rahul.nawale2/blog/2006/05/31/how-to-use-client-authentication-with-soap-adapter">How to use Client Authentication with SOAP Adapter</a> (my Basis team have done the Visual Admin steps) and am going through his example as it closely matches my requirement. So, I have a test receiver SOAP adapter sending messages to a web service URL defined for a sender SOAP adapter. My test scenario is:
    <b>Sender File -> <u><i>Receiver SOAP -> Sender SOAP</i></u> -> IDoc Receiver -> IDocs in R/3</b>
    The problem components are in italic and underlined above. My Receiver SOAP Adapter has the web service URL, Certificate Keystore Entry and View entered. If, in the Sender SOAP Adapter, I have an HTTP Security Level of HTTPS Without Client Authentication, the interface works fine (note that Rahul suggests you untick the User Authentication in the Receiver but with this Security Level, it seems to work with or without it).
    The problem is when I set HTTPS <b>With</b> Client Authentication in the Sender. I then get the following error in the message monitor:
    SOAP: response message contains an error XIServer/UNKNOWN/ModuleUnknownException - com.sap.aii.af.mp.module.ModuleException: java.security.AccessControlException: <b>client certificate required caused by: java.security.AccessControlException</b>: client certificate required at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:1111) at com.sap.aii.af.mp.module.ModuleLocalLocalObjectImpl3.process(ModuleLocalLocalObjectImpl3.java:103) at com.sap.aii.af.mp.ejb.ModuleProcessorBean.process(ModuleProcessorBean.java:250) at com.sap.aii.af.mp.processor.ModuleProcessorLocalLocalObjectImpl0.process(ModuleProcessorLocalLocalObjectImpl0.java:103) at com.sap.aii.af.mp.soap.web.MessageServlet.callModuleProcessor(MessageServlet.java:166) at com.sap.aii.af.mp.soap.web.MessageServlet.doPost(MessageServlet.java:421) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at javax.servlet.http.HttpServlet.service(HttpServlet.java(Compiled Code)) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java(Compiled Code)) at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java(Compiled Code)) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java(Inlined Compiled Code)) at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java(Compiled Code)) at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java(Compiled Code)) at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java(Compiled Code)) at com.sap.engine.services.httpserver.server.Client.handle(Client.java(Inlined Compiled Code)) at com.sap.engine.services.httpserver.server.Processor.request(Processor.java(Compiled Code)) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java(Compiled Code)) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java(Compiled Code)) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java(Compiled Code)) at java.security.AccessController.doPrivileged1(Native Method) at java.security.AccessController.doPrivileged(AccessController.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java(Compiled Code)) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java(Compiled Code)) Caused by: java.security.AccessControlException: client certificate required at com.sap.aii.af.mp.soap.ejb.XISOAPAdapterBean.process(XISOAPAdapterBean.java:843) ... 22 more
    Has anyone got any idea what this could be caused by?
    Many thanks,
    Stuart Richards

    Have you configured the https port with that keystore entry?
    Check out these links:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/881e3e3986f701e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/5c/15f73dd0408e5be10000000a114084/frameset.htm
    Regards,
    Henrique.

  • SOAP adapter and WS with rpc/encoded

    Hi All,
    Does anyone know if and how the SAP XI 3.0 SOAP Adapter supports WebServices which expects XML messages in rpc/encoded.
    Cheers,
    FRank

    Hi Frank,
    I have the same issue and I got a reply from OSS:
      This problem is caused by the diversification of the WSDL binding
    styles.
      A Web service is described by a WSDL document. A WSDL binding
    describes how the service is bound to a messaging protocol, particularly
    the SOAP messaging protocol. A WSDL SOAP binding can be either an RPC
    style binding or a document style binding. A SOAP binding can also have
    an encoded use or a literal use. This gives us four style/use models:
    - RPC/encoded
    - RPC/literal
    - document/encoded(It will probably disappear from future versions of
    WSDL.)
    - document/literal
      RPC styled web services have serious interoperability problems. This
    is the reason that the rpc style is not in the basic profile
    specification of the web interoperability and also it has been
    deprecated in the current soap specification. For these reason, the
    integration directory does not currently support the RPC style! I would
    suggest you to use other document style web service provider if possible
    . It's the best way to solve this problem. But if you persist in using
    this RPC web service provider, we still have a workaround solution:
    you need to convert your RPC wsdl to a document styled wsdl and import
    it to  the directory and if necessary, you need to add some mapping to
    solve some RPC interoperability problems.
      In your case,
    1. The WSDL file you used is RPC style.
    2. The XI SOAP adapter doesn't support the RPC style. It only sends the
    document/literal SOAP message which can't be understand by your web
    service provider.
      One of the significant differences between the SOAP message of RPC
    style and that of the document style: the operation name is contained in
    the RPC style SOAP message but not in the document's.
      However, you can't solve this problem by simply specify a method
    name. What you should do is convert your RPC wsdl to a document styled
    wsdl. RPC turns out to be a subset of document/literal. This
    means for any given RPC WSDL, you can create a completely
    equivalent document/literal WSDL that would describe the same wire
    messages. Here are the steps for doing this (mostly schema element
    declarations).
    Solution:
    For each RPC operation:
    1. For each part in the input and output messages of that operation,
    declare a type with the contents described in step 2.
    2. Declare an element with the name of the part, the type referenced by
    type=". The element form must be unqualified.
    3. Declare a global element with the operation name and the namespace
    from soap:body/@namespace in the binding. Make the type of this element
    the one defined in step 1 for the input message.
    4. Declare a global element with the operation name and the word
    Response appended to it and the namespace from soap:body/@namespace in
    the binding. Make the type of this element the one defined in step 1 for
    the output message.
    5. Change the input message to contain one part and reference the
    element you declared in step 3.
    6. Change the output message to contain one part and reference the
    element you declared in step 4.
    7. Change the style to document in the binding.
      After that, import the new WSDL file to the integration directory. You
    will find the "method name" appears in the document style SOAP message.
    But actually it's the name of the input element which is the same as
    the name of the operation. It's just a little trick.
    Cheers Stefan

  • Testing a "Receiver SOAP Adapter" - Calling a remote webservice from PI

    Hi ,
    I am trying to call a remote webservice from PI 7.0.
    The WSDL file is successfully imported to PI to create the required message types.
    The "receiver SOAP adapter" is configured as the communication channel.
    I would like to know the ways of testing  the remote webservice from PI 7.0.
    Thank you,
    Panda

    Hello there!
    I think this link should help you
    https://help.sap.com/saphelp_nwpi71/helpdata/en/46/793034608c0ad3e10000000a11466f/frameset.htm
    Thanks and regards,
    Caio Cagnani

  • Difference between SOAP adapter & WebService Adapter

    Hi
    I am trying to consume an external REST based webservice. So, do i have to use SOAP adapter or a web service adapter??
    What is the difference between the two?? Pls explain.
    I am using XI7.10
    Regards
    Chandra Sekhar

    Hi Chandra Sekhar,
    As explained above, even I havent heard of adapter called WebService Adapter.
    To add......if u wnat to check out the details of SOAP adapter.......
    SOAP Adapter: SOAP Adapter converts the SOAP messages into SAP XI message format that is SOAP with header attachments. This in an area many needs to really concentrate as it is heart of the ESA literature going forward.
    Refer Testing XI exposed Web-Services:
    /people/siva.maranani/blog/2005/03/01/testing-xi-exposed-web-services
    and Invoking XI Webservices:
    /people/siva.maranani/blog/2005/09/03/invoke-webservices-using-sapxi
    RFC to WebService - A Complete Walkthrough - Part 1
    /people/shabarish.vijayakumar/blog/2006/03/23/rfc--xi--webservice--a-complete-walkthrough-part-1
    and RFC -> XI -> WebService - A Complete Walkthrough -Part 2.
    /people/shabarish.vijayakumar/blog/2006/03/28/rfc--xi--webservice--a-complete-walkthrough-part-2
    You can down load a sample SOAP Client tool from SAP SOAP Client Tool.
    https://www.sdn.sap.com/irj/sdn/downloads
    Please refer How to Set Up a Web Service-Related Scenario with SAP XI for delving more deep.
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/befdeb90-0201-0010-059b-f222711d10c0
    Hope this was helpful.
    kanan

  • Error while Testing SOAP Adapter In XI

    <b>Hi Frndz
    I am trying to test my SOAP adapter which i have exposed as a webservice. I testing this from the WSNavigator which throws the following error:</b>
    HTTP/1.1 500 Internal Server Error
    Connection: close
    Set-Cookie: <value is hidden>
    Set-Cookie: <value is hidden>
    Server: SAP J2EE Engine/6.40
    Content-Type: text/xml; charset=utf-8
    Date: Thu, 15 Dec 2005 12:24:19 GMT
    <?xml version='1.0'?>
    <!-- see the documentation -->
    <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>DeliveryException</code>
              <text><![CDATA[
    com.sap.aii.af.ra.ms.api.DeliveryException: Received HTTP response code 404 : Not Found
         at com.sap.aii.af.ra.ms.impl.core.queue.CallConsumer.onMessage(CallConsumer.java:144)
         at com.sap.aii.af.ra.ms.impl.core.queue.Queue.run(Queue.java:512)
         at com.sap.engine.frame.core.thread.Task.run(Task.java:64)
         at com.sap.engine.core.thread.impl5.SingleThread.execute(SingleThread.java:74)
         at com.sap.engine.core.thread.impl5.SingleThread.run(SingleThread.java:141)
              ]]></text>
            </s:SystemError>
          </detail>
        </SOAP:Fault>
      </SOAP:Body>
    </SOAP:Envelope>
    <b>I have used this url for the Webservice:</b>
    <u>http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:CVXSABSR_TEST_SENDER:CVXSACC_TEST_SENDER</u>
    <b>I am unable to figure out where the problem is.
    Any ideas to solve this?
    Thanks in Advance
    DhanyaR Nair</b>

    <b>Hi Andrews and Ravi
    Thanks for the quick response.
    <u>Andrews</u> the Message Servlet is in OK status, as it reponded from checking the url given by you.
    What should i try next?
    <u>Ravi</u> i checked the url for checking the Comm Channel. There are two IDs associated with the Channel
    1>Object ID
    2> ObjectVersion ID
    with the ObjectVersionID , we are getting the following error and with ObjectID we got the proper response  </b>
    <b>with ObjectVersion ID</b>
    <u>http://<host>:<port>//XISOAPAdapter/HelperServlet?action=GetChannelInfo&channelID=<Object version ID></u>
    <b>response:</b>
    <?xml version="1.0" ?>
    - <SOAP:Fault xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
      <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.SOAP_EXCEPTION</code>
    - <text>
    - <![CDATA[
    com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Channel object with Id Channel:a9f7f390671e11daa2300012799e22c2 not available in CPA Cache.
         at com.sap.aii.af.service.cpa.LookupManager.getCPAObject(LookupManager.java:202)
         at com.sap.aii.af.mp.soap.web.HelperServlet.processGetChannelInfo(HelperServlet.java:455)
         at com.sap.aii.af.mp.soap.web.HelperServlet.doGet(HelperServlet.java:131)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:390)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:264)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:347)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:325)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:887)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:241)
         at com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
         at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:148)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:95)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:160)
                ]]>
      </text>
      </s:SystemError>
      </detail>
      </SOAP:Fault>
    <b>with the object id</b>
    <u>http://<host>:<port>/XISOAPAdapter/HelperServlet?action=GetChannelInfo&channelID=<Object  ID></u>
    <b>Response</b>
    <?xml version="1.0" ?>
    - <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
      <channelID>ea30ed2ccc243fe49b7c2c5646ed3b2d</channelID>
      <name>CVXSACC_TEST_SENDER</name>
      <type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
      <direction>INBOUND</direction>
      <party />
      <service>CVXSABSR_TEST_SENDER</service>
      </s:ChannelInfo>
    <b>with the url</b>
    <u>http://<host>:<port>/XISOAPAdapter/HelperServlet?action=FindChannel&channel=:CVXSABSR_TEST_SENDER:CVXSACC_TEST_SENDER</u>
    <b>Response</b>
    <?xml version="1.0" ?>
    - <s:ChannelInfo xmlns:s="http://sap.com/xi/WebService/xi30">
      <channelID>ea30ed2ccc243fe49b7c2c5646ed3b2d</channelID>
      <name>CVXSACC_TEST_SENDER</name>
      <type xmlns:st="http://sap.com/xi/XI/System">st:SOAP</type>
      <direction>INBOUND</direction>
      <party />
      <service>CVXSABSR_TEST_SENDER</service>
      </s:ChannelInfo>
    <b>How should i proceed ? Any idea frndz
    Thanks in Advance
    DhanyaR Nair</b>

  • SOAP Adapter:  Content Type Issue in WebServices via HTTP

    Hi,
    I have configured a Receiver SOAP adapter. When i had to test the message i had an HTTP 415 error.
    i found that the sender SOAP adpater that received this message is not capable of handling Content-Type: Application/XML i.e. which is being transmitted by the Receiver SOAP Adapter.
    Please let me know how to configure in the Receiver SOAP adapter so that the HTTP Content-Type would be TEXT/XML instead of Application/XML .
    Thanks in Advance,
    Venkatesh

    Hi Michal,
    I have created a Web service for a RFC function Module. The webservice is available in SOAMANAGER.
    It got activated also .  But whenever I tried to test, I am getting the below error,
    "Message Envelope not found. Probably Empty SOAP message"
            Request:
            POST /sap/bc/srt/rfc/sap/yotci_i015_linkp8sap/100/yotci_i015_linkp8sap/yotci_i015_linkp8sap HTTP/1.1
    Host: sapkrftewd01.krft.net:8030
    Content-Type: text/xml; charset=UTF-8
    Connection: close
    Authorization: <value is hidden>
    Content-Length: 657
    SOAPAction: ""
    <?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Header><sapsess:Session xmlns:sapsess="http://www.sap.com/webas/630/soap/features/session/"><enableSession>true</enableSession></sapsess:Session></SOAP-ENV:Header><SOAP-ENV:Body><ns1:YotciI015Linkp8sap xmlns:ns1='urn:sap-com:document:sap:soap:functions:mc-style'><IvParam1>POD</IvParam1><IvParam2>00006095</IvParam2><IvParam3>01/14/2009</IvParam3><IvParam4>PDF</IvParam4></ns1:YotciI015Linkp8sap></SOAP-ENV:Body></SOAP-ENV:Envelope>
             Response:
            HTTP/1.1 500 Message E 1S 406 cannot be processed in plugin mode HTTP
    content-type: text/xml; charset=utf-8
    content-length: 0
    accept: text/xml
    sap-srt_id: 20090224/141936/v1.00_final_6.40/49A4677A2D0736EDE10000000A3597E9
    server: SAP Web Application Server (1.0;700)
    Is this because of "do not use SOAP envelope" check?
    I didn't check this check box.
    If that is the error could you please tell me how to see the "do not use SOAP envelope"?
    Where can I find SOAP channel?
    I am very new to SOAP concept. 
    One JAVA application is going to invoke this Webservice from SAP.
    Please help me.
    Thanks,
    Bala.

  • SOAP Adapter = Webservice???

    Hi,
    I have created a service using the SOAP Adapter. My question is now: Is this service a webservice. If yes, how would I be able to obtain the related WSDL?
    The outbound interface is accessed by the following URL:
    http://myserver/XISOAPAdapter/MessageServlet?channel=:MY_BUSINESSSYSTEM:MY_COMCHANNEL
    simply adding the argument &wsdl to the url doesn't pass back any WSDL.
    Kind regards,
    Heiko

    hi,
    >>I have created a service using the SOAP Adapter. My >>question is now: Is this service a webservice
    yes having a soap adapter for a particular scenario makes that scenaro accessable by SOAP, ie webservice.
    >>http://myserver/XISOAPAdapter/MessageServlet?>>channel=:MY_BUSINESSSYSTEM:MY_COMCHANNEL
    >>simply adding the argument &wsdl to the url doesn't >>pass back any WSDL.
    i see where u r coming from , unlike ohter development platforms, where if you know the endpoint , adding &wsdl gives you the wsdl. But in XI we are merely exposing the interface to be accessable by a soap sender. Hence you have to generate the wsdl manually from Configuration Drectory. Tools->webservce
    cheers,
    Naveen

  • Webservice for proxy to SOAP adapter interface

    Hi Experts,
    we have scenario Proxy to SOAP for this inteface is it possible to provide the webservice from PI side.
    if yes please let me know the steps.
    i know the process how to provide the webservice when the SOAP adapter at sender side.
    1) through sender agreement---->Display WSDL.
    2) Tools---->Disply WSDL
    is it poassible to provide the webservice when SOAP adapter at receiver end by using 2 nd process?

    we have scenario Proxy to SOAP for this inteface is it possible to provide the webservice from PI side.
    if yes please let me know the steps.
    i know the process how to provide the webservice when the SOAP adapter at sender side.
    1) through sender agreement---->Display WSDL.
    2) Tools---->Disply WSDL -
    > yes that is possiable for only sender side as webservice because sender always consumer
    is it poassible to provide the webservice when SOAP adapter at receiver end by using 2 nd process?
    No that is not possiable to import WSDl File In receiver agreement because receiver always Provider .
    in ESR:
    wsdl file ll be imported in External defination as external message.
    in ID:
    in receiver Comm.channel -> call the soap URL and Soap Action(not manadatary)

Maybe you are looking for

  • Unable to boot from CD - Windows 8.1 - HP Pavilion 15-n209TX Notebook PC

    Hi I burned two ISO files(Memtest86+ & latest DBAN 2.2.8 CD bootable ISO software ) onto two different blank CD-Rs on two different ocassions by using the in-built Windows burner in my system, also used Cyberlink ISO file burner/Mount as Virtual driv

  • Withholding tax for Kentucky locals

    Hi, Requirement: Need to calculate withholding tax for Kentucky locals. I have done the config accordingly, /301 and /601 displays the amount but /401 and /701 are not appearing/calculating for Kentucky locals. Could the reason be because of a suppor

  • Sync messages in table BC_MSG

    Hello experts, I am trying to read sync messages by querying table BC_MSG using message id. The query I am running returns empty result. When I use the same operation in RWB, the message is found. Does anybody have any idea why this is happening? Reg

  • Reinstall Photoshop Elements without CD

    My computer came new with photoshop elements, i need to wipe the computer and i am not sure how to go about reinstalling it after as i did not get a disc. Thanks

  • ACS user creation from external interface

    Hello We have a bundle de Cisco WLC 5508 which authenticate users that try to connect to Wifi networks. Those users are stored in a Cisco Secure ACS 4.2 internal database. We want to have a simple  external web interface so that non-technical people