This document gives you clear understanding of XSLT Mapping, which shall convert source structure to specific target structure.
Below are different ways of achieving this conversion in XI,
1. Message Mapping (Graphical Mapping using Mapping Editor in XI )
2. Java Mapping
3. ABAP Mapping
4. XSLT Mapping
The rest of the document gives you pre-requisites and steps that are necessary for making use of XSLT Mapping.
; XSL – Extensible Stylesheet Language
; XSLT – XSL Transformations, the purpose of this is for transformation of XML
documents into other formats like XML, XHTML and etc. Here is the link to get
corresponding tutorial http://www.w3schools.com/xsl/default.asp.
; XPATH – XSLT uses XPATH to find information in an XML document. XPATH
is used to navigate through elements and attributes in XML documents. Here
is the link for same http://www.w3schools.com/xpath/default.asp.
Steps required for developing XSLT Mapping
; Create a source data type and a target data type
; Create Message types for the source and target data types.
; Create Message Interfaces includes Inbound Message interface and Outbound
; XSLT Mapping does not require creation of Message mapping, so don’t create any
; Create an .XSL file which converts source data type into target data type.
; Zip that .xsl file and import it into Integration Repository under Imported Archives.
; 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)
; 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 “Altova MapForce” 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
4. Complete the graphical mapping using extensive list of XSLT functions available
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.
Scenario demonstrating usage of XSLT Mapping
Take a business scenario where in business (Source System) sends an outbound delivery to their Logistics partner for transporting the same. But here the source business is running on SAP R/3 and corresponding Logistics partner is not on SAP, hence the interpretation of data/communication is different. Because source system sends delivery information in an IDoc (which will be handled by message control for delivery (VL01N/02N) and the target Logistics partner is not aware of these IDoc structures, so in order to provide a communication between these two we need some interface mechanism which takes IDoc structure and converts it into the format understandable by the target Logistics provider and vice versa.
Here the target system expects the xml files in CIDX format, so XI system takes IDoc as an input and converts it to an XML file adhering to CIDX naming standards.
Important steps to make this scenario:
; Import needed IDoc structure into IR, in our scenario import IDoc
; Import corresponding XSD structure under External Definitions in IR. Here the
corresponding CIDX message is Load Tender Motor.
; Import ZIP file corresponding to XSLT under Imported Archives in IR, which can
transform source message to target structure.
Objects needed to be developed in IR
Inbound Message Interface: Create Inbound Message Interface resembling target CIDX message.
Import XSL ZIP file
Provide path to corresponding zip file,
Interface Mapping: Provide source interface as DESADV.DELVRY03 and Target
interface as MI_IB_LoadTenderMotor
Now specify Mapping Program specific to XSL Type,
Choose corresponding Archive program from the search help provided under “Name”.
Now activate all the objects that are developed in IR.
Objects that need to be developed in ID
Business System: Create a business system-pointing source SAP R/3 system.
Business Service: Create a business service corresponding to target file system and
don’t forget to assign outbound and inbound interfaces.
Communication Channel: Create a communication channel of type File Adapter under
Business service (w.r.t target system) to send a file to FTP server of target system. Define
the target FTP server details as shown in the following screen:
Sender Agreement: No need as Source system is sending IDOC which is native to XI (but need to perform necessary steps through transactions IDX1 and IDX2).
Receiver Determination: Configure Receivers for corresponding Sender Service and Outbound Interface combination.
Interface Determination: Specify corresponding Inbound Interface and Interface Mapping for combination of Sender Service and Outbound Interface w.r.t specified Receiver in Receiver Determination.
Receiver Agreement: Create this corresponding to Receiver Business service and inbound interface combination and specify communication channel, which places file on the target system’s FTP server.
Altova MapForce to create XSLT
Open Altova MapForce tool, before this activity, have XSD’s of both Source and Target structures on local machine.
Create a new Mapping file
3. Now import XSD’s of both Source and Target messages (which are Outbound and
Inbound Messages in XI).
To do this go to Menu Item, Insert-> XML Schema/File
Give path to Source message XSD (in this scenario xsd is corresponding to IDoc type DESADV.DELVRY03), after specifying the xsd it will look like as shown below
In the same way repeat necessary steps for Target structure (in this scenario xsd is
corresponding Load Tender Motor CIDX message)
Now make use of functions that are available on left side and complete required mapping,