XSLT To Remove Soap Envelope...

Hi,
I'm trying to use XSLT mapping to remove SOAP envelope from a soap response message. Facing some issues.
This is my response message(with soap envelope):
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Body>
      <loginResponse xmlns="urn:enterprise.soap.sforce.com">
         <result>
            <passwordExpired>false</passwordExpired>  <serverUrl>https://blitzna1.eng.salesforce.com/services/Soap/c/5.0</serverUrl> <sessionId>aaaaaaaaaaaaaaa</sessionId>
            <userId>bbbbbbbbbb</userId>
         </result>
      </loginResponse>
   </soapenv:Body>
</soapenv:Envelope>
This is my xsl program:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="soapenv:Body">
     <xsl:copy-of select="soapenv:Body"/>
</xsl:template>
</xsl:stylesheet>
Where am I going wrong here?
Regards,
Harsh

This is wrong:
<xsl:template match="soapenv:Body">
<xsl:copy-of select="soapenv:Body"/>
When you have template match="node", you can only work with sub nodes. So your XSLT searches for sub nodes of <i>Body</i> with the name <i>Body</i>.
You could use select=".", but you want to remove the SOAP envelope, so you have to remove the tag Body as well:
<xsl:template match="soapenv:Body">
<xsl:copy-of select="child::node()"/>
Regards
Stefan

Similar Messages

  • Remove SOAP Envelop using XSLT  mapping.

    Hi,
    I need a code to remove SOAP Envelop using XSLT mapping.
    Source:
    <?xml version="1.0" encoding="UTF-8" ?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:enterprise.soap.sforce.com">
    <soapenv:Body>
    <getServerTimestampResponse>
    <result>
      <timestamp>2008-06-19T14:22:25.004Z</timestamp>
      </result>
      </getServerTimestampResponse>
      </soapenv:Body>
      </soapenv:Envelope>
    target:
    <?xml version="1.0" encoding="UTF-8" ?>
    <a>
          <b>
             <c>2008-06-19T14:22:25.004Z<c>
           </b>
    </a>
    Please help me in this
    Thanks&Regards,
    Yuga

    hi,
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope/"
                                  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
       <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" />
       <xsl:template match="/">
          <ns0:c>       
                   <xsl:copy-of select="SOAP-ENV:Envelope/SOAP-ENV:Body"/ />
          </ns0:c>
       </xsl:template>
    </xsl:stylesheet>
    This will get your whole body...
    Your root node should belong to some namesapce...i.e. getServerTimestampResponse .
    Thanks,
    Vijaya.

  • XSLT mapping with SOAP Envelope

    Hi
    I'm trying map SOAP response (with Envelope) to pick two values into the target. Here's the data:
    Source (with data):
    <?xml version="1.0"?>
    <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">
         <soap:Body>
              <EnumerateResponse xmlns="http://www.approva.net/BizRights/Services">
                   <EnumerateResult>
                        <TaskID>-1</TaskID>
                        <Result>FinishedSuccessfully</Result>
                        <StatusInfo/>
                   </EnumerateResult>
                   <pageObject>
                        <startIndex>0</startIndex>
                        <pageSize>10</pageSize>
                        <totalRows>1</totalRows>
                        <moreRecords>false</moreRecords>
                        <rowsReturned>1</rowsReturned>
                   </pageObject>
                   <xmlObjects>(large string of valid data in here)</xmlObjects>
              </EnumerateResponse>
         </soap:Body>
    </soap:Envelope>
    Target:
    Only need Result and xmlObjects into target.
    Mapping:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
         <xsl:template match="/">
              <poll_status_resp_r3>
                   <Result>
                        <xsl:value-of select="EnumerateResponse/Result"/>
                   </Result>
                   <xmlObjects>
                        <xsl:value-of select="EnumerateResponse/xmlObjects"/>
                   </xmlObjects>
              </poll_status_resp_r3>
         </xsl:template>
    </xsl:stylesheet>
    The values are not getting picked-up into the target.
    What am I missing here?
    Any help is appreciated.

    Hi,
    Save the following XSL file as RSpace.xsl
    <?xml version="1.0" encoding="utf-8"?>
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
      <xsl:output method="xml" indent="no"/>
      <xsl:template match="/|comment()|processing-instruction()">
        <xsl:copy>
          <xsl:apply-templates/>
        </xsl:copy>
      </xsl:template>
      <xsl:template match="*">
        <xsl:element name="{local-name()}">
          <xsl:apply-templates select="@*|node()"/>
        </xsl:element>
      </xsl:template>
      <xsl:template match="@*">
        <xsl:attribute name="{local-name()}">
          <xsl:value-of select="."/>
        </xsl:attribute>
      </xsl:template>
    </xsl:stylesheet>
    Zip it and import it under Imported Archive.
    In the interface mapping click "+" to add one more mapping.
    Use this XSL as first mapping and your XSL mapping as the second mapping.
    In your XSLT mapping you can use the XPath as
    "Envelope/Body/EnumerateResponse/Result".
    I mean remove the namespace and use the XPATH.
    Thanks,
    Prakash

  • OSB: how to remove soap envelope from the $body

    Hi,
    In Assign activity when i assign: xquF1:url-decode(fn-bea:serialize($body),"UTF-8") = variable1,i am getting:
    $variable1 =
    <soap-env:Body      xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
         <MESSAGE>
    <aa>12</aa>
    <bb>34</bb>
    </MESSAGE>
    </soap-env:Body>
    How should i remove 'soap-env:Body' from the above xml. I need only:
    $variable1 =
         <MESSAGE>
    <aa>12</aa>
    <bb>34</bb>
    </MESSAGE>
    Kindly advise how to acheive the same.
    Thanks in advance.
    Edited by: user9223904 on Apr 17, 2013 2:25 AM
    Edited by: user9223904 on Apr 17, 2013 2:26 AM

    just use $body/* and you will have what u wanted.

  • JAVA/ XSLT Mapping to Create a SOAP Envelope

    Hello,
    I have a File to SOAP scenario and it requires the SOAP message with a custom SOAP envelope. I have searched SDN and could only find that SOAP envelope can be created using a JAVA or XSLT mapping. However, I could not find any blog/ article which will help me understand, with an example, how this is actually coded (creating of a custom SOAP envelope).
    Can anyone please point me to a valid blog/ article/ wiki which describes the procedure?
    Thanks,
    Pankaj.
    P.S. Please no spamming of post with links on SOAP Envelope; I have already searched on SDN

    Hello,
    Here is a wiki using PI 7.1
    https://wiki.sdn.sap.com/wiki/display/XI/SampleJAVAMappingcodeusingPI7.1+API
    If you want to create a SOAP Envelope, comment out the codes
      private static final DynamicConfigurationKey KEY_FILENAME =
             DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
    String inParam = arg0.getInputParameters().getString("PARAM_IN1");
         getTrace().addInfo("Input Parameter: " +inParam);
         int offset = inData.indexOf(inParam);
         //7. Reader Message ID from Message Header
         InputHeader messageHeader = arg0.getInputHeader();
         String messageId = messageHeader.getMessageId();
         //8. A DynamicConfiguration is a map containing adapter specific message attributes.
         // It associates DynamicConfigurationKeys with string values. The DynamicConfiguration object is obtained using
         // method getDynamicConfiguration()of class com.sap.aii.mapping.api.TransformationInput;
         DynamicConfiguration conf = arg0.getDynamicConfiguration();
         conf.put(KEY_FILENAME, "This Test file is set by JAVA Mapping");
         String outData = "";if(offset > 0){
         int offset1 = inData.indexOf(">", offset);
         String StartString =inData.substring(0,offset1);
         String DocumentNameSpace = " xmlns=\"urn:iso:std:iso:20022:tech:xsd:pain.002.001.02\"";
         String RemainingString = inData.substring(offset1);
    lastly, instead of using
    outData = StartString + DocumentNameSpace + RemainingString;
    replace it with something like this
    String outData = "";
    outData = "<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:tem=\"http://yournamespace/\"><soap:Header/><soap:Body>"+inData.substring(inData.indexOf("?>")+2)+"</soap:Body></soap:Envelope>";
    Hope this helps,
    Mark

  • Read SOAP envelope into ABAP using XSLT?

    Hello,
    I have another problem here and this is really driving me nuts - I just don't get it to work.
    As a reply to a web-service I call I get the following xml file. All I need is an xslt that gets me errorCode and errorDescription into an ABAP structure...
    file:
    <?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:xsd="http://www.w3.org/2001/XMLSchema">
      <SOAP-ENV:Body>
    <mit:rgo xmlns:mit="http://myurl.com"><mit:TECHNICALHEADER><mit:errorCode>A1014</mit:errorCode><mit:errorDescription>Unable to perform operation</mit:errorDescription><mit:password/><mit:user/><mit:applicationKey/></mit:TECHNICALHEADER><mit:file_creation_date>2005-09-06</mit:file_creation_date><mit:file_creation_time>15:06:33.0</mit:file_creation_time><mit:registration><mit:order_nr>DE999TEST</mit:order_nr><mit:vin>XXXXXXXXXXXXXXX04</mit:vin></mit:registration></mit:rgo>  </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    my corresponding XSLT is:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:mit=
    "http://myurl.com" xmlns:asx="http://www.sap.com/abapxml" version="1.0">
      <xsl:strip-space elements="*"/>
      <xsl:template match="/">
        <asx:abap>
          <asx:values>
            <SOAP-ENV:Envelope>
              <SOAP-ENV:Body>
                <mit:rgo>
                  <mit:TECHNICALHEADER>
                    <ANSWER>
                      <mit:errorCode>
                        <xsl:value-of select="ERRORCODE"/>
                      </mit:errorCode>
                      <mit:errorDescription>
                        <xsl:value-of select="ERRORCODEDESCRIPTION"/>
                      </mit:errorDescription>
                    </ANSWER>
                  </mit:TECHNICALHEADER>
                </mit:rgo>
              </SOAP-ENV:Body>
            </SOAP-ENV:Envelope>
          </asx:values>
        </asx:abap>
      </xsl:template>
    </xsl:transform>
    What am I doing wrong or what do I need to do? I'm lost!
    Thank you for your help!
    Johannes.

    Thank you Durairaj, as a matter of fact my program is based on your post (one that you pointed me to). For whatever reason I'm not having luck figuring it out (may be just a bit of work pressure) could you please hlep me a bit more by pointing me to where in my program code/xslt I'm going wrong? I somehow feel that it could be my table structure or xslt.
    I would really appreciate it!
    Thanks again,
    erfan.

  • 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,
    Subhendu

    Hi 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

  • 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.

  • How to remove SOAP tag from request going from OSB flow

    Hi,
    I need to send message to external party...I am using OSB for that. ...But the external party said they dont want any soap tag in the message as they need only required information .
    *<?xml version=”1.0” encoding=”UTF-8” ?>
    <soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/envelope /”>
    <soapenv:Header/>
    <soap-env:Body xmlns:soap-env=”http://schemas.xmlsoap.org/soap/envelope /”>
    <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO EXTERNAL</TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
    </TransactionAcknowledgement>
    </soap-env>
    </soap-Envelope>*
    but they need only following message.
    * <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO EXTERNAL</TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
    </TransactionAcknowledgement>*
    Following are the log message printing in my log.
    Following message we have to send
    <TransactionAcknowledgement><TransactionId>HELLO EXTERNAL</TransactionId><UserId>MC</UserId><SendingPartyType>SE</SendingPartyType></TransactionAcknowledgement>>
    Then we are applying inlinedXML() on above message and getting following message
    After function fn-bea:inlinedXML
    EMCMSSL Body ::::::
    <Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO EXTERNAL</TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
    </TransactionAcknowledgement>
    </Body>
    Finally we are printing the outbound variable
    Outbound variable:
    <con:endpoint name="BusinessService$EMCNotification$BusinessService$external$PushDataBS" xmlns:con="http://www.bea.com/wli/sb/context">
    <con:service>
    <con:operation>advisory123</con:operation>
    </con:service>
    <con:transport>
    <con:uri>https://XXXX.sg:50001/XISOAPAdapter/MessageServlet</con:uri>
    <con:mode>request-response</con:mode>
    <con:qualityOfService>exactly-once</con:qualityOfService>
    <con:request xsi:type="http:HttpRequestMetaData" xmlns:http="http://www.bea.com/wli/sb/transports/http" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tran:headers xsi:type="http:HttpRequestHeaders" xmlns:tran="http://www.bea.com/wli/sb/transports">
    <tran:user-header name="JMSType" value="Transaction Acknowledgement"/>
    <http:Content-Type>text/xml</http:Content-Type>
    <http:SOAPAction>""</http:SOAPAction>
    </tran:headers>
    </con:request>
    </con:transport>
    <con:security>
    <con:doOutboundWss>false</con:doOutboundWss>
    </con:security>
    </con:endpoint>>
    But I am not getting how the client is receiving soap header.
    please suggest for the same.

    Hi All.
    For removing the namespace from header I found following function but not sure how tom implement it for my requirement.
    Pleae help if possible.
    I need a XQuery function to remove name space from my xml message.
    my message is
    <Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO MSSL</TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
    </TransactionAcknowledgement>
    </Body>
    I need
    <Body xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <TransactionAcknowledgement xmlns="">
    <TransactionId>HELLO MSSL</TransactionId>
    <UserId>MC</UserId>
    <SendingPartyType>SE</SendingPartyType>
    </TransactionAcknowledgement>
    </Body>
    Function I found is
    declare namespace xf = "http://tempuri.org/vijfhuizen/com/myMessage/";
    declare function xf:strip-namespace($e as element())
    as element()
    element { xs:QName(local-name($e)) }
    for $child in $e/(@*,node())
    return
    if ($child instance of element())
    then xf:strip-namespace($child)
    else $child
    declare variable $e as element() external;
    xf:strip-namespace($e)
    I have created the function but not suire how to execute it.

  • SOAP Envelope - HTTP_EXCEPTION - HTTP 500 Internal Server Error

    Pessoal, o cliente em que estou utiliza uma solução para NFe que não é o GRC.
    Para tentar solucionar o problema do SOAP 1.2 e do message header, estou tentando criar o SOAP Envelope utilizando um XSLT, e no Communication Channel eu estou flegando Do not use soap envelope e colocando os modules para os charset, assim como na nota da SAP.
    O que está ocorrendo é que estou tendo o seguinte erro:
    com.sap.aii.af.ra.ms.api.DeliveryException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    Conversei com um rapaz na SEFAZ e ele diz que não está chegando nada pra ele.
    O SOAP Envelope que estou mandando é:
       está dentro de tags CDATA.
    Alguém saberia o que está ocorrendo?
    Muito obrigao,
    Leandro Rocha

    Olá Henrique, muito obrigado pela rápida resposta.
    O erro que dá no audit log é:
    SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error
    Delivery of the message to the application using connection SOAP_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: SOAP: response message contains an error XIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error. Setting message to status failed.
    A mensagem que aparece no adapter é a padrão do SOAP Document:
    - <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    - <SOAP:Header xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:wsse="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
    - <SAP:Main versionMajor="3" versionMinor="0" SOAP:mustUnderstand="1" xmlns:wsu="http://www.docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="wsuid-main-92ABE13F5C59AB7FE10000000A1551F7">
      <SAP:MessageClass>ApplicationMessage</SAP:MessageClass>
      <SAP:ProcessingMode>synchronous</SAP:ProcessingMode>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:TimeSent>2010-11-04T13:36:35Z</SAP:TimeSent>
    - <SAP:Sender>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>NFe_recepcao</SAP:Service>
      </SAP:Sender>
    - <SAP:Receiver>
      <SAP:Party agency="" scheme="" />
      <SAP:Service>SEFAZ_RS</SAP:Service>
      </SAP:Receiver>
      <SAP:Interface namespace="http://www.gerdau.com.br/nfe">NFe_recepcao_inbound_sync</SAP:Interface>
      </SAP:Main>
    - <SAP:ReliableMessaging SOAP:mustUnderstand="1">
      <SAP:QualityOfService>BestEffort</SAP:QualityOfService>
      </SAP:ReliableMessaging>
    - <SAP:Diagnostic SOAP:mustUnderstand="1">
      <SAP:TraceLevel>Information</SAP:TraceLevel>
      <SAP:Logging>Off</SAP:Logging>
      </SAP:Diagnostic>
    - <SAP:HopList SOAP:mustUnderstand="1">
    - <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
      <SAP:Engine type="PE" />
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">PE</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:Info />
      </SAP:Hop>
    - <SAP:Hop timeStamp="2010-11-04T13:36:39Z" wasRead="false">
      <SAP:Engine type="IS">is.00.ebsgerd26</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XI</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      <SAP:Info>3.0</SAP:Info>
      </SAP:Hop>
    - <SAP:Hop timeStamp="2010-11-04T13:36:41Z" wasRead="false">
      <SAP:Engine type="AE">af.p7d.ebsgerd26</SAP:Engine>
      <SAP:Adapter namespace="http://sap.com/xi/XI/System">XIRA</SAP:Adapter>
      <SAP:MessageId>dfe81887-3f6a-55f1-b933-0050568169b4</SAP:MessageId>
      </SAP:Hop>
      </SAP:HopList>
      </SOAP:Header>
    - <SOAP:Body>
    - <sap:Manifest 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" wsu:Id="wsuid-manifest-5CABE13F5C59AB7FE10000000A1551F7">
    - <sap:Payload xlink:type="simple" xlink:href="cid:payload-DFE818873F6A21F1B9330050568169B4">
      <sap:Name>MainDocument</sap:Name>
      <sap:Description />
      <sap:Type>Application</sap:Type>
      </sap:Payload>
      </sap:Manifest>
      </SOAP:Body>
      </SOAP:Envelope>
    Mais uma vez, muito obrigado,
    Leandro

  • XSLT Problem with soap namespace

    Hi there,
    I have a problem transforming an XML doc with soap elements, using XSLT (Xalan).
    Here's the input:
    <?xml version = "1.0" encoding = "ISO-8859-1"?>
    <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/" xmlns="http://www.ean.nl">
      <testthis>123456</testthis>
    </soap:Envelope>and here's the XSL:
    <?xml version="1.0"?>
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="soap:Envelope">
    <Orders>
         <H01>
              <xsl:value-of select="testthis"/>
         </H01>
    </Orders>
    </xsl:template>
    </xsl:transform>I expect to get something like:
    <?xml version="1.0" encoding="UTF-8"?>
    <Orders>
    <H01>123456<H01>
    <Orders>But instead I get:
    <?xml version="1.0" encoding="UTF-8"?>
    <Orders>
    <H01/>
    </Orders>I've tried a lot of things and I'm probably overseeing something stupid, but I'm stuck.
    It seems as if anything without soap: namespace cannot be processed by my XSL (when I add it in the input XML and XSL it works).
    Any help would be greatly appreciated.
    Greetings,
    Erik

    Yes, I found it!
    The following XSL for the same XML doc works!
    <?xml version="1.0"?>
    <xsl:transform xmlns:ean="http://www.ean.nl" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="soap">
    <xsl:output method="xml" indent="yes"/>
    <xsl:template match="soap:Envelope">
    <Orders>
         <H01>
              <xsl:value-of select="ean:testthis"/>
         </H01>
    </Orders>
    </xsl:template>
    </xsl:transform>Thanks, you pointed me in the right direction :-)
    Erik

  • 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,
    Bhavesh

    Henrique,
    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: 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

  • 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 PM

    Hi, 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.

  • Do not use SOAP envelope

    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>

Maybe you are looking for

  • Stored procedures with view in tabular form

    Dears, i use apex 4.2 and database xe 11g , i have create tabular depend on view and i use stored procedures in process after computation and validation , the problem that view not update this tabular form query select "ROWID", "DOC_DET_ID", "DOC_ID"

  • IPod Touch disconnects after only a few seconds

    I just bought a iPod Touch yesterday and updated it with the new January software upgrade (Apple Mobile Device 1.1.3.26). My PC has WinXP Pro with SP 2, iTunes 7.6.0.29 and QuickTime 7.4 installed. I have reinstalled both iTunes and Quicktime in an a

  • FPGA - compilation failure

    Hello all, I'm studying labVIEW FPGA. When I tried to run my first FPGA program, the compilation always failed. Please see attached picture for details. PCI-7830R is installed and works properly in my PC. The software I installed - labVIEW 2010 FPGA

  • Mountain Lion: Mail uses 100% cpu

    Since the update to Mountain Lion Mail uses always more than 80% of cpu as long as it is running. Has anyone a solution?

  • Concatenate " Simple but tricky question "

    Hey guys How are u, this looked like easy problem. However, I tried so many things. I want to add a space in front of character. This is 2-character lengths field. When I was executing this command, it is not adding up space. If I am something wrong