XSLT Rule Template

Hello Everyone,
I've not an XSLT programmer. Looking for Ideas from XSLT experience,...
Here are 3 sample transformations I've been using very frequently across multiple .xls files.
1. Straight mapping:
- <tns:unit_issue_code>
<xsl:value-of select="/ns0:SPS_BOD/ns0:SPS_Req_BOD/ns0:UOM" />
</tns:unit_issue_code>
2. Substring:
- <tns:supplementary_address_code>
<xsl:value-of select="substring-after(/ns0:SPS_BOD/ns0:SPS_Req_BOD/ns0:BPN,"DoD")" />
</tns:supplementary_address_code>
3. Look-Up
- <tns:foreign_currency_code>
<xsl:value-of select="orcl:lookup-table("currency_code_mapping_table","legacy_currency_code","/tns:DEAMS_BOD_Record/tns:foreign_currency_code","SFIS_currency_code","jdbc:oracle:thin:apps/[email protected]:1521:VIS1")" />
</tns:foreign_currency_code>
I need to would like to build a rule template driven by target field name (i.e. unit_issue_code, supplementary_address_code, foreign_currency_code) then be able to call the rule from within the original XSLT.
Any guidance or examples would be appreciated,
muchas gracias!,

The   entity that you want is only meaningful in the external representation of the document. As that article says, the parser will convert it to U+00A0 and that's how it appears in your document. The same is true for your XSLT, since it's an XML document too. So the way to refer to it in XSLT is &#x00a0; or &#160; -- see [this xsl-list message|http://www.biglist.com/lists/xsl-list/archives/200012/msg00056.html].

Similar Messages

  • Inline XSLT Call Template within Scripting Functoid logic needed

    In my Scripting Functoid, Config Functoid Script, Script type is Inline XSLT Call Template code is as follows.
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" />
    <xsl:element name="CanadaStatus">
       <xsl:choose>
          <xsl:when test="string-length($CanadaStatCd) > 0">
               <xsl:value-of select="$CanadaStatCd"/>
           </xsl:when>
           <xsl:otherwise>
               <xsl:value-of select="$CanadaClientCd"/>
           </xsl:otherwise>
        </xsl:choose>
       </xsl:element>
    </xsl:template>
    In this test case I think the Scripting Functoid is expecting 2 Parameters as input and in most cases the 2 input parameters will have data coming in, but in negative testing I have a case where the 2nd parameter is not passing any data (Value Mapping is
    coming from a Table lookup and the the input is blank, so the table lookup is not executed).
    Instead of trying to test for the length of the string of Parm 2 (which in the negative case there is no value for Parm2), I was wondering if there was a way to count the actual number of Parms being read into the XSLT. In the cases with my positive test,
    the number will be 2 and in the negative case, the number will be one.
    Or is there a way to confirm that there is something in the 2nd Parm.
    Thank you!

    I don't think there is a way count the number of parameter in XSLT (or even in any programing language's procedural calls). Where would execute the code/XSLT to check the count-With in your above "CanadaInformation" template?. What your looking for
    is something at engine level, i.e. is count the number of parameters being read and pass the control based on the number of parameters being read/passed.
    Or close option for this if you have something like overloaded functions/template. In XSLT we don't have anything like overloaded functions/templates.
    If you don't pass/link two parameter, you would error as "The number of inputs to the scripting functoid does not match with the number of inputs expected by the xsl:call-template"
    Your above code shall do the check for value of the parameter. Your code shall handle if "CanadaStatCd" is passed in or not. If you're considering other ways, you have some as follows:
    You can have "<xsl:when test="not($CanadaStatCd)">"- Which is same as parameter not being passed. So your code can be something like:
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" />
    <xsl:element name="CanadaStatus">
    <xsl:choose>
    <xsl:when test="not($CanadaStatCd)"> <!-- parameter has not been supplied -->
    <xsl:value-of select="$CanadaClientCd"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$CanadaStatCd"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:element>
    </xsl:template>
    Have a default values to your parameter and check whether the values are differernt from default values if values are passed in otherwise if the value are still default value, then no value are passed in. Something like:
    <xsl:template name="CanadaInformation">
    <xsl:param name="CanadaClientCd" />
    <xsl:param name="CanadaStatCd" select="'SomeDefaultValue'" /> <!-- SET default -->
    <xsl:element name="CanadaStatus">
    <xsl:choose>
    <xsl:when test="$prefix != 'default-value'">
    <xsl:value-of select="$CanadaStatCd"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="$CanadaClientCd"/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:element>
    </xsl:template>
    Have another scripting fuctiod before you call the above XSLT-template. Do the check at this scripting function and call the template based on the validation you do at this scripting functiod.
    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply.

  • XSLT stylesheet template for Endeca Records

    Endeca Forge provides a Record Adapter which can load XML data, transformed (if required) to Endeca's XML record format by an XML Stylesheet Template (XSLT). This provides a way of getting XML into Endeca with a minimum of fuss, for data analysis, PoCs and for modest amounts of XML data in production applications.
    There was an XSLT template posted to Endeca Eden prior to the acquisition. The thread is still available at:
    http://eden.endeca.com/web/eden/forums/message_boards/message/99120
    Does anyone have a copy of the template?
    TG

    Hi TG,
    Template XSLT below. Its main feature is that it attempts to be XSLT-agnostic, other than identification of the start-record element/x-path. It could be optimized for specific XML structures, or modified to support more complex XML data.
    Note also the remarks about XSLT and larger XML data - as your XML source data gets larger, XSLT will become less attractive, and you'll want to implement a streaming or pull-parser approach (SAX, StAX).
    Best
    Brett
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Copyright 2012 Oracle, Inc. All Rights Reserved. -->
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="xml" indent="yes" doctype-system="records.dtd" />
         <!--
              ========== About this stylesheet ==========
              This is a generic stylesheet for transforming an XML file into the XML record format accepted by Endeca Forge.
              The stylesheet is designed to be reasonably agnostic about the source XML format: the main configuration required is to identify
              one or more repeating record elements in the source XML.  The stylesheet creates the root RECORDS element, enclosing one RECORD element for each
              repeating element.
              Each RECORD element is then assigned any number of PROP name-value pairs created for each property, with each PROP containing
              a NAME attribute and a PVAL.  The stylesheet effectively "flattens" the XML into a RECORD, recursively fetching sub-elements and creating
              properties named according to the hierarchical path (think XPath).
              ========== Stylesheet configuration ==========
              Add your base source repeating elements as an xpath selector at ADD RECORD SELECTORS HERE below.
              The default example in the template is "item", which suites an RSS 2.0 feed.
              By default, the template will use full path property names.  To change to simple property names, change the variable
              use-simple-prop-names below to true().
              You can also change the path dividers used in full property names - see path-divider and attribute-divider variables below.
              ========== Examples ==========
              The first example used is an RSS 2.0 feed (note that there are other Endeca adapters for this type of data).
              Using full property names, this will produce records with the following properties:
              rss_channel_item_title
              rss_channel_item_description
              rss_channel_item_link
              rss_channel_item_guid_@isPermaLink
              and so on.  With simple prop names, only the last part of the name is used (after the last _ or @).
              The second example (sample.xml and sample_records.xml) shows how nested repeating elements within a record are folded-down to
              a multi-value property.
         -->
         <!-- change select to true() to use simple prop names -->
         <xsl:variable name="use-simple-prop-names" select="false()" />
         <xsl:variable name="path-divider">
              <xsl:text>_</xsl:text>
         </xsl:variable>
         <xsl:variable name="attribute-divider">
              <xsl:text>_@</xsl:text>
         </xsl:variable>
         <xsl:template match="/">
              <xsl:element name="RECORDS">
                   <!-- apply templates for each "repeating element" representing a single record -->
                   <!-- ADD RECORD SELECTORS HERE -->
                   <xsl:apply-templates select="//item" />
              </xsl:element>
         </xsl:template>
         <!-- one template with RECORD element for each template type applied above -->
         <xsl:template match="item">
              <xsl:element name="RECORD">
                   <xsl:call-template name="leaves-auto-subpaths" />
              </xsl:element>
         </xsl:template>
        <!-- calls the prop template for each leaf -->
        <xsl:template name="leaves-auto-subpaths">
            <!-- select all attributes-->
            <xsl:for-each select="@*">
                <xsl:call-template name="prop" />
            </xsl:for-each>
            <!-- select all leaf nodes -->
            <xsl:for-each select="*[not(*) and . != '']">
                <xsl:call-template name="prop" />
            </xsl:for-each>
            <!-- auto recurse subpaths -->
            <xsl:for-each select="*[*]|*[@*]">
                <xsl:call-template name="leaves-auto-subpaths" />
            </xsl:for-each>
        </xsl:template>
        <!-- creates the PROP element and calls prop-name and prop-pval -->
        <xsl:template name="prop">
            <xsl:element name="PROP">
                 <xsl:if test="$use-simple-prop-names">
                      <xsl:call-template name="prop-name-simple" />
                 </xsl:if>
                 <xsl:if test="not($use-simple-prop-names)">
                      <xsl:call-template name="prop-name-full" />
                 </xsl:if>
                <xsl:call-template name="prop-pval" />                 
            </xsl:element>
        </xsl:template>
        <!-- creates the NAME element -->
        <xsl:template name="prop-name-simple">
            <xsl:attribute name="NAME">
                <xsl:value-of select="name()" />
            </xsl:attribute>
        </xsl:template>
        <!-- creates the NAME attribute -->
        <xsl:template name="prop-name-full">
            <xsl:attribute name="NAME">
                 <!-- walk from root to current node, print name and underscore  -->
                <xsl:for-each select="ancestor-or-self::*">
                    <xsl:value-of select="name()" />
                    <xsl:if test="position() != last()">
                        <xsl:value-of select="$path-divider" />
                    </xsl:if>
                </xsl:for-each>
                <!-- pick up attributes -->
                <xsl:if test="not(namespace::*)">
                    <xsl:value-of select="$attribute-divider" />
                    <xsl:value-of select="name()" />
                </xsl:if>
            </xsl:attribute>
        </xsl:template>
        <!-- creates the PVAL element -->  
        <xsl:template name="prop-pval">
            <xsl:element name="PVAL">
                <xsl:value-of select="." />
            </xsl:element>
        </xsl:template>
    </xsl:stylesheet>

  • Logical "AND/OR" on Rules template of CE560 (Running ACNS 4.2.2)

    We have an application that is scheduled to run on a server. The app accesses a URL on the net.
    Is there a way to setup a rule that say "do not authorize if the source is 10.10.10.10 AND the destination is <A HREF="javascript:newWin('http://www.thiswebsite.com"')">www.thiswebsite.com"</A>
    Thanks,
    Doug Moffat

    This can be done. If your Network has a WCCP Router that redirects the Traffic to the server which has the content,
    you can configure an Access-list and thus allow or deny users or IP addresses. Here's the configuration required:
    ip wccp 0 redirect-list 120
    access-list 120 deny tcp host 10.10.10.10 any
    access-list 120 permit ip any any
    I am not sure about how to restrict the website

  • 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

  • XSLT Meterial

    Hi SDN Guru's
    I need to learn XSLT progarmming.
    Please give me some meterials or links to get start study
    XSLT (mapping).
    Thank very much your help in advance.
    Thanks
    Balaprasad

    Hi,
    What is XSLT
    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.
    It can be used to transform
    u2022XML to XML - From one XML data format to another
    u2022XML to Text
    u2022XML to HTML/XHTML
    u2022XML to PDF
    Pre-requisite for XSLT
    Writing an XSL program to transform XML document into desired format is not a difficult task though it seems to be in the beginning. It requires basic knowledge of XML tags, basic XPath concepts and HTML.
    We will concentrate more on use of XSLT in XI (EXchange Infrastructure) for mapping.
    Before starting with XSLT letu2019s get familiar with the following terms:-
    u2022XML
    u2022HTML
    u2022XPath
    XSLT: Extensible style sheet language transformation. It enables the definition of mappings for messages with different structures. Provides the transformation requirements for an inbound message to create an outbound message.
    XSLT mappings can be imported into the Integration Repository; java methods can be called from within the XSLT style sheet. Advantages of this mapping are: open standard, portable, extensible via Java user-defined functions.
    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
    For XSLT Mapping:
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/frameset.htm
    Error handling in XSLT Mapping:
    http://help.sap.com/saphelp_nw04/helpdata/en/8a/7672f7d7e444439fd7024f806221a4/frameset.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
    /people/udo.martens/blog/2006/04/26/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
    /people/aashish.sinha/blog/2008/01/17/step-150-by-150-step-simple-approach-for-xslt-mapping
    Thanks,
    RamuV

  • Smart object in template: saving off each layer as a png.

    I know someone must have asked for this before, however, I'm not sure how to phase it perfectly. I have provided many images to help me convey what I want, and I hope that helps. I make many mockups for smart phones and the like. Most of the time, when I present my work, my employer wants to see it "in the device".
    I have a template of a phone (I grabbed an iphone just for the sake of mockups), and I load all my mockups into the smart object that makes up the phone's screen in the template. However, saving out each mockup can become very time consuming. Is there a script out there what will save out each screen once I have added all my content to the smart object? (In my example, the final result would be 3 pngs of the phone displaying one of the 3 screens)
    Thanks!

    It there is no perspective distortion need like iPhone example a straight on perspective.  That would be a snap to do with a Photo Collage Template PSD and a batch script.  The template  could be as simpla as a background image of your iPhone shot straight on and an alpha channel the maps to the iPhone display. For example BatchOneImageCollage.jsx However that script would save a set of PSD files would contain a background layer. If you want a set of files the template would need two layers a plain white background layer a layer above it a cutout of your iPhone with the screen also cutout an missing., and the mapping alpha channel.  The saved PSD file would the need to be processed with the Image Processor Pro script the save PNG for the PSD and include an action that deletes the background layer or turns off its visibility.
    Photo Collage Toolkit UPDATED Made Rotate for Best Fit an option in PasteImageRoll.jsx Edit to customize your default settings.
    Photoshop scripting is powerful and I believe this package demonstrates this.
    The package includes four simple rules to follow when making Photo Collage Template PSD files so they will be compatible with my Photoshop scripts.
    Documentation and Examples
           There are twelve scripts in this package they provide the following functions:
    TestCollageTemplate.jsx - Used to test a Photo Collage Template while you are making it with Photoshop.
    CollageTemplateBuilder.jsx - Can build Templates compatible with this toolkit's scripts.
    LayerToAlphaChan.jsx - Used to convert a Prototype Image Layer stack into a template document.
    InteractivePopulateCollage.jsx - Used to interactively populate Any Photo Collage template. Offers most user control inserting pictures and text.
    ReplaceCollageImage.jsx - use to replace a populated collage image Smart Object layer with an other image correctly resized and positioned.
    ChangeTextSize.jsx - This script can be used to change Image stamps text size when the size used by the populating did not work well.
    PopulateCollageTemplate.jsx - Used to Automatically populate a Photo Collage template and leave the populated copy open in Photoshop.
    BatchOneImageCollage.jsx - Used to Automatically Batch Populate Collage templates that only have one image inserted. The Collage or Image may be stamped with text.
    BatchMultiImageCollage.jsx - Used to Automatically Batch Populate Any Photo Collage template with images in a source image folder. Easier to use than the interactive script. Saved collages can be tweaked.
    BatchPicturePackage.jsx - Used to Automatically Batch Populate Any Photo Collage template with an image in a source image folder
    PasteImageRoll.jsx - Paste Images into a document to be print on roll paper.
    PCTpreferences.jsx - Edit This File to Customize Collage Populating scripts default setting and add your own Layer styles.
    Four Rules Templates need to follow:
    Size the photo collage templates for the print size you want - width, height and print DPI resolution.
    Photo collage templates must have a Photoshop background layer. The contents of this layer can be anything.
    Photo collage templates must have alpha channels named "Image 1", "Image 2", ... "Image n".
    Photo collage templates layers above the background layers must provide transparent areas to let the images that will be placed below them show through.
    Example:

  • PI 7.1 Enhancement pack 8: still error when referencing java class in xslt

    Hi
    I am getting an error in PI 7.1 EP 8 Repository when I try to use an xslt in which I make a reference to a java class. The error is:
    Transformer Configuration Exception occurred when loading XSLT XCBL_invoice_stylesheet.xsl; details: Could not compile stylesheet
    I use this xslt:
    <xsl:template match="/" xmlns:util="dk.dongenergy.pi.mapping.Utilities_datetime">
              <html>
    <B><xsl:text>Received: </xsl:text><xsl:value-of select="util:getCurrentDateTimeFormatted()"/>
    I have imported the java archive successfully and it is working in XI 3.0 and it is working if I comment out the reference to the java class in the xslt.
    the java class looks like this:
    package dk.dongenergy.pi.mapping;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Utilities_datetime {
    *     public static String getCurrentDateTimeFormatted() {*
    *          Date now = new Date();*
    *          SimpleDateFormat formatter = new SimpleDateFormat("dd MMM yyyy HH:mm:ss");*
    *         return formatter.format(now);*
    We have applied enhancement pack 8 on PI 7.1 as suggewsted in this note, but that has not done the trick:
    http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/oss_notes/sdn_oss_bc_xi/~form/handler%7b5f4150503d3030323030363832353030303030303031393732265f4556454e543d444953504c4159265f4e4e554d3d31333235363833%7d
    Any suggestions?
    BR
    Mikael

    Hi Raj
    That gives me this error log:
    <br/>
    <br/>
    javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:100) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1104.execute(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:355) at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:67) at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:41) at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:977) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:57) at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109) at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314) Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:664) at java.lang.ClassLoader.defineClass(ClassLoader.java:509) at com.sap.aii.ib.server.mapping.execution.MappingLoader.findClass(MappingLoader.java:184) at java.lang.ClassLoader.loadClass(ClassLoader.java:350) at java.lang.ClassLoader.loadClass(ClassLoader.java:295) at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:63) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:99) 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:77) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:273) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:470) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:438) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:395) at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:397) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:239) at com.sap.aii.ib.server.mapping.execution.AbstractMappingTransformer.transform(AbstractMappingTransformer.java:174) at com.sap.aii.ib.server.mapping.execution.XSLTMapping.executeStep(XSLTMapping.java:79) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:87) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:54) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:139) at com.sap.aii.ibrep.server.mapping.exec.ExecuteIfMapCommand.execute(ExecuteIfMapCommand.java:33) at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40) at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:46) ... 32 more javax.ejb.EJBException: nested exception is: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:100) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16) at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177) at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133) at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164) at $Proxy1104.execute(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:355) at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:69) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:67) at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:41) at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:977) at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:57) at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:55) at com.sap.engine.core.thread.execution.Executable.run(Executable.java:109) at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:314) Caused by: java.lang.RuntimeException: java.lang.UnsupportedClassVersionError: Bad version number in .class file ... 33 more Caused by: java.lang.UnsupportedClassVersionError: Bad version number in .class file at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:664) at java.lang.ClassLoader.defineClass(ClassLoader.java:509) at com.sap.aii.ib.server.mapping.execution.MappingLoader.findClass(MappingLoader.java:184) at java.lang.ClassLoader.loadClass(ClassLoader.java:350) at java.lang.ClassLoader.loadClass(ClassLoader.java:295) at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:63) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:99) 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:77) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:249) at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296) at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:273) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:470) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:438) at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:395) at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:397) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:239) at com.sap.aii.ib.server.mapping.execution.AbstractMappingTransformer.transform(AbstractMappingTransformer.java:174) at com.sap.aii.ib.server.mapping.execution.XSLTMapping.executeStep(XSLTMapping.java:79) at com.sap.aii.ib.server.mapping.execution.Mapping.execute(Mapping.java:60) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:87) at com.sap.aii.ib.server.mapping.execution.MappingHandler.map(MappingHandler.java:54) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:139) at com.sap.aii.ibrep.server.mapping.exec.ExecuteIfMapCommand.execute(ExecuteIfMapCommand.java:33) at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40) at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:46) ... 32 more
    Edited by: mikael lund on Oct 26, 2009 10:51 AM

  • Outputting XML carriage return in HTML via XSLT

    Hi,
    I have a scenario where I execute a View Object query in ADF to retrieve results from a particular table in the Database. I then iterate through the results in my Java managed bean and manually construct an XML file with all the appropriate tags. I then pass the XML file through a Transformer class in the Java bean based on an XSLT I have created to produce an HTML page. However I have an issue when it comes to handling carriage returns. One of the database table columns can contain carriage returns within its value but in the final HTML page the carriage returns don't have any effect and the text just displays on one line.
    In the database, the values are stored with the carriage return and in SQL Developer, Toad etc this can be seen e.g. Text1 Text2 Text3 Text4 will display on separate lines. In the XML, the carriage return seems to still be there as when I open the file my element which contains the carriage returns shows each part on a new line e.g. <textElement>Text1
                                                           Text2
                                                           Text3
                                                           Text4</textElement>     (The Text2, Text3 and Text4 all start on a new line at the beginning and there's no prior white space as shown in this post)
    The XML file in JDeveloper also shows carriage return arrow symbols where there is one.
    The HTML page just shows them as Text1 Text2 Text3 Text4 all on one line. Inspecting the source of the HTML shows that the carriage return is in fact there as it also displays as per the XML with the values on separate lines.
    Outputting the value from the View Object in Java to the log shows the value coming out like this - Text1 Text2Text3Text4, which is strange but I know the carriage returns are there so I'm not too fussed about this.
    I have tried escaping the characters in the Java by doing str.replaceAll("[\\r\\n]", ""); (but replacing the "" with &#xD; &#xA; or &x0A;) so in the XML it replaces carriage returns and line feeds with these escaped characters. However, when the XSLT parses the XML it doesn't pick these up and instead actually outputs these actual characters as they are e.g. Text1&x0A;Text2&x0A;Text3&x0A;Text4
    So I can confirm that the carriage return is carrying all the way through to the XSL but I can't help but think that maybe I need to do something in the XSL to process this somehow, e.g. doing the equivalent of the 'replace' in Java but I don't know what I need to search for in the XML and also what to actually replace it with..Do I just replace it with a </BR> in HTML?
    We also parse the XML using PDF and Excel XSL Transformer class and see the same results.
    Any help would be appreciated.
    Thanks

    That's a very commonly asked question.
    HTML doesn't preserve linefeeds, except for the <pre> tag.
    You'll have to replace those characters with <BR/> tags in the XSLT.
    Search the Internet for terms like "XSLT HTML LF", you'll find some XSLT sample templates to handle the replacement.

  • XSLT mapping for fixed values

    Hi,
    i am doing a XSLT mapping. i have a field which has fixed values(can be performed using graphical mapping). but the same i am not able to implement for XSLT. can anyone give me a idea about this
    <removed by moderator>
    Thanks
    Deepika
    Edited by: Mike Pokraka on Jul 24, 2008 12:57 PM

    Step u2013 By u2013 Step Simple Approach for XSLT Mapping                         
    Step – By – Step Simple Approach for XSLT Mapping                         
    generic xslt mapping part 1                                             
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/01a57f0b-0501-0010-3ca9-d2ea3bb983c1                                             
    generic xslt mapping part2                                   
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/9692eb84-0601-0010-5ca0-923b4fb8674a                                             
    xslt recursive templates                                             
    XSLT: Recursive Templates
    regards
    kummari

  • Advantages of using XSLT mapping

    Can any one explain me the advantages of using XSLT mapping compare to graphical.java and abap mappings

    Hi
    Please go through the below links for details on XSLT Mappings..
    XSLT Mapping
    /people/udo.martens/blog/2006/04/26/xslt-recursive-templates
    Thread:
    Sample XSLT mapping required
    XSLT Mapping Links::->
    /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
    /people/sreekanth.babu2/blog/2005/01/05/design-time-value-mappings-in-xslt
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    XSLT Mapping with java enhancement
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    XSLT - ABAP.
    /people/r.eijpe/blog/2005/11/04/using-abap-xslt-extensions-for-xi-mapping
    exception handling errors in respect with XSLT mapping
    http://help.sap.com/saphelp_nw2004s/helpdata/en/8a/7672f7d7e444439fd7024f806221a4/content.htm
    Hope this will help
    Regards
    Piyush
    **reward points if found useful.

  • Is it possible to replace  XSLT mapping in place of Graphical mapping

    Is it possible to do XSLT mapping in place of Graphical mapping, in any normal scenario?
    Means the fuctionality we do by using Graphical mapping(like the operations by using node functions etc...) could possible to do with XSLT Mapping?

    HI
    yes it is possible to replace the graphical mapping with the XSLT mapping.
    But using XSLTs degrade the performance of the interface and moreover they are not easily maintainable.
    Refer the below links for assistance on XSLT Mapping:
    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
    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
    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#
    Using XSLT mapping in a ccBPM scenario
    File to Multiple IDocs (XSLT Mapping)
    Comparsion of Different mappings:
    Comparing Performance of Mapping Programs
    Complete mapping guide url:
    http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
    cheers

  • XSLT or JAVA Mapping

    How to choose between XSLT & JAVA Mapping.

    HI
    Usually Java mapping is preferred when the target structure is relatively complex and the transformation cannot be accomplished by simple graphical mapping.
    When to use Java mapping
    1) Java mapping are used when graphical mapping cannot help you.
    Advantages of Java Mapping.
    1)you can use Java APIs and Classes in it.
    2) file look up or a DB lookup is possible
    3) DOM is easier to use with lots of classes to help you create nodes and elements.
    Java mapping can be used when you have complex mapping structures.
    http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/frameset.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10dd67dd-a42b-2a10-2785-91c40ee56c0b
    Java Mapping (Part I)
    https://Difference in using java,xslt,message mapping
    Java Mapping (Part I)
    Java Mapping (Part II)
    Check these for JAVA Mapping
    Java Mapping (Part I)
    Java Mapping (Part II)
    Java Mapping (Part III)
    Testing and debugging
    Testing and Debugging Java Mapping in Developer Studio
    Implermenting JAVA Mapping in PI
    Implementing a Java Mapping in SAP PI
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/10dd67dd-a42b-2a10-2785-91c40ee56c0b
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/400ee77e-f9d6-2a10-2b8c-99281a4dcf6b
    XSLT mappings can be imported into the Integration Repository; java methods can be called from within the XSLT style sheet. Advantages of this mapping are: open standard, portable, extensible via Java user-defined functions
    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
    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#
    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
    Advantages of using XSLT mapping
    XSLT program itself defines its own target structure.
    XSLT programs can be imported into SAP XI. Message mapping step can be avoided. One can directly go for interface mapping once message interfaces are created and mapping is imported.
    XSLT can be used in combination with graphical mapping.
    Multi-mapping is also possible using xslt.
    XSLT can be used with ABAP and JAVA Extensions.
    Disadvantages of using XSLT mapping
    Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
    Interface mapping testing does not show proper error description. So errors in XSLT programs are difficult to trace in XI but can be easily identified outside XI using browser.
    XSLT mapping requires more memory than mapping classes generated in Java.
    It all depends upon the required Scenario and the requirement , which mapping has to be used.
    cheers

  • Basics of XSLT mapping

    Hi all,
    Please help me with appropriate Documents ...
    I am starter in XSLT mapping ..
    if you any documant with <b>Step by Step method</b> ,,,that will be Very Much helpfull to me,,,
    Thanks in advance
    Shakif

    Hi mohamed shakif ,
    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
    /people/udo.martens/blog/2006/04/26/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
    cheers!
    gyanaraj
    ****reward points if u find this helpful

  • How to apply an XSLT transformation in OSB

    Hello all ,
    I tried to made a simple example - that apply a simple XSLT transformation in OSB .
    I followed the http://blog.jayway.com/2010/05/07/xslt-transformations-in-oracle-service-bus/ example but still is not working in my project .
    If I apply the imported xslt over the xml in testing window is working fine .
    But the action to replace the content of the xml with the new one is not working.
    Here is the xslt
    <xsl:template match="/">
    <ns0:donateToFund>
    <arg0>
    <xsl:value-of select="/Report/CustomerName"/>
    </arg0>
    <arg1>
    <xsl:value-of select="/Report/CustomerNumber"/>
    </arg1>
    <arg2>
    <xsl:value-of select="/Report/ReportName"/>
    </arg2>
    </ns0:donateToFund>
    </xsl:template>
    and here is a xml sample
    - <Report>
    <ReportName>Customer Report</ReportName>
    <CustomerName>XXX</CustomerName>
    <CustomerNumber>3423</CustomerNumber>
    <GeneratedDate>2010-11-25 08:15:24.695</GeneratedDate>
    - <Rowset>
    - <Row>
    <Quantity>100154</Quantity>
    <CustomerPartNo>ee</CustomerPartNo>
    <eSiliconPartNo>ee</eSiliconPartNo>
    <Sector>ee</Sector>
    <Location>eee</Location>
    </Row>
    - <Row>
    In my action I put /Report as XPath ; body as variable and XSL fro transformation .
    Can anyone help to fix this ?
    Many thanks in advance,
    Stefan

    Following works for me:
    XSLT
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    <xsl:output method="xml" omit-xml-declaration="yes"/>
    <xsl:template match="/" xmlns:ns0="http://tempuri.org">
    <ns0:donateToFund>
    <arg0>
    <xsl:value-of select="/Report/CustomerName"/>
    </arg0>
    <arg1>
    <xsl:value-of select="/Report/CustomerNumber"/>
    </arg1>
    <arg2>
    <xsl:value-of select="/Report/ReportName"/>
    </arg2>
    </ns0:donateToFund>
    </xsl:template>
    </xsl:stylesheet>Input to Proxy
         <Report>
         <ReportName>Customer Report</ReportName>
         <CustomerName>XXX</CustomerName>
         <CustomerNumber>3423</CustomerNumber>
         <GeneratedDate>2010-11-25 08:15:24.695</GeneratedDate>
         <Rowset>
         <Row>
         <Quantity>100154</Quantity>
         <CustomerPartNo>ee</CustomerPartNo>
         <eSiliconPartNo>ee</eSiliconPartNo>
         <Sector>ee</Sector>
         <Location>eee</Location>
         </Row>
         <Row>
         <Quantity>100154</Quantity>
         <CustomerPartNo>aa</CustomerPartNo>
         <eSiliconPartNo>aa</eSiliconPartNo>
         <Sector>aa</Sector>
         <Location>aaa</Location>
         </Row>
         </Rowset>
         </Report>Output of Proxy:
         <ns0:donateToFund       xmlns:ns0="http://tempuri.org">
         <arg0>XXX</arg0>
         <arg1>3423</arg1>
         <arg2>Customer Report</arg2>
         </ns0:donateToFund>I am using a single Replace action in the request pipeline.
    It works for both configs below:
    Replace [ entire node ] of [ ./* ] in [ body ] with [Xslt Resource: default/OTN/temp
    Input Document: $body/Report
    Variable Names And Bindings ]
    Or
    Replace [ Node Contents ] of [ . ] in [ body ] with [Xslt Resource: default/OTN/temp
    Input Document: $body/Report
    Variable Names And Bindings ]
    You need to ensure that if you are doing replace entire node of . in body or / in body then you should replace it with an XML whose root node is soap:Body. To achieve that you will need to change the XSL and add soap:Body as root of the output. Easier solution is to use replace contents of . body or replace entire node of ./* in body.

Maybe you are looking for

  • Mac Pro (2013) with Mavericks and Mac Office Excel

    Using MAC Excel VBA, and obviously with my personally written Excel VBA application, I have discovered that in a multi-Workbook Excel app, I am unable to "Open" additional Workbooks (xlsm-type) successfully from any Workbook OTHER THAN with the very

  • My HP Officejet Pro 8500 A910 will no longer print aqua.

    My HP Officejet Pro 8500 A910 will no longer print aqua.  I just tried two new cartridges and when I clean the heads, no aqua prints.  I get no error messages however. One possible issue: Recently I used a new HP aqua print cartridge (940XL version)

  • Officejet 7000 Wide Format 809a

    How do I get a replacement external power supply for the HP Officejet 7000 Wide Format 809a printer. I have followed the HP on line video to do a reset and check on the power supply and believe that the ext'l power supply is dead. Printer was last se

  • Need clarification on one running job in SM37

    Dear  friends, right now am working for one client , so we are the second vendor for them and we have been taking care of the project now i can able to see my client's previous vendor user names are still availbae in SU01.. so instead of deleting the

  • RSBDCSUB not scheduling background job in PRD system

    hi all, i have created one background program to re-run all error session from sm35 using program RSBDCSUB.. tables: APQI. data: ls_apqi type apqi,       it_apqi type standard table of apqi . select * from apqi into table it_apqi where progid eq 'SAP