XI provides 3 standard ways of interface mapping between source and target.
- Graphical mapping
- Java Mapping
- XSLT Mapping
Two more additional mapping types can be activated in XI by making changes to the exchange profile. Those two mappings are
- ABAP mapping
- XSLT mapping with ABAP Extensions
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.
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.
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.
Disadvantages of using XSLT mapping
- *# Resultant XML payload can not be viewed in SXMB_MONI if not in XML format (for service packs < SP14).
- Interface mapping testing does not show proper error description. So errors in XSLT programs are difficult to trace in XI but can be easily identified outside XI using browser.
- XSLT mapping requires more memory than mapping classes generated in Java.
- XSLT program become lengthier as source structure fields grows in numbers.
- XSLT program sometimes become complex to meet desired functionality.
- Some XSL functions are dependent on version of browser.