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

Similar Messages

  • XSLT Mapping for creating Excel files

    Hi ,
    I am following the blog /people/michal.krawczyk2/blog/2005/12/10/xi-generating-excel-files-without-the-java-nor-the-conversion-agent-not-possible by Michal regarding conversion of Flat files to Excel file format.
    My input xml format is
             <?xml version="1.0" encoding="utf-8"?>
             <FILE>
                  <Record>
         <Name>Navin</Name>
                         <EmpID>123456</EmpID>
                         <Location>Bangalore</Location>
                  </Record>
                 <Record>
         <Name>Ravi</Name>
                         <EmpID>789456</EmpID>
                         <Location>Hyderabad</Location>
                  </Record>
             </FILE>
    i need to convert this file into an Excel format with each record in single rows with Column Header names as Name,EmpID,Location.
    Could you please suggest how the XLST mapping should be done for this as i am very new to XSLT mapping concept.
    Please suggest how we can attain the target structure(datatype) and  steps to do this XSLT mapping.
    Note:- We are not doing Adapter module for this conversion.
    Thanks,
    Navin

    > i need to convert this file into an Excel format with each record in single rows with Column Header names as Name,EmpID,Location.
    This can be done with file content convertion. Use delimiter ; for excel
    > Could you please suggest how the XLST mapping should be done for this as i am very new to XSLT mapping concept.
    If you do not understand XSLT, you you want to maintain your development, in case if an error?
    http://w3schools.com/xsl/default.asp

  • Java xslt mapping

    hi,
      could any one please forward me java and xslt mapping step by step screen shots.
    I would be thankful to you ,if you do this.
    with regards,
    [email protected]

    Java Mapping
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/alessandro.guarneri/blog/2007/03/25/xi-java-mapping-helper-dom
    /people/rahul.nawale2/blog/2006/07/18/java-mapping-an-alternate-way-of-reading-a-csv-file
    XSLT Mapping
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/006aa890-0201-0010-1eb1-afc5cbae3f15
    /people/sriram.vasudevan3/blog/2005/11/21/effective-xsl-for-multimapping-getting-source-filenames-in-legacy-legacy-scenarios
    Regards,
    Prateek

  • XSLT Mapping with Java Enhancement

    Hi All
    I am working on XSLT Mapping with Java Enhancement.
    To do this scenario i have followed the following link.
    http://help.sap.com/saphelp_nw04/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/frameset.htm
    As per the above link I have created Source and Target Data Types , Message Types , Mesage Interfaces, XSLT Mapping (using the transaction XSLT_TOOL) and Interface Mapping part and configred a simple file to file scenario in the ID part.
    Apart from this I have wirte the java code, compile the java code, create the jar file using .java and .class file and after creating the jar file import the .jar file in the imported archive of the IR..
    when I am trying to execute the scenario I am getting the successful message in SXMB_MONI but the target file is having the payload as given below.
    <?xml version ="1.0" encoding="UTF-8"?>
    <name xmlns:javamap="java:com.company.group.MappingClass"/>
    And as per the XSLT mapping the payload should be as below
    <?xml version ="1.0" encoding="UTF-8"?>
    <person>
    <name>Rinku Gangwani</name>
    </person>
    I have also followed the following blog link but still i am getting the same issue
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    could you please tell me what can be the reason that i am getting the blank targt field values in the payload.
    Thanks
    Rinku Gangwani

    Hi,
      The Transaction code XSLT_TOOL for ABAP xslt mapping.But the Java Enhancement is used for normal xslt mapping which we created using Stylus Studio.You can not access the Java Enhancement in ABAP xslt mapping.
    If you want to use Java Enhancement in xslt mapping then create a xslt mapping using Stylus Studio and save the file as .xsl and zip the .xsl and import to import archive.
    Regards,
    Prakasu.M
    Edited by: prakasu on May 28, 2009 1:46 PM

  • 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

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

  • SOAP Envelope encodingStyle

    Hi experts,
    I have a PI SOAP Receiver, sending to a Java Powerbuilder app. I am getting an HTTP 200, but with an error message in SXMB_MONI:
    <SAP:Category>XIAdapterFramework</SAP:Category>
    <SAP:Code area="MESSAGE">GENERAL</SAP:Code>
    <SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: java.lang.NullPointerException; HTTP 200 OK</SAP:AdditionalText>
    When I execute the same scenario using soapUI instead of PI, using the same SOAP Payload, I get no SOAP body, only this HTTP Response (HTTP 200 OK as well):
    " No mapping found for 'class java.lang.String' using encoding style 'http://xml.apache.org/xml-soap/literalxml'  "
    When I change the Payload slightly in soapUI, ie. adding an encodingStyle attribute to the SOAP Envelope, I get the expected response message ("Test OK").
    To summarize:
    PI sends this SOAP Envelope, which the remote app cannot accept (no mapping found):
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/">
    When the SOAP Envelope is modified like below, the test is ok:
    <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"        
                   SOAP:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
    Any ideas how I can add an encodingStyle attribute ?
    kr,
    Peter Glas

    An sdn search gave me this thread to create custom SOAP envelop
    Generating SOAP Envelope when DO NOT USE ENVELOPE option is marked

  • XSLT Mapping :-- End to End Scenario

    Can any one provide XSLT Mapping End to End scenario with screen shots?

    HI
    XSLT Mapping
    XSLT stands for EXtensible Stylesheet Language Transformations. It is an XML based language for transforming XML documents into any other formats suitable for browser to display, on the basis of set of well-defined rules.
    Using XSLT mapping in a ccBPM scenario
    File to Multiple IDocs (XSLT Mapping)
    Steps required for developing XSLT Mapping
    u2022 Create a source data type and a target data type
    u2022 Create Message types for the source and target data types.
    u2022 Create Message Interfaces includes Inbound Message interface and Outbound Message interface.
    u2022 XSLT Mapping does not require creation of Message mapping, so donu2019t create any Message mapping.
    u2022 Create an .XSL file which converts source data type into target data type.
    u2022 Zip that .xsl file and import it into Integration Repository under Imported Archives.
    u2022 In Interface Mapping choose mapping program as XSL and specify this zip program. (Through search help you will get XSL Mapping programs that you imported under Imported Archives, select your corresponding XSL Program)
    u2022 Test this mapping program by navigating to Test tab.
    By having look at above steps you can easily find out that this mapping is no where different from other mapping programs, here the challenging lies in creating an XSLT file. If you spend couple of minutes in studying XPATH tutorial you would be in ideal position to create an XSL Transformation (.xsl extension).
    If you still find difficulties in generating XSL Transformation, then you can make use of a tool u201CAltova MapForceu201D which will create XSL file for you.
    Steps for creating XSL file using this tool:
    1. Open the Alto MapForce, import the source .xml and .xsd file in it
    2. Similarly import the target .xml and .xsd in MapForce.
    3. These two data files should match with source and target data types in Integration Repository.
    4. Complete the graphical mapping using extensive list of XSLT functions available there.
    5. Save the mapping file.
    6. Click the XSLT tab. You will have the entire xslt logic there.
    7. Copy that content and save it as .xsl file.
    8. Zip above .xsl file and import the same into IR under Imported Archives.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/006aa890-0201-0010-1eb1-afc5cbae3f15
    xpath functions in xslt mapping
    https://www.sdn.sap.com/irj/sdn/advancedsearch?cat=sdn_all&query=xslt+mapping&adv=false&sortby=cm_rnd_rankvalue#
    complete mapping guide:
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
    XSLT MAPPING:
    Generic XSLT Mapping for SAP XI,Part I
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1
    Generic XSLT Mapping for SAP XI,Part II
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a
    XSLT: Recursive Templates
    XSLT: Recursive Templates
    Easy RFC lookup from XSLT mappings using a Java helper class
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14
    Step u2013 By u2013 Step Simple Approach for XSLT Mapping
    Step – By – Step Simple Approach for XSLT Mapping
    http://www.devguru.com/Technologies/xslt/quickref/xslt_element_applytemplates.html
    cheers
    Edited by: vemuganti naga phalguna on Jul 2, 2008 8:59 AM
    Edited by: vemuganti naga phalguna on Jul 2, 2008 9:07 AM

  • Value Mapping using XSLT mapping

    Hello All,
    We have change requirement of storing some xsl Key-Value in SAP PI and on run time existing XSLT mapping need to look that values and in target structure map the value as per source key value.
    For this requirement i am going with value mapping that will call from  XSLT mapping and created a test scenario before actual changes in XSLT mapping
    I have created table in ID.
    But unfortunately  i am getting below error :
    Transformer Configuration Exception occurred when loading XSLT Test_Mapping.xsl; details: Could not load stylesheet.com.sap.engine.lib.xsl.xpath.XPathException: Prefix not mapped: ValueMap -> java.lang.Exception: XMLParser: Prefix 'ValueMap' is not mapped to a namespace
    Below is my XSLT mapping code :
    <?xml version='1.0' encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="urn:kesko.fi.XSLTTest" xmlns:ns1="urn:kesko.fi.XSLTTest">
    <xsl:template match="/">
      <xsl:param name="Dept_ID">
      <xsl:value-of select="ns0:MT_EmpDet_S/ID"/>
      </xsl:param>
      <xsl:param name="inputparam"/>
      <ns1:MT_EDet_R>
      <Name>
       <xsl:value-of select="ns0:MT_EmpDet_S/Name"/>
      </Name>
      <Department>
       <xsl:if test="function-available('ValueMap:getValueMapping')">
         <xsl:value-of select="ValueMap:getValueMapping('http://sap.com/XI/xi', 'http://sap.com/XI/xi', 'S','S1', 'T', 'T1', $Dept_ID, $inputparam,'TRUE')"/>
       </xsl:if>
      </Department>
      <PersonalInfo>
        <xsl:value-of select="concat(ns0:MT_EmpDet_S/Add, ns0:MT_EmpDet_S/SAL)"/>
      </PersonalInfo>
      </ns1:MT_EDet_R>
      </xsl:template>
    </xsl:stylesheet>
    Thanks,
    Anant

    Thanks again.
    But after adding the namespace  I am still getting error.
    Can you please extend your help so that i can proceed further.
    Please check below code that i tried to execute :
    1st :
    <?xml version='1.0' encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ValueMap="com.sap.aii.mapping.value.api.XIVMService"
    xmlns:ns0="urn:kesko.fi.XSLTTest" xmlns:ns1="urn:kesko.fi.XSLTTest">
    <xsl:template match="/">
      <xsl:param name="Dept_ID">
      <xsl:value-of select="ns0:MT_EmpDet_S/ID"/>
      </xsl:param>
      <xsl:param name="inputparam"/>
      <ns1:MT_EDet_R>
      <Name>
       <xsl:value-of select="ns0:MT_EmpDet_S/Name"/>
      </Name>
      <Department>
       <xsl:if test="function-available('ValueMap:getValueMapping')">
         <xsl:value-of select="ValueMap:getValueMapping('http://sap.com/XI/xi', 'http://sap.com/XI/xi', 'S','S1', 'T', 'T1', $Dept_ID, $inputparam,'TRUE')"/>
       </xsl:if>
      </Department>
      <PersonalInfo>
        <xsl:value-of select="concat(ns0:MT_EmpDet_S/Add, ns0:MT_EmpDet_S/SAL)"/>
      </PersonalInfo>
      </ns1:MT_EDet_R>
      </xsl:template>
    </xsl:stylesheet>
    2nd :
    <?xml version='1.0' encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ValueMap="com.sap.aii.mapping.value.api.XIVMService"
    xmlns:ns0="urn:kesko.fi.XSLTTest" xmlns:ns1="urn:kesko.fi.XSLTTest">
    <xsl:template match="/">
      <xsl:param name="Dept_ID">
      <xsl:value-of select="ns0:MT_EmpDet_S/ID"/>
      </xsl:param>
      <xsl:param name="inputparam"/>
      <ns1:MT_EDet_R>
      <Name>
       <xsl:value-of select="ns0:MT_EmpDet_S/Name"/>
      </Name>
      <Department>
         <xsl:value-of select="ValueMap:executeMapping('S','S1',$Dept_ID,'T','T1')"/>
      </Department>
      <PersonalInfo>
        <xsl:value-of select="concat(ns0:MT_EmpDet_S/Add, ns0:MT_EmpDet_S/SAL)"/>
      </PersonalInfo>
      </ns1:MT_EDet_R>
      </xsl:template>
    </xsl:stylesheet>
    for above both the cases messages are failing in MONI.
    Thanks in advance.
    Anant

  • SOAP Envelope element descriptions

    Does anybody have a link to a document that explains the semantic meaning of all of the elements that exist within the PI message SOAP Header?
    BR,
    Tony.
    Edited by: Anthony Bateman on Apr 14, 2008 12:42 PM

    Hi ,
    This is from some document ...check it.
    <i>The SOAP adapter creates the SOAP envelope. You cannot influence this procedure. If
    you need to apply special tags inside the SOAP header, the only option is to create the
    whole SOAP envelope during mapping, and in the case of a synchronous call, to remove
    the SOAP envelope in the mapping.
    In the SOAP adapter channel, select Do Not Use SOAP Envelope.
    By using this parameter, you can use the SOAP adapter to send or receive non-
    SOAP messages. In this case the sender SOAP adapter requires an additional
    parameter nosoap=true in the URL. For example:
    http://<host>:<j2ee-port>/XISOAPAdapter/MessageServlet?
    channel=<party>:<service>:<channel>&nosoap=true</i>
    Sekhar

  • APEX 3.0 Web Service OWS-04052 unrecognized operation SOAP Envelop

    Hey,
    I run into a problem with WebServices. Short, I implemented a WebService with JDeveloper and now I would like to create ws references in APEX. The ws is working 100% correct so the problem is, that APEX creates a soap envelop which is not 100% correct...
    So blabla here it is what APEX generates for request:
    <?xml version='1.0' encoding='UTF-8'?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <SOAP-ENV:Body>
    <ns1:projectId
    xmlns:ns1="http://impl.planning.services.model.azima.promatis.com/">2</ns1:projectId>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Now the request which should be sended: (from EM Console)
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
    <soap:Body xmlns:ns1="http://impl.planning.services.model.azima.promatis.com/">
    <ns1:getAllElementsOfProject>
    <ns1:projectId>2</ns1:projectId>
    </ns1:getAllElementsOfProject>
    </soap:Body>
    </soap:Envelope>
    Compare and you will see that the operation info is missing. So it's almost the same but the operation 'getAllElementsOfProject' isn't in the request.
    If it helps I could also send the wsdl if requiered for help.
    So I run into the following error:
    <?xml version="1.0" encoding="UTF-8"?>
    <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns0="http://impl.planning.services.model.azima.promatis.com/"><env:Body><env:Fault><faultcode>env:Client</faultcode><faultstring>Caught exception while handling request: unrecognized operation: {http://impl.planning.services.model.azima.promatis.com/}projectId</faultstring></env:Fault></env:Body></env:Envelope>
    From Response
    2007-05-22 16:41:01.765 WARNING OWS-04052 Bestimmen der Vorgangs-ID aus SOAP-Nachricht nicht m÷glich.
    In OC4J (sorry german - means that operation-id couldn't be identified)
    Do you have any ideas how I could configure this? Before you try to say: make it manually, I won't, because it have to worked automatically!
    Thanks
    Frank

    Ok I tried it with new Version JAX-WS 2.0.1. There is a new annotation where the type of the Enpoint or WebService itseld can be set:
    @BindingType( value=SOAPBinding.SOAP11HTTP_BINDING )
    So I tried now with SOAP 1.1 but APEX still don't put the operation name in the SOAP request envelope...
    Now do anyone out there have a clue what else could be wrong? Did I maybe forget an annotation parameter somewhere or something else? So I do it something like this:
    @Stateless
    @WebService( name="XXX" )
    @BindingType( value=SOAPBinding.SOAP11HTTP_BINDING )
    public class XXXImpl implements Ixxx {
    @EJB Ia a;
    @EJB Ib b;
    @WebMethod( operationName="foo" )
    public ADaoObjectWithNoComplexAttributes foo( Long someId ) {
    // do it!
    return theDao;
    I am appreciate for any help!
    Thanks
    Message was edited by:
    promatis

  • 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

  • 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 Java helper classes

    Hi,
    I'm trying to implement a XSLT mapping to convert my request to a specific soap request message format for this I'm calling some methods from a java helper class. I have imported the jar file into the archives. When I tried to test the interface it keeps complaing there is some exception but doesn't give me the exact error. Has any one called any java helper classes with in XSLT mapping, if so I would appreciate if you could help me with this. Here is the code from xsl.
    <wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"   xmlns:UserToken="java:com.company.test.mapping.UserTokenMap">
    <wsse:UsernameToken>
        <wsse:Username xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <xsl:value-of select="UserToken:getUsername()"/>
        </wsse:Username>
        <wsse:Password wsse:Type="wsse:PasswordDigest" xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getPasswordDigest()"/>
        </wsse:Password>
        <wsse:Nonce xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getNonce()"/>
        </wsse:Nonce>
        <wsu:Created xsi:type="soapenc:string" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getCreateDate()"/>
    </wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    Thanks,
    Joe

    Hi,
    I'm getting following exception when I refer to the java class with in my XSLT mapping. Any one encountered the same problem.
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:218)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         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:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)
         at java.lang.ClassLoader.defineClass0(Native
    Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
         at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
         at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
         at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:56)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:43)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:51)
         at com.sap.engine.lib.xsl.xslt.XSLValueOf.process(XSLValueOf.java:76)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:463)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:431)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:394)
         at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:398)
         at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
         at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167)
         ... 10 more
    ; nested exception is:
         java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)

  • XSLT Maps with Java enhancements - JCO_SYSTEM_FAILURE

    Hi,
    I have reviewed several postings regarding XSLT Maps with Java enhancements. I followed instructions and build a jar file and the XSLT document. I built one imported archive with the .jar and .xsl. For the class, The path get loaded properly.
    However, I still have a problem when and execute the interface.
    My xslt has the following information
    <xsl:transform version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:ns="http://xyz.abc.sap.def.com"
        xmlns:javamap="java:xyz.Date_Time">
    <xsl:param name="inputparam" />
        <xsl:template match="/">
            <test><xsl:value-of select="javamap:getDateValue($inputparam)"/></test>
        </xsl:template>
    </xsl:transform>
    In SXMB_Moni I get the following error...
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!--  Request Message Mapping
      -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">JCO_SYSTEM_FAILURE</SAP:Code>
      <SAP:P1>Exception in method processFunction.</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>"SYSTEM FAILURE" during JCo call. Exception in method processFunction.</SAP:Stack>
      <SAP:Retry>A</SAP:Retry>
      </SAP:Error>
    If i remove the line        
    <test><xsl:value-of select="javamap:getDateValue($inputparam)"/></test>
    The map ends successfuly.
    Comments would be appreciated.
    Regards,
    Sergio

    Stefan,
    Find the class and method definition below. The method is static and it returns the string.
    ==========
    package xyz;
    import java.util.Map;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import java.util.*;
    import java.text.*;
    public class Date_Time {
        private static AbstractTrace trace = null;
        public static String getDateValue(Map inputparam)
                trace = (AbstractTrace)inputparam.get(
                         StreamTransformationConstants.MAPPING_TRACE );
                Date now1 = new Date();
                SimpleDateFormat formatter = new SimpleDateFormat ("yyyyMMd");
                String dateString = formatter.format(now1);
                return dateString;

Maybe you are looking for

  • SMQ2 error HUSELECT005

    Hi I have a WM system with stocks inclusing of HUs because one of my WM managed storage location is also HU managed. Now, I have converted WM storage locations to EWM and removed HU management indicators were earlier HU managed and completed all nece

  • Open in a new window using Firefox

    Howdy, my site is http://www.makelikeanoctopusandeatyourselfmusic.com/ and if you click on the last 'button 2' and then the 'Stigma' link you'll notice if you're using Internet Explorer that the when clicked the link opens up in a window as intended

  • How to use iPhoto web gallery with iWeb & personal domain name

    So, another question about iWeb 08: I've set up my site to use a personal domain name, like www.mypersonaldomain.com. I've configured everything with my DNS settings so that it actually points to my iWeb site, and I'm happy about that. However, I've

  • What is wrong with my network settings?

    I just can't update my ios (4.3.3). it says that " the iPhone software update server could not be contacted; make sure your network settings are correct...." can anyone come up with a solution?? thanks (I use iPhone 4g)

  • 1.4.2_x binary (jar) incompatibility

    I built an application with JDK 1.4.2_03. The application is put into a jar file. Whereas it runs with 1.4.2_03 and 1.4.2_04 but not with the runtime 1.4.2_09, which complains about an "Invalid or corrupt jarfile". I can run the application with the