Overview of Mapping
Types 
You can define mappings for an interface pair by using message interfaces and message types in the Integration Repository.

You can also define the corresponding mappings for outbound interfaces, inbound interfaces, IDocs, RFCs or other interfaces connected using an adapter.

As illustrated in the graphic, a request contains the data that is defined using the output message type of the outbound message interface. At runtime, a request passes from the outbound to the inbound interface. In the same way, the response contains the data that is defined using the output message type of the inbound message interface. It passes in the opposite direction to the request. If errors are thrown on the inbound side, these can be reported to the sender by using fault messages and then handled there. A fault message, like a response, passes from the inbound interface to the outbound interface. You can define mappings for request messages, response messages, and fault messages. The Integration Builder supports the following mapping programs for this purpose:
· Message mappings that you define using a graphical editor.
· XSLT and Java mappings that you can import into the Integration Repository as an archive.
Essentially it is possible to create or import multiple mapping programs in the Integration Repository for the same output or input message type pair (or the corresponding part of an imported or external interface).
When defining mapping programs for request, response, or fault messages, the definition is first separated from the interfaces that reference the corresponding message types. Furthermore, you can reuse a message type for multiple interfaces. This means that the simple definition of a mapping program is not sufficient to establish a connection (that is based on the assignment of outbound and inbound interfaces).
This role is undertaken by the interface mapping:
· An interface mapping specifies the corresponding mapping programs for request, response, or fault messages for a selected interface pair. You use an interface mapping to register mappings for an interface pair.
· You can also specify multiple mapping programs to be executed one after the other in the case of requests and responses for an interface mapping.
You can also define multiple interface mappings for the same interface pair, to provide multiple variants in the repository. At configuration time, the customer can select the appropriate mapping using a mapping relation and save it in the Integration Directory.
The following two types of mappings are differentiated between, regardless of the technology that you use for mappings:
· Structure mappings where the structure of an XML document is mapped to the structure of another XML document.
· Value mappings where the values of an XML document are mapped to the values of another XML document.
In the example below, data about a flight booking is exchanged using XML documents. The XML schema of the source document provides more hierarchy nodes than the XML schema of the target document. Furthermore, the target document schema does not use all the information that is provided by the source document schema. Both structures can be mapped to each other by using a structure mapping.
The passenger class is an example of a value mapping. This information is coded using a string in the source document and a decimal value in the target document. Another example of a value mapping would be the date format.

Using the Integration Builder graphical mapping editor, you can define structure mappings easily using Drag & Drop and then assign fields from source and target structures to each other by using a function (required for a value mapping).