ABOUT XSLT MAPPING
HI
to all,
i dn;t have any knowlege on xlst mapping ,any one can help me ? where can i use ? what are the steps?
Thanks&Regards
upendakumar
Hi ,
Start with these.....
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
Regards,
Similar Messages
-
XSLT mapping throws error in XI, but not in XMLSPY
Hi everybody,
I got a really complex XSLT mapping. It works fine in XMLSPY.
But when I execute the mapping in XI, I get the following error:
Error during XSLT Transformation: Could not load stylesheet.com.sap.engine.lib.xml.util.NestedException: Operator or ')' expected.
I asume there is a special character that XI cannot execute.
has anybody an idea of finding this character?
Thanks, regards MarioHi Mario
Check your input data, and also try to see test in Interface mapping test tab,
you will get an idea about the input is correct or not
see the below links..
<u><b>XSLT Mapping</b>[/u
/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
<u><b>XSLT Mapping with java enhancement</b></u>
/people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
/people/r.eijpe/blog/2005/11/04/using-abap-xslt-extensions-for-xi-mapping - Using ABAP XSLT Extensions for XI Mapping
Cheers..
Vasu
<i>** Reward Points if found useful **</i> -
How to Count schedule lines in IDoc ORDERS05 using XSLT Mapping
Hi Experts,
In a Scenario where we are sending Purchase order (ORDERS05) to SAP SNC using XSLT Mapping,
where in we need to count the no. of schedule lines against the Purchase Order line.
As in Schedule line segment there is no such provision, so it needs to be handle in XSLT mapping to count the schedule lines.
Can you all please guide me how to go about the same.
Regards,
Nitin PHi Satish,
Thank you very much for the reply,
as there is only Quantity and other information is maintained against schedule lines how we can count the schedule line repeatation against PO line ? Is that very simple as you suggested or some other consideration also needs to be taken.
Please clarify the same and let me also know if there are some standard documents also for the same.
Regards,
Nitin P -
Graphical Mapping Vs XSLT mapping Vs Java Mapping Vs ABAP Mapping
Hi Experts,
I have a question regarding different message mapping options available in XI namely
Graphical Mapping
XSLT mapping
Java Mapping
ABAP Mapping
Q1: Which amoung the above mappings is the best and why?
Q2: On what cases Graphical, XSLT, Java and ABAP Mapping should be used?
Q3: Is it true that graphical and XSLT mappings are converted into Java class internally?
Kindly help!
Thanks
Gopal
Message was edited by:
gopalkrishna baligaHi,
There is no hard and fast rule for using the mapping techniques.
Graphical Mapping is used for simple mapping cases. When, the logic for your mapping is simple and straight forward and it does not involve mult hiearchical mapping requirement. and context handling.
Java and XSLT mapping are used when graphical mapping cannot help you.
When the choice is between Java And XSLT, XSLT is simpler than java mapping and easier. But, it has its drawbacks. XSLT can lead to a bad perfrormance if the Source XML is huge.
Java Mapping uses 2 types of parsers. DOM and SAX. DOM is easier to use with lots of classes to help you create nodes and elements, but , DOM is very processor intensive.
SAX parser is something that parses your XML one after the other, and so is not processor intensive. But, it is not exaclty easy to develop either.
For further info on each of the mapping, refer to these links,
Graphical Mapping,
http://help.sap.com/saphelp_nw04/helpdata/en/6d/aadd3e6ecb1f39e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
XSLT Mapping
http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
http://www.w3.org/TR/xslt20/
Java Mapping
http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
DOM parser API
http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
Also, check this thread for more info,
Different types of Mapping in XI
Am not sure about XSLT , but , yes graphical mapping is converted into java classes internally and these classes use SAX parsing as well.
Regards,
Bhavesh -
Java ,abap and XSLT mapping
Hi all,
can any one provide some material on java ,ABA and XSLT mapping(as i got requirement on my current project)..
thanks in advance.
regards
krish..Hi
All mapping related links
There is no hard and fast rule for using the mapping techniques.
Graphical Mapping is used for simple mapping cases. When, the logic for your mapping is simple and straight forward and it does not involve any complex logic.
Java and XSLT mapping are used when graphical mapping cannot help you and you have multilevel hierarchy structure data.
When the choice is between Java and XSLT, XSLT is simpler than java mapping and easier. But, it has its drawbacks. One among them being that you cannot use Java APIs and Classes in it. There might be cases in your mapping when you will have to perform something like a properties file look up or a DB lookup, such scenarios are not possible in XSLT and so, when you want to use some specific Java API's you will have to go for Java Mapping.
Java Mapping uses 2 types of parsers. DOM and SAX. DOM is easier to use with lots of classes to help you create nodes and elements, but, DOM is very processor intensive.
SAX parser is something that parses your XML one after the other, and so is not processor intensive. But, it is not exactly easy to develop either.
To know more about each of them please go thru the following links. And if you ask me your which is better, it depends basically on the scenario you implementing and the complexity involved. Anyways please go thru the following links:
Graphical mapping
http://help.sap.com/saphelp_nw04/helpdata/en/6d/aadd3e6ecb1f39e10000000a114084/content.htm
http://help.sap.com/saphelp_nw04/helpdata/en/43/c4cdfc334824478090739c04c4a249/content.htm
/people/bhanu.thirumala/blog/2006/02/02/graphical-message-mapping-150-text-preview
http://www.sapgenie.com/netweaver/xi/mapping1.htm
/people/alessandro.guarneri/blog/2006/01/26/throwing-smart-exceptions-in-xi-graphical-mapping
XSLT mapping
http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm
http://www.w3.org/TR/xslt20/
JAVA mapping
http://help.sap.com/saphelp_nw04/helpdata/en/e2/e13fcd80fe47768df001a558ed10b6/content.htm
DOM parser API
http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-frame.html
ABAP mapping
/people/r.eijpe/blog
To know more about the value mapping tools for the SAP Exchange Infrastructure (XI), please go thru the following link:
http://www.applicon.dk/fileadmin/filer/XI_Tools/ValueMappingTool.pdf
To get an idea as to what value mapping is, please go thru the following links:
http://help.sap.com/saphelp_nw04/helpdata/en/13/ba20dd7beb14438bc7b04b5b6ca300/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/f2/dfae3d47afd652e10000000a114084/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/2a/9d2891cc976549a9ad9f81e9b8db25/content.htm
most of the links that I have provided also helps you get the step by step procedure of doing the same. And also involves the procedure to implement certain advanced features.
And please go through this link which clearly explains the 3 types of mappings.
/people/ravikumar.allampallam/blog/2005/02/10/different-types-of-mapping-in-xi
regards
Prasad -
Xslt mapping cidx message is Load Tender Motor
Hi
I am working on XSLT Mapping from the below link SAP Technical
Import corresponding XSD structure under External Definitions in IR. Here the corresponding CIDX message is Load Tender Motor.
In the above line what is CIDX, I have little bit knowledge about that, I read that in Adapters topic CIDX, PIDX this are some industry standard adapters. but how to import that Load Tender Motor in to my Scenario.
So can any body please go through that link and provide some usefull information.
Thanks
G V AnilHi
CIDX is adapter.use this thread for detail
About CIDX
CIDX scenario
XI CIDX -
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 PMStep 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 -
XSLT Mapping - problem with prefixes when calling template
Hi all,
I am having a problem with using an XSLT mapping in XI to combine various fields from 2 input messages of different structures into a single output message. I understand that XI puts a wrapper around the 2 input messages so the structure of the XML I am mapping is:
<?xml version="1.0" encoding="UTF-8"?>
<ns2:Messages xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
<ns2:Message1>
<ns:(root of first message)>
</ns:(root of first message)>
</ns2:Message1>
<ns2:Message2>
<ns:(root of second message)>
</ns: (root of second message)>
</ns2:Message2>
</ns2:Messages>
Currently my XSL looks like the following:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge" xmlns:javamap="java:systemDate.CurrentDate" version="2.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8"/>
<xsl:param name="inputparam"/>
<xsl:template match="ns2:Messages">
...<xsl:calltemplate name="FormattingTemplate"/>
</xsl:template>
<xsl:template name="FormattingTemplate">
</xsl:template>
</xsl:stylesheet>
When I test the mapping it works fine until it calls the FormattingTemplate. Then it throws out a "transformer exception" error saying the prefix 'ns2' is not mapped to a namespace.
If anyone could tell me where I am going wrong I would be very grateful.
Thanks,
MikeHi Udo,
Thanks for your reply.
When testing the stylesheet locally with XMLSpy, it works fine, but I have just noticed that it adds information in the root tag of the target message as follows:
<(root of target message) xmlns:javamap="java:systemDate.CurrentDate" xmlns:ns="http://example.co.uk/example" xmlns:ns2="http://sap.com/xi/XI/SplitAndMerge">
I checked the root tag of the target message in XI and it does not automatically add this information. Thus I added it in my stylesheet so the information above is projected in the target message, but the same error message appears when the call template function is called. Do you know if I need to somehow add a namespace to templates other than the main one? If so, do you know how I go about doing that?
Thanks,
Mike -
Removing specific XML tag in XSLT mapping
Hi there,
I've asked before about a XML to string XSLT mapping and the answers provided here helped me to successfully do that mapping! Thanks a lot!
I'm using the following mapping to convert a string back to XML.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:m="http://my.namespace.com">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
<xsl:template match="/">
<xsl:for-each select="//m:my_tag">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
But now, I'm having a problem converting back from string to XML. The response tag "m:mytag" has a string like this:
"<?xml version="1.0" encoding="UTF-8"?><tag1><tag2>Data</tag2></tag1>".
And when I use the XSLT mapping shown above, the output file comes like this:
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<tag1>
<tag2>Data</tag2>
</tag1>
As you can see, the initial <?xml ...> tag is duplicated, and it generates a parsing error in XI.
How can I eliminate one of the "<?xml version="1.0" encoding="UTF-8"?>" strings in the mapping?
Thanks a lot.Wow!!!
The output="html" actually worked on XML Spy!
Removing the XSLT file initial tag didn't work.
I had already resolved this problem using the replace-string method that I found here: http://aspn.activestate.com/ASPN/Cookbook/XSLT/Recipe/65426
But your method is way more elegant and efficient. :o)
I'll test the html method on XI, but I'm almost sure it'll work too. -
XSLT Mapping: Namespace for prefix 'ns0' has not been declared
Hello, I am working on a synchronous SOAP call and having some trouble with the response message. The web service has its own namespace and I am trying to convert this to my custom data type in PI. PI wants the message to be in format of having ns0 prefix and namespace like we have defined (http://foo for example).
I have an XSLT mapping (see below) which works fine with my test response payload (pulled from SXMB_MONI source) on this online XSLT test site:
http://www.freeformatter.com/xsl-transformer.html
However when I import this archive to PI and test with operation mapping it always says "Namespace for prefix 'ns0' has not been declared."
This is very confusing because when I test it online, I see both prefix and namespace declaration perfectly. Is there a way to see the results in the PI test tool? After this XSLT java error it doesn't give me the output even in Trace Level All mode.
Please advise on this issue or if you know an easier way (such as altering my datatype/message type to match the inbound SOAP message). I tried working with the 3rd party WSDL but the response message types show a different root level node than what PI is receiving so I gave up to make my own matching datatype. I just have to solve this last inbound namespace issue and should be finished.
FYI I have refreshed all PI caches and activated all objects.
Thanks for your ideas!
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns0="http://foo"
<xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/*">
<xsl:element name="ns0:{local-name()}">
<xsl:apply-templates select="@* | node()" />
</xsl:element>
</xsl:template>
<xsl:template match="/">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@* | node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>Some additional info, here is an example payload which goes through the XSLT mapping perfectly, but in PI I get the error about missing ns0 declaration.
XML input:
<bar xmlns='http://irrelevantnamespace'
xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'
xmlns:xsd='http://www.w3.org/2001/XMLSchema'
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<foo/>
</bar>
XSLT mapped output using test tool and XSL above:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:bar xmlns:ns0="http://foo">
<foo />
</ns0:bar> -
Sorting on specific field using XSLT Mapping
Hi All,
I am trying to sort the records on specific field using XSLT mapping.But I'm unable get the proper output for the following code.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://xxxxxxxx">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<a:T1>
<Row>
<xsl:for-each select="a:S1/Record">
<xsl:sort select="EmpID" />
<EMPID>
<xsl:value-of select="EmpID"/>
</EMPID>
<ENAME>
<xsl:value-of select="EmpName"/>
</ENAME>
</xsl:for-each>
</Row>
</a:T1>
</xsl:template>
</xsl:stylesheet>>
Currently getting following output :
http://www.flickr.com/photos/21390012@N04/2074799747/
Expected output should be like below :
http://www.flickr.com/photos/21390012@N04/2074807393/
Kindly send me suggestion to achieve this.
Regards
PullaraoHi ,
I donno much about srting in XSLT but i can give you one example on that.
Example :
This is how to sort numbers in xslt.
Try this :
<xsl:for-each select="learn[@kind='done']">
<xsl:sort select="number(@rank)" data-type="number"/>
<table border="00" cellpadding="3" width="100%">
<tr>
<td width="100" valign="top" align="right"><input type="checkbox" checked="checked" readonly="readonly"/></td>
<td width="10" valign="top" align="right"><xsl:value-of select="position()"/>. </td>
<td valign="top">
[<xsl:value-of select="@rank"/>] <xsl:value-of select="@title"/>
</td>
</tr>
</table>
<table border="00" cellpadding="3" width="100%">
<tr>
<td width="100"> </td>
<td valign="top">
<xsl:apply-templates/>
</td>
</tr>
</table>
</xsl:for-each>
Regards
Aashish Sinha
PS : reward points if helpful -
Required XSLT Mapping tips!
Hi
I'm new for XSLT mapping in XI, right now we about do some XSLT mapping in current assignment. So please provide your basic help on regarding this.
Thank u,
regarads..rambarkiHi Rambarki,
some links 4 u:
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/73/f61eea1741453eb8f794e150067930/content.htm">SAP Library: XSLT mapping</a>
<a href="http://help.sap.com/saphelp_nw04/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/content.htm">SAP Library: XSLT Mapping with Java enhencement</a>
<a href="http://www.w3.org/TR/xslt">W3C: XSLT</a>
<a href="http://www.w3schools.com/xsl/">W3schools: XSLT Tutorial</a>
Regards,
Udo -
Extracting more information from XI XSLT mapping failure
Hello
I am getting to grips with XI. When developing XSLT mappings I first run them on Stylus or XMLSpy, ensure they work, and then deploy them to XI.
Unfortunately they sometimes fail to work in XI, and the amount of information retrieved about the failure is very small.
I thought of a method to get more infomation in situations like this. I could write a Java method that sends messages to the XI console. This would involve seeing the javadoc API for GlobalContainer, Container and AbstractTrace. I would also need to have these objects in my classpath in order to compile the method. Then I could use the method in the XSL.
There are two small drawbacks to this plan: I cannot find the Javadoc or the Jar file holding the classes.
Perhaps one of you readers could either tell me where these things are, or suggest a better method of solving problems like this.
In either case I look forward to receiving a reply.
Thanks
Bill LoganThanks for the suggestion,
completely forgot about the simpler <xsl:message/> command. I tried this, and it worked fine in Stylus.....but not in XI.
I think the problem s when the file is being loaded. An alert box pops up. It says
"Transformer configuration exception occurred when loading XSLT GDS_to_DP.xsl (http://sap.com/xi/GDSConsole, 155fc320-f69f-11d8-97f7-c0140a114c15, -1)"
and the trace window says this
"10:00:13 Start of test
Creating XSLT mapping GDS_to_DP
URIResolver called with href = GDS_DP_Common.xsl and base = GDS_to_DP.xsl
Source resolved. System id = GDS_DP_Common.xsl
10:00:14 End of test"
It seems obvious (from deduction) that the problem lies in GDS_DP_Common.xsl. XI will not give me any information precisely where this occurs
Thanks for you earlier answer Alessandro -
1.where do I write the xsl mapping?
2.Do I need to import the xsd and namespaces for applying xsl onto the xml files(outbound xml and Inbound xml) in these IDEs?
3.How to test whether applied xsl mapping on the Outbound xml data is mapped to Inbound or receiving xml file?
4.how should I use this xslt developed outside XI and use it in XI?
1.You can use any available XML transformation IDEs like Xml Spy or Stylus studio.
2. No. There is no need to import neither these xsd nor the necessity to create namespaces. You just create Outbound xml file with same structure as in xi and apply the XSL to that xml file.
3.Here testing outside XI means just transforming the outbound xml data into inbound xml data with whatever elements you want by applying the XSL.
when you import this xsl file in XI as archive file you insert the namespace in the root element of the creating inbound xml tree in xslt.This namespace is very import.
4.You should zip this xslt file and in XI goto Mapping objects and right click on imported archives and select new.goto the ziped files directory and click import archive button.To use this xslt mapping go to the interface mapping and in mapping program select xsl from the drop down and select the imported xslt mapping.Thanks for the suggestion,
completely forgot about the simpler <xsl:message/> command. I tried this, and it worked fine in Stylus.....but not in XI.
I think the problem s when the file is being loaded. An alert box pops up. It says
"Transformer configuration exception occurred when loading XSLT GDS_to_DP.xsl (http://sap.com/xi/GDSConsole, 155fc320-f69f-11d8-97f7-c0140a114c15, -1)"
and the trace window says this
"10:00:13 Start of test
Creating XSLT mapping GDS_to_DP
URIResolver called with href = GDS_DP_Common.xsl and base = GDS_to_DP.xsl
Source resolved. System id = GDS_DP_Common.xsl
10:00:14 End of test"
It seems obvious (from deduction) that the problem lies in GDS_DP_Common.xsl. XI will not give me any information precisely where this occurs
Thanks for you earlier answer Alessandro -
Step by step creating XSLT Mapping
Hi ,
Will any one help me how to create XSLT Mapping, and where to create the program. Please help me with an example.
Regards,
AmruthHi
I do not know much about Xi. I tried to include a link to a site which provided an example but the forum guidelines would not allow for it to be included. If you search Google for XSLT mapping and SAP there is a link to SAPtechnical which provides an example.
Regards
Paul Hawking
SAP Academic Program Director
Victoria University
Australia
Maybe you are looking for
-
How to change the default langauge for logon-Urgent
Hi All, I need to set the default language for the web-UI login (say english). Could you please help me how can I do it? My scenario is: Lets say if the end user is launching Web-UI from Germany (His browser default langauage will have German most of
-
How do i format a MMC in the PC?
How do i format a MMC in the PC?
-
EEW: New field in CRMD_CUSTOMER_H results in error on generation
Hello all, I am facing a problem and I need some help to solve it. I created some field extensions on CRMD_CUSTOMER_H and I released it. It's in production and it's working ok. Now, I need to include a new field. After run the wizard, when the system
-
IPhone 4 switched black screen
My hubby's iPhone 4 just faded to black and got hot. Now it won't reset, charge or switch back on!! Help
-
I just noticed the Metadata JSR has changed from: "It is intended that this JSR will be delivered as part of the J2SETM "Tiger" release." to: "TBD" Is there a good reason for this?