XSLT Mapping code

i want to produce correct output, which is mentioned in the the blog /people/prasadbabu.nemalikanti3/blog/2006/03/30/xpath-functions-in-xslt-mapping
i think there was an error in the XSLT coding.
i modified the code as follows:
<xsl:transform version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:sap="http://www.sap.com/sapxsl"
  xmlns:p2="urn://Mapping">
<xsl:template match="/">
<p2:MT_STUD>
<Records>
        <xsl:for-each select="p2:MT_STUD_SORC/Records/Student_ID">                    
            <Student_ID>
            <Name>
                 <xsl:value-of select="concat(concat (p2:MT_STUD_SORC/Records/Student_ID/Fname,' '),p2:MT_STUD_SORC/Records/Student_ID/Lname)"/>
            </Name>
            <Year_Birth>
                <xsl:value-of select="substring(p2:MT_STUD_SORC/Records/Student_ID/DOB,1,4)"/>
                               </Year_Birth>
                               <Month_Birth>
                               <xsl:value-of select="substring(p2:MT_STUD_SORC/Records/Student_ID/DOB,5,2)"/>
                               </Month_Birth>
                               <Date_Birth>
                               <xsl:value-of select="substring(p2:MT_STUD_SORC/Records/Student_ID/DOB,7,8)"/>
                               </Date_Birth>
                               <Marks>
                                      <Science>
                                      <xsl:value-of select="p2:MT_STUD_SORC/Records/Student_ID/Marks/Science"/>
                                      </Science>
                                      <Maths>
                                      <xsl:value-of select="p2:MT_STUD_SORC/Records/Student_ID/Marks/Maths"/>
                                      </Maths>
                                      <Language>
                                      <xsl:value-of select="p2:MT_STUD_SORC/Records/Student_ID/Marks/Language"/>
                                      </Language>
                                       <Total_Marks>
                                       <xsl:value-of select="sum(p2:MT_STUD_SORC/Records/Student_ID/Marks/Sciense, p2:MT_STUD_SORC/Records/Student_ID/Marks/Maths, p2:MT_STUD_SORC/Records/Student_ID/Marks/Language)"/>
                                       </Total_Marks>
                             </Marks>
                        </Student_ID>
       </xsl:for-each>
                      <No_Students>
                      <xsl:value-of select="count(p2:MT_STUD_SORC/Records/Student_ID)"/>
                      </No_Students>
        </Records>
       </p2:MT_STUD>
  </xsl:template>
</xsl:transform>
here inthis i got two errors, one is SUM function have improper arguments,
and the second one is, i am unable to produce the multiple students at the receiver side.
can any body modify and correct this code?
Thanks ,
kumar

hi this is the input file at interface mapping testing:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:MT_STUD_SORC xmlns:ns0="urn://Mapping">
   <Records>
      <Student_ID>
         <Fname>a</Fname>
         <Lname>s</Lname>
         <DOB>19961203</DOB>
         <Mail_ID>w</Mail_ID>
         <Marks>
            <Science>23</Science>
            <Maths>34</Maths>
            <Language>45</Language>
         </Marks>
      </Student_ID>
      <Student_ID>
         <Fname>we</Fname>
         <Lname>op</Lname>
         <DOB>19961203</DOB>
         <Mail_ID>w</Mail_ID>
         <Marks>
            <Science>23</Science>
            <Maths>34</Maths>
            <Language>45</Language>
         </Marks>
      </Student_ID>
   </Records>
</ns0:MT_STUD_SORC>
but i am not able to see the multiple no of students at out put.
and it is saying that "sum" function have improper arguments.
Thanks,
kumar
Edited by: kumar kumar on Mar 16, 2009 2:20 PM
Edited by: kumar kumar on Mar 16, 2009 2:22 PM

Similar Messages

  • XSLT mapping code to replace ns1: tag as plm: in XML file in PI mapping

    Hi
    I am sending XML file to HTTP server as below format
    <?xml version="1.0" encoding="UTF-8" ?>
       - <ns1:Responses xmlns:ns1="http://">
    -    <ns1:Response Application="SAP">
        <ns1:field1>12345</ns1:field1>
        <ns1:field2>abc</ns1:field2>
       - <ns1:Items>
        <ns1:doc></ns1:doc>
      </ns1:Items>
      </ns1:Response>
      </ns1:Responses>
    i hve to replace <ns1: as <plm:, i could able to delete <ns1: tag uisng XSLT mapping(in sdn), but i dont know how to add tag with <plm:
    Hi XSLT experts/if any has come across this requirment, please send XSLT code to add tag in XML.
    Regards,
    Rajesh

    No need for XSLT, just use the XMLAnonymizerBean module in your receiver communication channel.
    http://help.sap.com/saphelp_nw70/helpdata/EN/45/d169186a29570ae10000000a114a6b/frameset.htm
    /people/stefan.grube/blog/2007/02/02/remove-namespace-prefix-or-change-xml-encoding-with-the-xmlanonymizerbean
    If your receiver CC cannot process modules (ABAP receiver, for example), in your XSLT just define the target namespace with the desired prefix.
    Regards,
    Henrique.

  • XSLT mapping code for N:1 mapping

    Hi Guys,
    I have got one scenario to collect 5 files to merge as one. To this scenario I want to use N:1 mapping. If I am not wrong, with XSLT mapping is easiest way to do this, please correct me if I am wrong. Can any one provide some links or code to merge these files into one.
    Thanks in advance.
    San

    what is correlation here?
    I have three messages coming into BPM....now all the three messages should have a field (any field) whose value will be the same in all the messages.
    Ex:
    <Message1>
    <Name>SAP</Name>
    <ID>40</ID>
    </Message1>
    <Message2>
    <Name>SDN</Name>
    <ID>40</ID>
    </Message2>
    <Message3>
    <Name>FORUM</Name>
    <ID>40</ID>
    </Message3>
    Now to correlate the above messages, the field ID would be used as it has the same value in all the messages.
    How does message mapping looks for the following messages
    In your BPM you will have a Transformation step....the mapping included here will have three source messages (File1, File2, File3) and there will be a single target message which will have the below structure:
    <ROOT>
    <OUTPUT> ...... 0..unbounded
    </ROOT>
    OUTPUT node of the target should be duplicated (right-click --> duplicate ... in message mapping).....do it twice so that you will have three OUTPUT nodes.
    Now each target-OUTPUT node should be mapped to the source OUTPUT node, respectively.
    Regards,
    Abhishek.

  • Exception while running xslt mapping

    Hi all,
    I am doing an xslt mapping to get an html content . Within xslt mapping code i am using "&nbsp" to add white space . I am using Stylus Studio to run the mapping , when i run it in Stylus , its executing fine.
    But once I import this xslt mapping into XI & run it from Interface mapping , i am getting (The entity "nbsp" was referenced, but not declared.) excpetion.
    I have declared <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> ]>  as well in my mapping ...even then i am getting the error.
    Please provide ur inputs
    Regards
    Vinay P

    Hi Vinay,
    Can you please share the exact line in XSLT?
    If I may suggest, you can use a simple way like <xsl:value-of select="concat('txt1',' ','txt2')"/> or simply <xsl:text>text1 text2<xsl:text>
    If this does not address, please provide more details on the problem statement.
    Thanks and Regards,
    Sarath...

  • Value Mapping using XSLT mapping

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

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

  • Simple XSLT mapping fails

    Dear,
    I'm busy creating XSLT mappings and all looks good, except for one. That one keeps failing and I just do not see why.
    I tried different things, but the target structure remains empty.
    Incoming message
    After the mapping
    XSLT mapping code
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                                  xmlns:ns1=<namespace>
                                  xmlns:ns0=<namespace>
    <xsl:template match="/">
    <ns1:MessageType>
    <UserId><xsl:value-of select="*/*/AuditUser"/></UserId>
    <OrganisationId><xsl:value-of select="*/*/MessageType/OrganisationId"/></OrganisationId>     
    <OUIdArray>
    <xsl:for-each select="*/*/MessageType/OUIdArray/OUId">
    <OUId><xsl:value-of select="*/*/OUIdArray/OUId"/></OUId>
    </xsl:for-each>
    </OUIdArray>
       <DateFrom><xsl:value-of select="*/*/MessageType/DateFrom"/></DateFrom>
       <DateUntil><xsl:value-of select="*/*/MessageType/DateUntill"/></DateUntil>
    </ns1:MessageType>
      </xsl:template>
    </xsl:stylesheet>
    Anyone a suggestion?
    Thanks a lot.
    Dimitri

    Hi Dimitri,
    In your XSL i noticed that you have
    <OUId><xsl:value-of select="*/*/OUIdArray/OUId"/></OUId>
    instead of
    <OUId><xsl:value-of select="*/*/MessageType/OUIdArray/OUId"/></OUId>
    However, i would do in this way:
    With this source  XML:
    <?xml version="1.0" encoding="UTF-8"?>
    <root>
    <OrganisationID> 1000</OrganisationID>
    <OUIdArray>
    <OUId>1 </OUId>
    <OUId>2 </OUId>
    <OUId>3 </OUId>
    </OUIdArray>
    <DateFrom>01.01.2010</DateFrom>
    </root>
    I would use this code XSL:
    <OUIdArray>
                    <xsl:for-each select="/root/OUIdArray/OUId">
                                    <OUId>
                                                    <xsl:value-of select="."/>
                                   </OUId>
                    </xsl:for-each>
    </OUIdArray>
    It's simplier under my point of view.
    Hope this helps.
    Regards.

  • Regarding XSLT Mapping

    HI friends,
                   I need the xslt mapping code for the following input. my input is i a have different fields in employee table   in source side i need all the source fields bonded into a single string i target side.please send me the code if anybody have.

    Hi Uday
    The following structures i have used
    1. First you have to get the XML structures from the message mapping.
    Source Structure having like Name,City,Ph
    <?xml version="1.0"?>
    <TBL1>
         <Record>
              <Name>AAAA</Name>
              <City>BBBB</City>
              <Ph>123456</Ph>
         </Record>
    </TBL1>
    Target Structure having only one tag.
    <?xml version="1.0"?>
    <TBL2>
         <Record>
              <Name_City_Ph>AAAA</Name_City_Ph>
         </Record>
    </TBL2>
    Final XSLT mapping for the above structures.
    <?xml version='1.0' ?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
    <TBL2>
    <Record>
    <Name_City_Ph>
    <xsl:value-of select="concat(TBL1/Record/Name,TBL1/Record/City,TBL1/Record/Ph)"/>
    </Name_City_Ph>
    </Record>
    </TBL2>
    </xsl:template>
    </xsl:stylesheet>
    If you use Stylus Studio the XSLT mapping is very easy,  XSLT code automatically generates by the Stylus Studio.
    Thanks.
    Satish.

  • Java code for calling xslt mapping in module?

    Hi,
    We have 2 mapping(xslt) in IR
    source->cannonical and cannonical->target
    we want to remove source->cannonical mapping and want to put that in MODULE of communication channel.
    My problem is how to call xslt mapping using java code and we done value mapping their. Did that vallumapping will work in module..
    waiting for responce..its an urgent task..
    thanq
    krishna

    You can use the MessageTransformBean to run the XSLT in the adapter framework:
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3823 [original link is broken] [original link is broken] [original link is broken]
    I do not know, if the value mapping works here. Maybe you just give a try.
    Regards
    Stefan

  • Need XSLT mapping or Java code?

    Hi All,
    I have a scenario JMS to Proxy.At sender side i will get complete XML payload in the single string.
    Root
      XMLpayload
    in XMLpaload i will get complete data in XML format.
    receiver side the structure is like this.
    Root
      Header       Header occurence is only once
         hr1
         hr2
         hr3
      Item           Item ocurence will be 0 ..U
         item1
         item2
    I need the code for XSLT mapping or for JAVA code that can be written in mapping.
    Regards,
    Phani

    Hi,
      could you please let me know, what is your source data type.
      by using node functions like split value , collapse context and foramt example.
    we can get th out put i the required format.
    pls let me know, your source and target data type.
    wamr regards
    mahesh.

  • XSLT mapping Help Required.

    XSLT mapping Help Required.
    Hi Experts,
    I am New to XSLT Mapping. I am practising the below Example:
    InputXML File:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="Persons111.xsl"?>
    <ns0:MT_XSLT_Source xmlns:ns0="http://XYZ.com/gen">
    <Person>
    <FirstName>Anshul</FirstName>
    <LastName>Chowdhary</LastName>
    <Gender>Male</Gender>
    <Address>
    <Street>2nd Main</Street>
    <Houseno>83/b</Houseno>
    <City>Mysore</City>
    </Address> </Person>
    </ns0:MT_XSLT_Source>
    XSL StyleSheet File:
    <?xml version='1.0' encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://XYZ.com/Gen"
    Xmlns:ns1=”http://XYZ.com/Test”>
    <xsl:template match="/">
    <ns1:MT_XSLT_Target>
    <Title> <xsl:value-of select="ns0:MT_XSLT_Source/Person/Gender"/> </Title>
    <Name> <xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/FirstName,' '), ns0:MT_XSLT_Source/Person/LastName)"/>
    </Name>
    <Street> <xsl:value-of select="concat(concat(ns0:Mt_XSLT_Source/Person/Address/Houseno,' '),
    ns0:Mt_XSLT_Source/Person/Address/Street)"/> </Street>
    <City> <xsl:value-of select="ns0:Mt_XSLT_Source/Person/Address/City"/> </City>
    </ns1:MT_XSLT_Target>
    </xsl:template>
    </xsl:stylesheet>
    The Desired Output shuold be:
    <?xml version="1.0" encoding="UTF-8"?>
    <ns1:MT_XSLT_Target xmlns:ns1="http://XYZ.com/Test">
    <Title>Male</Title>
    <Name>Anshul Chowdhary</Name>
    <Street>83/b 2nd Main</Street>
    <City>Mysore</City>
    </ns1:MT_XSLT_Target>
    I have refered the xsl in xml and i am getting the below Oupt in a Single line like this:
    Anshul Chowdhary Male 2nd Main 83/b Mysore
    I am Unable to display in Target XML Fomrat as shown above. Please check and do the needful.
    Regards,
    GIRIDHAR

    Hi,
    I have used below for testing.
    Input xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="Persons111.xsl"?>
    <ns0:MT_XSLT_Source xmlns:ns0="http://XYZ.com/gen">
    <Person>
    <FirstName>Anshul</FirstName>
    <LastName>Chowdhary</LastName>
    <Gender>Male</Gender>
    <Address>
    <Street>2nd Main</Street>
    <Houseno>83/b</Houseno>
    <City>Mysore</City>
    </Address> </Person>
    </ns0:MT_XSLT_Source>
    xsl code:
    <?xml version='1.0' encoding="UTF-8"?> 
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://XYZ.com/gen" 
        xmlns:ns1="http://XYZ.com/Test"> 
        <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
        <xsl:template match="/"> 
            <ns1:MT_XSLT_Target> 
                <Title> <xsl:value-of select="ns0:MT_XSLT_Source/Person/Gender"/> </Title> 
                <Name> <xsl:value-of select="concat(concat(ns0:MT_XSLT_Source/Person/FirstName,' '), ns0:MT_XSLT_Source/Person/LastName)"/> 
                </Name> 
                <Street> <xsl:value-of select="concat(concat(/ns0:MT_XSLT_Source/Person/Address/Houseno,' '), 
                    /ns0:MT_XSLT_Source/Person/Address/Street)"/> </Street> 
                <City> <xsl:value-of select="/ns0:MT_XSLT_Source/Person/Address/City"/> </City> 
            </ns1:MT_XSLT_Target> 
        </xsl:template> 
    </xsl:stylesheet>
    For testing in PI ,change the extension from .txt to .xsl and zip it and upload into PI as an imported archive .
    Regards
    Venkat

  • 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, how can I include a Runtime Constants in target message

    Hi, I would like in my XSLT mapping, to have an attribute include the MessageID.
    From my understanding of the online help [http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm], I have the following code in my XSL:
                   <xsl:param name="MessageId" />
                   <xsl:attribute name="filename">Output_<xsl:value-of select="$MessageId"/>.xml</xsl:attribute>
    But for now the result is to have a filename attribute that only contains: "Output_.xml" as if the $MessageId is empty.
    Anyone experienced successfully using one of those runtime constants with XSLT mapping ?
    Cheers,
    greg

    Hi, found the answer of why it was not running: I'm in a transform step of a BPM:
    For more info check this thread:
    [/message/435521#435521 [original link is broken]|/message/435521#435521 [original link is broken]]

  • XSLT Mapping with Java class not working in Integration Repository

    Hi,
    I have an XSLT mapping program with Java enhancement and I was able to successfully tested it in Stylus Studio. However, when I imported the Java class and the xslt program in Enterprise Service Builder and tested it, my program does not compile.
    Here is the error message: "Transformer Configuration Exception occurred when loading XSLT mapping_temp.xsl; details: Could not compile stylesheet".
    My java program is in a zip file containing SOAPHeaderHandler.java and SOAPHeaderhandler.class. My Java has a package com.nga.xslt.
    Here is the declaration of my Java class in the XSLT: xmlns:javamap="java:com.nga.xslt.SOAPHeaderHandler"
    It seems that it could not read the java class. Can you please advice what is wrong?

    Hi ,
    select XMLTOOLKIT option in Operation mapping and execute it.
    I am not sure we can call java program in XSLT Program,but alternative is copy the code and use it in XSLT mapping it self,that means your XSLT program will become with JAVA extensions.
    then in Operation mapping level select SAPXMLTOOL kit option and execute it. i hope it will work. if it is not working then you have deploy some JAXP files on server,because the way execution of XSLT Mpaping program got changed,like when eve you executing XSLT with extnasions( if you are not using XMLTOOL kit option) then you have to use latest version of JAXP.JDK files.
    Regards,
    Raj

  • 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

  • XSLT mapping with Java helper classes

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

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

Maybe you are looking for

  • Why can't i open my raw files in photoshop cc i use a canon 450D

    I am a photography student and this has been winding me up now for about a month. the thing is its used to open my raw files with no bother and now it won't, I've downloaded plug ins and everything and its still not letting me open my raw files. does

  • Firefox will not open at all. Google Chrome main browser.

    Google Chrome my main web browser with Comcast as home page. Now Firefox will not open at all. What do I do. Delete Firefox and reinstall is what I think?

  • Read only external drive

    I'm trying to copy some photos from my Macbook Pro to an external drive, but the drive is coming up as read only. When I plug it into a PC its fine and I've amended the properties to share all. Any ideas? I could copy them to a memory stick a couple

  • 16:9 DVDs

    Hi, newcomer with only a couple of weeks worth of DV knowlegde needs a bit of advice please. My question relates to DVDs containing 16:9 widescreen footage. My workflow involves filming 16:9 footage on a Sony Z1 in HDV and downconverting in the camer

  • How can I turn off the function that touch the top of the screen then turn to the top of the page automatically

    I know the I pad have a function that when you touch the top of the screen, the page will turn to the top automatically. But this function always make trouble. Especially when you are reading some long papers. I would like to turn it off. What can I