XSLT  Mapping  scenario

Hi
     we have graphical mapping in Xi.. but most of them going for XSLT mapping.. i did't understood  in what situation we need to go for  XSLT mapping... is there any  special features  which are not possible in Graphical Mapping.. can you please suggest what are  those.. and  exactly  when can go for XSLT mapping.. 
Thanks
Babu

Hi Babu,
1) 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
•     XML to XML - From one XML data format to another
•     XML to Text
•     XML to HTML/XHTML
•     XML to PDF
How is XSLT mapping different from Graphical, Java and ABAP mapping?
Graphical mapping is a common approach followed by everyone for generating desired target structure. It involves simple drag-n-drop to correlate respective nodes (fields) from source and target structure. It hardly involves coding. (Exception – User defined functions).   But sometimes with graphical mapping it is difficult to produce required output. For example … text/html output, namespace change, sorting or grouping of records etc. A person comfortable with Object Oriented ABAP can go for ABAP mapping instead. One can also think of Java mapping as another option but it is a bit complex and required knowledge of Java. In such cases, XSLT mapping can be the best approach to meet the requirements.
A few example cases in which an XSLT mapping can be used:-
     When the required output is other than XML like Text, Html or XHTML (html displayed as XML )
     When default namespace coming from graphical mapping is not required or is to be changed as per requirements.
     When data is to be filtered based on certain fields (considering File as source)
     When data is to be sorted based on certain field (considering File as source)
     When data is to be grouped based on certain field (considering File as source)
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 provides use of number of standard XPath functions that can replaces graphical mapping involving user defined java functions easily.
     File content conversion at receiver side can be avoided in case of text or html output.
     Multiple occurrences of node within tree (source XML) can be handled easily.  
     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.
I hope u got the idea.
Thanks and Regards,
Chirag

Similar Messages

  • Got Exceptions XSLT mapping  while testing the scenarion.........

    Hi
    I got the following exceptions while testing the XSLT mapping scenario...
    Hi
    I have created a XSLT mapping with java conjunction... i have created a ZIP file and i have palced java class file, java file and xsl file in that ZIP file... I have imported this archive into imported archives... but when i am testing the application i got the follwoing exceptions
    <b>Details
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
    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:304)
    at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
    at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
    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:
    DATEandTIME/Date_Time (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.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
    at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
    at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
    at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
    at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
    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.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:131)
    ... 10 more
    ; nested exception is:
    java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
    at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:182)
    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:304)
    at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
    at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
    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:
    DATEandTIME/Date_Time (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.functions.XFFunctionAvailable.execute(XFFunctionAvailable.java:24)
    at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:110)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:54)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:41)
    at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:49)
    at com.sap.engine.lib.xsl.xslt.XSLIf.process(XSLIf.java:28)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
    at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:293)
    at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:457)
    at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:391)
    at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:392)
    at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:234)
    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.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:131)
    ... 10 more
    ; nested exception is:
    java.lang.UnsupportedClassVersionError:
    DATEandTIME/Date_Time (Unsupported major.minor version
    49.0)</b>
    Please help me....
    Best Regards
    Ravi Shankar B
    Message was edited by: RaviShankar B

    Hi
    Following is my XSLT code
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:javamap="java:DATEandTIME.Date_Time">
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:param name="inputparam" />
         <xsl:template match="/">
         <MT_TARGET>
              <date>
                   <xsl:if test="function-available('javamap:getDateValue')">
                       <xsl:value-of select="javamap:getDateValue($inputparam)"/>                    </xsl:if>
              </date>
              <time>
              <xsl:if test="function-available('javamap:getTimeValue')">
                       <xsl:value-of select="javamap:getTimeValue($inputparam)"/>                       <xsl:value-of select="$test"/>
              </xsl:if>
              </time>
              <project>
                        <xsl:value-of select= "//project"/>
              </project>
         </MT_TARGET>
         </xsl:template>
    </xsl:stylesheet>
    Following is my Java Code
    package DATEandTIME;
    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;
                public static String getTimeValue(Map inputparam)
                            trace = (AbstractTrace)inputparam.get(
                                    StreamTransformationConstants.MAPPING_TRACE );
                            Date now1 = new Date();
                            SimpleDateFormat formatter = new SimpleDateFormat ("hhmmss");
                            String dateString1 = formatter.format(now1);
                            return dateString1;
    Best Regards
    Ravi Shankar B

  • 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

  • IDOC TO HTML FILE SCENARIO WITH XSLT MAPPING

    Hi ,
                 I am doing idoc to html file using xslt mapping can anyone provide me some help(material or example ) please reply soon.
    Thanks & Regards,
    Vinay Yadav

    Hi ,
    For xslt mapping the place to start is
    http://www.w3schools.com/.
    in help.
    http://help.sap.com/saphelp_nw2004s/helpdata/en/83/2200cb50d345c793336d9a1683163e/frameset.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/a4/64b93d0d4e6b3be10000000a114084/frameset.htm
    There are some blogs here which can proove to be good.
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    https://weblogs.sdn.sap.com/pub/wlg/3823 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    Regards ,
    Deepak
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping

  • FileName in ABAP XSLT Mapping

    Dear SDN,
    In an integration scenario we are using sender File Adapter and a  ABAP XSLT Mapping.
    Is there any way to get the source FileName from such mapping.  Im trying to use the adapter-specific message attributes, but it doesn't work, and I didn´t find an example, probably I and doing somthing wrong.
    regards,
    GP

    Thank you for your help,
    I just try to access the adapter-specific attibutes using:
    <xsl:stylesheet version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:key="java:com.sap.aii.mapping.api.DynamicConfigurationKey">
    <xsl:variable name="filename"  select="key:create('http://sap.com/xi/XI/System/File', 'Directory')" />
    </xsl:stylesheet>
    but the following error raised:
    <SAP:Stack>Error while calling mapping program YXSLT_TEST (type Abap-XSLT, kernel error ID CX_XSLT_RUNTIME_ERROR) Call of unknown function</SAP:Stack>
    have you had this situation?

  • XSLT Mapping error

    Hi All
    I am working on PI 7.1 where I have customized standard XSLT mapping according to my requirement.
    I have to add 2 fields in the standard data type ReplenishmentOrder_Notfication from SNC 7.0 SWCV.
    In standard scenario once IDOC STPPOD.DELVRY03 is released from ECC the PI scenario send this to SNC Proxy ReplenishmentOrderNotification_In.
    In my requirement I have to send XML file generated from IDOC to one of Application Folder. I have customized data type, message type, operation mapping, service interface by coping standard things.
    So the changes I have done in standard XSLT mapping are just changin name of data type and not added any mapping for the two new fields I have added to the data type as its not require at the moment.
    When I am running test I am getting follwoing error in Trace. Here please notice that its mentioning standard xslt mapping program name only though on the top you see customized names.
    Please give your inputs to resolve the issue. Thanks.
    Operation Mapping
    StppodDelvry03_MT_ReceivedDeliveryNotification_01
    Name
    StppodDelvry03_MT_ReceivedDeliveryNotification_01
    Namespace
    http://sap.com/xi/SNC/Global
    Runtime error
    TransformerException occurred during XSLT mapping StppodDelvry03_ReceivedDeliveryNotification_01 (http://sap.com/xi/SNC/Global, 46c20a71-248e-11dc-c4be-dd500a115642, -1)
    <Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace> <Trace level="1" type="T">Interface Mapping http://sap.com/xi/SNC/Global StppodDelvry03_ReceivedDeliveryNotification_01 </Trace> <Trace level="1" type="T">TransfromerException during XSLT processing: Thrown: javax.xml.transform.TransformerException: com.sap.engine.lib.xml.parser.NestedSAXParserException: Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(, row:1, col:8)(, row=1, col=8) -&gt; com.sap.engine.lib.xml.parser.ParserException: XML Declaration not allowed here.(, row:1, col:8) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251) at com.sap.aii.ib.server.mapping.execution.AbstractMappingTransformer.transform(AbstractMappingTransfor
    Edited by: Amol on May 22, 2009 3:26 PM

    Hi Amol
    for the error CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV
    <Trace level="1" type="B">CL_MAPPING_XMS_PLSRV3-ENTER_PLSRV</Trace> <Trace level="1" type="T">
    just check this Thread issue is solved by restarting  the service verifySenderAgreement
    at thread
    Re: Wrong Sender Agreement
    Thanks
    Abhishek

  • XSLT mapping queries.

    Hi,
    I have a scenario in which I need to post the data in JMS queue from a proxy call.
    [Proxy>PI>JMS]. Here the MQ message is fed to a web application.
    The scenario contains two mapping viz message and XSLT mapping.
    The first one is message mapping and then XSLT is called.
    Now in the XSLT mapping CDATA tag is called to skip the xml parsing and send to JMS queue for HTML output in web application.
    My doubt is how can I achieve table formatting from PI. Few options can be
    1) incorporate xsl in CDATA tag of XSLT mapping for HTML tag for table format?
    2) instead of JMS queue, should I need to post in HTTP receiver directly?
    3) Is it the xsl need to add in Web application side for the sending xml from PI?
    Please help in my understanding.
    Thanks
    PV.

    Hi,
    Try with Java Proxy,you can directly update data in to web application or if you web application team ready to accept data in the form of web service then you no need to generate output in the form of HTML.
    Regards,
    Raj

  • XSLT Mapping Related

    Hello Experts,
    In a scenario we are sending Purchase orders and Purhase Order change from SAP to SNC through XI.
    Currently we are using Orders03 message type for IDOC.
    The requirement is to use Orders05 message type for IDOC.
    What changes would be necessary if we are to use Orders05 instead of Orders03
    - On SAP side,
    - in the XSLT mapping, and
    - On XI side.
    Thanks in advance,
    Suraj

    Hi,
    What changes would be necessary if we are to use Orders05 instead of Orders03
    - On SAP side,
    ==> you need to check your distribution model (BD64) and partner profiles (WE20) and adjust the settings there according to ORDERS05.
    - in the XSLT mapping, and
    ==> This depends on what your XSLT looks like. If there are any ORDERS03 specific statements, etc. or the structure is "heavily" changed from ORDERS03 to ORDERS05 you need to adjust the XSLT accordingly.
    - On XI side.
    ==> You need to import the ORDERS05 IDoc Metadata to XI Abap stack (IDX2). Also in IR you need to import the new IDoc, create message type and assign it to your mapping.
    Regards,
    Kai

  • XSLT Mapping issue

    Hello Friends,
    I have got one scenario in which XSLT mapping is used.The third party file is mapped to IDoc INVOIC01.After the development of the mapping code,I got the result as below in the XML Spy
    <E1EDP01 SEGMENT="1">* first segment
                   <POSEX>0</POSEX>
                   <E1EDP02 SEGMENT="1"> Subsegment1
                        <QUALF>001</QUALF>
                   </E1EDP02>
                   <E1EDP04 SEGMENT="1"> Subsegment2
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>6.660</MWSBT>
                   </E1EDP04>
                   <E1EDP04 SEGMENT="1">Subsegment2
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>13.330</MWSBT>
                   </E1EDP04>
              </E1EDP01>
              <E1EDP01 SEGMENT="1">
                   <POSEX>0</POSEX>
                   <E1EDP02 SEGMENT="1">
                        <QUALF>001</QUALF>
                   </E1EDP02>
                   <E1EDP04 SEGMENT="1">
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>6.660</MWSBT>
                   </E1EDP04>
                   <E1EDP04 SEGMENT="1">
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>13.330</MWSBT>
                   </E1EDP04>
              </E1EDP01>
    But the expected result is as below:
                                <E1EDP01 SEGMENT="1">
                   <POSEX>0</POSEX>
                   <E1EDP02 SEGMENT="1">
                        <QUALF>001</QUALF>
                   </E1EDP02>
                   <E1EDP04 SEGMENT="1">
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>6.660</MWSBT>
                   </E1EDP04>
              </E1EDP01>
              <E1EDP01 SEGMENT="1">
                   <POSEX>0</POSEX>
                   <E1EDP02 SEGMENT="1">
                        <QUALF>001</QUALF>
                   </E1EDP02>
                   <E1EDP04 SEGMENT="1">
                        <MWSKZ></MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>13.330</MWSBT>
                   </E1EDP04>
              </E1EDP01>
    ie For each E1EDP01 segment,there should be only one E1EDP04 segment.
    Please help me in this regard how to code the xslt map for this...
    Thank you
    Sam
    Edited by: Guest on Apr 4, 2008 1:00 PM

    Hello Ashish,
    Thanks for your reply.
    The third party system is th sender and sends XSD file which contains header detail (with multiple tax details in it) and multiple line Item details (which contains one tax details per lineitem).
    ie if there are two line items then each line item should have one tax details (1st tax detail in header should match with 1st tax details of linitem, and 2nd should match with second line item tax details..etc)
    <?xml version="1.0" encoding="UTF-8"?>
    <INVOIC01 xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
         <IDOC BEGIN="1">
              <E1EDK04 SEGMENT="1">
                   <MWSKZ>VAT</MWSKZ>
                   <MSATZ>22.00</MSATZ>
                   <MWSBT>6.660</MWSBT>
              </E1EDK04>
              <E1EDK04 SEGMENT="1">
                   <MWSKZ>VAT</MWSKZ>
                   <MSATZ>22.00</MSATZ>
                   <MWSBT>13.330</MWSBT>
              </E1EDK04>
              <E1EDP01 SEGMENT="1">
                   <POSEX>0</POSEX>
                   <E1EDP04 SEGMENT="1">
                        <MWSKZ>VAT</MWSKZ>
                        <MSATZ>22.00</MSATZ>
                        <MWSBT>6.660</MWSBT>
                   </E1EDP04>
              </E1EDP01>
              <E1EDP01 SEGMENT="1">
                   <POSEX>0</POSEX>
                   <E1EDP04 SEGMENT="1">
                                   <MWSKZ>VAT</MWSKZ>
                                   <MSATZ>22.00</MSATZ>
                                   <MWSBT>13.330</MWSBT>
                   </E1EDP04>
              </E1EDP01>
         </IDOC>
    </INVOIC01>
    I thinks this is like a copying th header segment details in the item details.
    Please help me in ths regard
    Thank you
    Sam

  • XSLT mapping to retrieve FileName from FILE SENDER adapter

    Hi
    I have an File Sender adapter scenario where I have switched on Adapter-specific message attributes (FileName).
    In my XSLT mapping program I need to RETRIEVE the filename and map it. Can anyone help please?
    Thx in advance

    Hi Bohamo
    Refer the following link.It provides the required solution for you.
    http://help.sap.com/saphelp_nwpi71/helpdata/EN/83/2200cb50d345c793336d9a1683163e/frameset.htm
    Thanks
    Ram

  • XSLT mapping issue in parent child relation

    Hi Guys,
    i have one XSLT mapping issue. Mapping scenario is from IDoc to file.
    IDoc structure is as below
    <ZLOIPRO1>
      <E1AFKOL>
         <A></A>
         <B></B>
         <E1RESBL>
             <MATNR>1</MATNR>
             <CHARG>1</CHARG>
             <ZSBL>
                 <MTART>ABC</MTART>
             </ZSB>
         </E1RESBL>
         <E1RESBL>
             <MATNR>2</MATNR>
             <CHARG>2</CHARG>
             <ZSBL>
                 <MTART>ZHA1</MTART>
             </ZSB>
         </E1RESBL>
         <E1RESBL>
             <MATNR>3</MATNR>
             <CHARG>3</CHARG>
             <ZSBL>
                 <MTART>ZHA1</MTART>
             </ZSB>
         </E1RESBL>
      </E1AFKOL>
    </ZLOIPRO1>
    As you can see 'E1RESBL' is repeatative. Now my issue is i need to select 'MATNR' and 'CHARG' from 'E1RESBL' segment when first occurance of 'ZSBL/MTART' with value 'ZHA1' appears. i.e. my output would be MATNR = 2 and CHARG = 2.
    I hope i am clear. Please let me know if any solution for this.

    Hi,
    Try this
    <xsl:if test="./ZSBL/MTART == 'ZHA1'">
    <xsl:for-each select="./E1RESBL">
      <MATNR>
       <xsl:value-of select="./MATNR"/>
      </MATNR>
      <BATCH>
       <xsl:value-of select="./CHARG"/>
      </BATCH>
    </xsl:for-each>
    </xsl:if>
    You might need to do some changes in the above.
    Thanks,
    Prakash

  • XSLT Mapping on ABAP Engine

    Hi All,
    I am trying to implement an XSLT mapping on the ABAP Engine. I went to the Transformation Workbench(SE80).I have created 4 levels of packages (Structure->Main->then 2 more levels) and  included Package Interface SAI_TOOLS in 'Use Accesses' tab.
    I have also set com.sap.aii.repository.mapping.additionaltypes=R3_ABAP|Abap-class;R3_XSLT|XSL (ABAP Engine)
    in the Exchange Profile.
    Now I want to create the tranformation (ST or XSLT) so that I can see it in the Repository.
    At which package level(1st to 4th), should I right-click and go to 'Create->More->Transformations' so that I can see this XSLT  Mapping program in the repository?
    I have followed all the links from help.sap.com but I am unable to get the desired result, i.e. see my Mapping in the Repository when I choose Mapping Program of type  'XSL->ABAP Engine', from the drop-down box in Interface Mapping.
    Kindly help.
    Regards,
    Puloma.

    Hi Naveen,
    I did as you told, i.e. keyed in the name of the ABAP Transformation program (mapping) name.I have not written any namespace for the Mapping program in the Interface Mapping Design, just the Program name.
    When I execute my mapping from se80, it works perfectly.
    I created this Transformation program at the topmost level (i.e. Structure package level).
    But when I execute my scenario, I get the following runtime error in sxmb_moni:
    Error in mapping program zpc_transfom2 (type R3_XSLT, kernel error ID UNCAUGHT_EXCEPTION).
    What is wrong? Did I create the transformation program at the wrong level?
    Regards,
    Puloma.

  • Need Filename in XSLT Mapping.

    Hi ,
    I am doing File to IDOC scenario.
    I am using XSLT mapping.
    My Target fielld is having  " File Name " field.
    I need to pass the source file name to that field.
    I am using XSLT Mapping.
    How to call the Filename and map the value to that field in XSLT.
    Regards,
    Jayasimha Jangam

    This is one of the better part of the online help:
    http://help.sap.com/saphelp_nw04/helpdata/en/43/03fe1bdc7821ade10000000a1553f6/frameset.htm
    Just replace 'Directory' with 'FileName'.
    I have used that, it works fine.
    Regards
    Stefan

  • How to use standard java functions in a XSLT mapping

    Hi All,
    I wish to use a standard java function in a XSLT mapping, The issue is either i am giving incorrect namespace which is used to invoke the function or the signature of the function call is incorrect, I have read all the links in http://help.sap.com, and i know <b> one can enhance a XSLT mapping by writing one's own java code and thereby using java standard functions </b>, but the requirement is such that i need to try and use java standard function in XSLT mapping itself.
    Please refer to the sample code below:
    <?xml version="1.0" encoding="UTF-8"?>
      <xsl:stylesheet version="1.0"  
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:javamap="java:java.lang.String">
    <xsl:output method="text"/>
    <xsl:template match="/">
    <xsl:variable name="input" select="Title">
    <xsl:if test="function-available('javamap:toUpperCase')">
    <xsl:value-of select="javamap:toUpperCase($input)"/>
    </xsl:if>
    Author:<xsl:value-of select="Author"/>
    </xsl:template>
    </xsl:stylesheet>
    error encountered is: Illegal number or type of arguments.
    please reply if you have tried a similar scenario in SAP XI.
    Thanks & Regards,
    Varun

    Hi Varun,
        First of all i want to tell you that as per the documentation you can only call the static function inside xslt mapping. Your toUpperCase method is a non static function.
    What i am getting is that you have an element called Author and you want to convert its value into uppercase.
    you can write your own user defined function which is static.
    Signature of your java method :
    public static string toUpperCase(String Author,Map inputparam)
    try this xslt map.
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:javamap="java:JavaProgram">
         <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
         <xsl:param name="Author">
                 <xsl:value-of select="//Author_name"/>
         </xsl:param>
         <xsl:param name="inputparam" />
         <xsl:template match="/">
         <Author>
                 <xsl:if test="function-available('javamap:toUpperCase')">
                  <xsl:value-of select="javamap:toUpperCase($Author,$inputparam)"/>
                 </xsl:if>
         </Author>
         </xsl:template>
    </xsl:stylesheet>
    Hope this will work.
    Thanks and Regards
    Vishal Kumar

  • Use of Orders05 Interface mapping & XSLT mapping file for Orders03 IDOC

    Hello Experts,
    In a scenario we are sending Purchase orders and Purhase Order change from SAP to SNC through XI.
    Currently Orders03 IDoc is used and standard mapping for Orders03 XSLT is used.
    Now the requirement is to use the same IDOC (Orders03) but
    - XSLT mapping (OrdersOrders05_ReplenishmentOrderNotification) and
    - Interface Mapping (OrdersOrders05_ReplenishmentOrderNotification_01) of Orders05.
    What changes would be necessary
    - On SAP side,
    - in the XSLT mapping, and
    - On XI side.
    Thanks in advance,
    Suraj

    Hi Suraj,
    First compare ORDERS03 IDOC and ORDERS05 IDoc structures,if both structures are same then u no ned to chnage the XSL it will work fine.
    If any chnages in ORDERS05 Idoc then u have to adjust XSLT as per ORDERS05 IDOC.
    test interface mapping first and let me know if any error.
    Regards,
    Raj

Maybe you are looking for

  • Link does not open

    I can not open links sent in my email. The only option I get is by right clicking on the link and a box comes up with open link in browser" However this just opens up Chrome on a blank page. Any help appreciated. Thanks Below is my configuration Appl

  • Cannot connect my Windows7 64 to Aitport Extreme

    Hi, I just switched to Charter internet service and they no longer provide WiFi.  I connected my Airport extreme to their cable modem and my MBP connects perfecly. However, when I try to connect my windows 7 laptop or my Nokia Lumia 900 windows phone

  • Bottom Line: Does iWeb '08 Work?

    Like many others, I bought and immediately installed 08 the day it came out. I quickly converted my earlier site to 08, and then everything went downhill. It got to the point where everything I wanted to do needed some sort of workaround. I grew frus

  • ArrayLists & Database Problems

    I've created a program using Swing. My program starts up and loads data from my access database into ArrayLists. I then work on these ArrayLists in my program, adding and removing data. When i've finished, i have a save button which deletes all the d

  • What is the best program to run on my MacBook Pro to clean it up?

    can anyone tell me what the best program to run on a MacBook Pro to clean it up, make it run faster?