Beruflich Dokumente
Kultur Dokumente
The documentation may have changed since you downloaded the PDF. You can always find the latest information on SAP Help
Portal.
Note
This PDF document contains the selected topic and its subtopics (max. 150) in the selected structure. Subtopics from other structures are not included.
2016 SAP SE or an SAP affiliate company. All rights reserved. No part of this publication may be reproduced or transmitted in any form or for any purpose
without the express permission of SAP SE. The information contained herein may be changed without prior notice. Some software products marketed by SAP
SE and its distributors contain proprietary software components of other software vendors. National product specifications may vary. These materials are
provided by SAP SE and its affiliated companies ("SAP Group") for informational purposes only, without representation or warranty of any kind, and SAP
Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set
forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional
warranty. SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP SE in
Germany and other countries. Please see www.sap.com/corporate-en/legal/copyright/index.epx#trademark for additional trademark information and notices.
Table of content
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 1 of 124
Table of content
1 SAP Process Integration
2 Getting Started
3 Concepts
3.1 Basics
3.1.1 Introduction
3.1.2 Key Capabilities
3.1.2.1 Connectivity
3.1.2.2 Mapping
3.1.2.3 Routing
3.1.3 Installation Options
3.1.4 Phases of an Integration Project
3.1.4.1 Design Time
3.1.4.1.1 Top-Down Design
3.1.4.2 Configuration Time
3.1.4.3 Runtime
3.1.4.3.1 Messages
3.1.5 Process Integration Landscapes
3.1.5.1 Using Local and Central Enterprise Services Repositories
3.1.5.2 Using Central and Non-Central Advanced Adapter Engines
3.1.5.3 Using Local and Central System Landscape Directories
3.2 Advanced Concepts
3.2.1 Using Predefined Integration Content
3.2.2 Interface Objects
3.2.3 Mapping Objects
3.2.3.1 Mapping Programs
3.2.3.2 Operation Mapping
3.2.3.3 Message Mappings (Overview)
3.2.3.4 User-Defined Functions and Function Libraries
3.2.4 Describing the System Landscape in the SLD
3.2.5 Separation of Business Systems and Technical Systems
3.2.6 Collaboration Profile
3.2.7 Content-Based Routing
3.2.8 B2B Configuration
4 Development and Configuration Tasks (Dual Usage Type)
4.1 Concepts
4.1.1 SAP PI Dual Usage Type Installation
4.1.1.1 Architecture (SAP PI Dual Usage Type)
4.1.2 Cross-Component Business Process Management
4.1.3 Web Services Reliable Messaging
4.1.4 Process Models
4.1.5 Configuration Objects (Dual Usage Type Communication)
4.1.6 Configuration Objects (Direct Communication)
4.1.7 Model-based Configuration
4.1.8 Message Processing at Runtime
4.1.8.1 Message Processing (Advanced Adapter Engine)
4.1.8.2 Runtime Caches
4.2 Defining a Collaboration Profile
4.3 Configuring Adapters
4.4 Setting up Scenarios Using Dual Usage Type Message Processing
4.5 Setting Up Scenarios Using Local AAE-Based Message Processing
4.6 Advanced Development Tasks (Dual Usage Type)
4.6.1 Developing and Configuring Mappings
4.6.1.1 Applying Advanced Mapping Techniques
4.6.1.1.1 Designing and Configuring Multi-Mappings
4.6.1.1.2 Designing and Configuring Value Mappings
4.6.1.1.3 Designing and Configuring Parameterized Mapping Programs
4.6.1.1.4 Designing Mappings for Adapter-Specific Message Attributes
4.6.1.1.5 Designing and Configuring Mapping Lookups
4.6.1.1.5.1 Using the Lookup API in a Java Mapping Program
4.6.1.1.5.2 Using the Lookup API in an XSLT Program
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 2 of 124
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 3 of 124
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 4 of 124
Note
The documentation is targeted at both beginners wanting to get involved in the topic, and experts already involved in real-life integration projects and who
need all of the key information in one place to help them keep their orientation and not lose the central theme.
We recommend that beginners first read section Getting Started .
Structure of this Documentation
You can install SAP PI in different ways:
Dual usage type installation: Based on both AS ABAP and AS Java.
Advanced Adapter Engine Extended (AEX): Based on AS Java only.
More information: Installation Options
The concepts and procedures depend on the chosen installation option. Therefore, the structure of this documentation is geared to the installation options.
This documentation contains the following main sections:
Section
Content
Concepts
of SAP PI.
Sub section Basics is suitable for beginners to
get a quick understanding of the basic
capabilities and concepts.
Sub section Advanced Concepts provides
information on sophisticated concepts.
Development and Configuration Tasks (Dual Usage
Type)
AEX
installation options.
Administrative Tasks
Recommendation
If you want to get involved into the topic and set up your first running scenario, choose one of the available demo scenarios.
More information: Examples
Related Documentation
These are related information sources:
As a prerequisite to work with SAP PI, you need to install and configure the software.
To find the relevant installation guide, go to SAP Service Marketplace at http://service.sap.com/instguidesnw .
To find more information on the technical configuration, see Configuring Process Integration (PI) After Installation .
The SAP PI security guide explains the security features of SAP PI and recommends how to apply these features to protect data and to maximize the
confidentiality of data that passes through a PI landscape.
More information: SAP Process IntegrationSAP Process Integration Security Guide
2 Getting Started
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 5 of 124
Use
This section gives guidance to beginners on how to get started with SAP PI.
For those who are new to the topic, we recommend that you start your journey in the following way:
What You Would Like to Do
Recommended Section
Basics
It will not take you longer than two hours to read through this section.
Understand the typical sequence of steps that an integration expert has to walk
Depending on the chosen installation option and use case, choose one of the
through.
following sections:
Setting up Scenarios Using Dual Usage Type Message Processing (for dual
usage type installation option)
Setting Up Scenarios Using Local AAE-Based Message Processing (for dual
usage type installation option)
Using Advanced Adapter Engine Extended Stand-Alone (for Advanced
Adapter Engine Extended)
Connecting Advanced Adapter Engine Extended to an Integration Server (for
Advanced Adapter Engine Extended)
These sections walk you through the overall end-to-end procedure and contain
links to detailed documentation related to each step of the procedure. These
sections are therefore also useful to an expert during an integration project to keep
an overview of the whole situation
Administrative Tasks
Tool Access
Examples
5.1 Concepts
Use
This part of the documentation introduces the concepts and capabilities of SAP Process Integration (PI).
Note
This section is relevant for both, the dual usage type and the Advanced Adapter Engine Extended installation option.
Basics
Provides the basics in one place.
Is suitable for beginners to get a quick understanding of the basic capabilities and concepts.
Advanced Concepts
Covers advanced concepts like, for example, mapping and content-based routing.
3.1 Basics
Use
This part of the documentation introduces the concepts and capabilities of SAP Process Integration (PI).
Note
This section is relevant for both, the Dual Usage Type and the Advanced Adapter Engine Extended installation option.
Introduction
Key Capabilities
Installation Options
Describes the available installation options of SAP PI as well as the connectivity options that they support (for example, the supported adapters).
Phases of an Integration Project
Describes the phases design time, configuration time, and runtime . These phases constitute the main framework along which all concepts and
procedures are oriented.
Process Integration Landscapes
Describes the different options how to design landscapes of PI components.
3.1.1 Introduction
Use
Integration of Processes
SAP Process Integration (SAP PI) facilitates the integration of business processes that span different departments, organizations, or companies. Think of an
application component being part of the value chain of a business application or a business process.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 6 of 124
Note
The term process component is also used to describe this entity.
If we assume that a business application ranges over different departments of one company, then an application component usually represents one part of the
process that is performed in one department.
An integration scenario is used to model the process flow and the separation of a business application into its application components. Application
components can run on different systems, can be hosted in different departments of a company, or can be implemented in completely different companies that
have a business relationship with each other. The application components exchange data with each other and thereby ensure that the value chain of the
business process as a whole is maintained.
The focus of SAP PI is not on the inner-life of the individual application components, or how the business logic is implemented within an application
component, but rather on how the application components exchange data with each other. Process integration is all about choreographing the exchange of
data between application components.
Mediation
Technically, the business logic of different application components in an integration scenario is implemented on different systems. Let us assume that the
systems involved in an integration scenario communicate directly with each other. For example, if the application components run on different SAP systems,
one SAP system calls another using a remote function call. We call this kind of communication point-to-point or direct communication . However, an
upgrade to one part of the system landscape would, for example, entail that all individual connections that are affected also have to be adapted as part of the
upgrade. In the case of large system landscapes, this approach could easily get out of control since the number of connections grows to the square of the
number of systems.
However, consider a situation where a central instance or middleware interconnects the systems. We call this type of communication mediated
communication and refer to the middleware as the SAP PI runtime engine. With a central instance interconnecting the systems, you then have the option to
have all integration-relevant information accessible at one central location. In contrast to the point-to-point scenario (where there is a spaghetti-like
arrangement of connections), in a mediated scenario the number and arrangement of connections remains manageable.
The following figure illustrates the difference between mediated and point-to-point communication:
Mediated communication is executed by exchanging XML messages. Accordingly, in the context of SAP PI we usually speak of message-based integration.
The messages contain the business data exchanged between the systems involved in a cross-component process. The message protocol of SAP PI (which
the runtime engine can process) is based on the W3C standard SOAP Messages with Attachments.
More information: Messages
3.1.2.1 Connectivity
Use
Overview
Connectivity is the capability to connect systems or applications that have different technical communication capabilities to each other using SAP PI.
Examples for technical communication capabilities are the HTTP protocol or a remote function call (RFC). The transformations of messages that are required
at a technical level and that are necessary to connect the system to the runtime engine of SAP PI are performed by adapters. SAP PI provides a variety of
adapters to connect applications that are based on completely different technical or application-specific protocols. The runtime engine transforms each
incoming message into an internal message format first before the message can be processed. This is done by an adapter at the inbound side (also referred to
as: sender adapter). Depending on the characteristics of the receiver system, an adapter at the outbound side (a receiver adapter) then transforms the internal
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 7 of 124
message format into the format or protocol the receiver system can handle.
Note
Do not confuse connectivity with mapping: Connectivity implies transformations between the technical or industry-specific protocols of the connected
applications. A technical protocol can, for example, be a simple file format, or an IDoc format. An industry-specific protocol can be RosettaNet or EDI. In
contrast to that, mapping is the transformation of the business data in the payload of the message, which can, for example, include the transformation of
one data field format ( YYYYMMDD) to another ( YYYY-MM-DD).
SAP provides the following connectivity solutions based on the business requirements.
Table 1: Connectivity Options Provided by SAP
Types of Systems or Applications
Connectivity Options
Applications
RFC
IDoc
Proxy (ABAP and Java)
SuccessFactors (via Connectivity add-on)
AS2
X.400
OFTP
To ensure maximum connectivity options, SAP provides a large set of own-developed adapters, and also accepts adapters developed by partners.
Additionally, customers can develop their own adapters with SAP PI in case they do not find the adapter to fit their needs.
3.1.2.2 Mapping
Use
In scenarios spanning different application systems, or even different organizations and enterprises, it is most likely that the structure of the data exchanged
between two process components differs on both sides of a connection due to business-related reasons. To enable a seamless exchange of data, the data
structures on both sides of a connection have to be transformed into each other.
Mapping determines the following aspects:
How structure nodes (or elements) in a source structure are assigned to structure nodes in a target structure
Which conversion rules apply for the transformation between source elements and target elements
Note
Mapping describes transformations at the level of the business data that is exchanged between process components. This can also include special
formats for particular business entities, for example, the format of a time field in a message. Transformations at the level of the technical transport protocol
are handled by adapters (that form the connectivity capabilities of SAP PI).
The following figure illustrates a simple mapping step. Note that the figure illustrates what happens both at configuration time and at runtime, and shows
systems connected to each other rather than process components. But keep in mind that mappings can already be defined at design time.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 8 of 124
Figure 1: Simple Mapping Concatenating one Single Field of a Source Structure into 2 Target Structure Fields
3.1.2.3 Routing
Use
Routing covers all rules that define the flow of messages between different systems at runtime. SAP PI supports in particular routing that depends on the
content of the exchanged message. For example, you can define a routing rule of the form that all messages with a specific value of one particular message
field will be sent to a specific receiver system.
For example, the runtime engine of SAP PI detects messages where the customer number field has a specific value and forwards them to specific receiver
systems, which are intended to handle requests coming from the corresponding customer.
The following figure shows a scenario where a message is forwarded to three different receivers:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 9 of 124
based on the runtime engines. When you install SAP PI, you install one or more runtime engines on a host system. SAP PI provides different installation
options, each of them offering different options for setting up the runtime engines.
Installation Options
Basically, you can install SAP PI in the following ways.
Installation Option
Description
Is technically based on both AS ABAP and AS Java and comprises the complete
functional range of SAP PI.
Provides tools for designing and configuring integration content (Enterprise
Services Repository, Integration Directory and System Landscape Directory), as
well as the following runtime engines:
Integration Engine
Business Process Engine
Advanced Adapter Engine
More information: SAP PI Dual Usage Type Installation
Note
However, when using this installation option, the functional range of these tools
is slightly restricted as compared to an SAP PI installation.
Note
In releases prior to SAP NetWeaver 7.3, an SAP PI installation was always
based on both AS ABAP and AS Java (dual usage type). As of SAP NetWeaver
7.3, you have the option to choose an AS Java-only installation option, the AEX.
More information: Advanced Adapter Engine Extended
Note
You have also the option to combine the Process Integration capabilities of the AEX with SAP Business Process Management by installing Process
Orchestration .
For more information, see SAP NetWeaver Library at help.sap.com under
.
Process Orchestration
Caution
Do not mistake cross-component Business Process Management (ccBPM) for Process Orchestration.
Process Orchestration is based on AS Java only, and modeling is performed using the Process Composer. In contrast to that, ccBPM contains functions
for enhanced service orchestration as part of a dual usage type SAP NetWeaver installation. It is based on both Application Server Java and Application
Server ABAP. Modeling in the context of ccBPM is performed using the Enterprise Services Repository (based on integration processes as design time
objects).
Runtime Engines
Depending on the used installation option, SAP PI provides the following runtime engines:
Integration Engine (IE) (only for dual usage type installation option)
Based in Application Server ABAP and contains the following adapters: IDoc (IE), XI (connectivity to proxy runtime), HTTP (IE), as well as the
connectivity to systems or applications based on Web Services Reliable Messaging (WS channel).
Advanced Adapter Engine
Based on AS Java and provides the following adapters: RFC Adapter, SAP Business Connector Adapter, File/FTP Adapter, JDBC Adapter, JMS
Adapter, SOAP Adapter, Marketplace Adapter, Mail Adapter, RNIF Adapter, CDIX Adapter, IDoc Adapter (AAE) (adapter type DOC_AAE), HTTP Adapter
(AAE) (adapter type HTTP_AAE).
Business Process Engine (only for dual usage type installation option)
Based in AS ABAP and comes into play when you execute scenarios that contain integration processes (cross-component Business Process
Management).
Connectivity Options
The following figure shows an overview of the available connectivity options for both dual usage type and AEX installation option.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 10 of 124
Figure 1: Connectivity Options of SAP NetWeaver - Dual Usage Type and AEX
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 11 of 124
The upper part of the figure shows an interaction of two application components as modeled at design time. As an example, the left application component
sends a request to the right one. You can consider this interaction as one little part of an integration scenario.
At configuration time, this interaction is configured in a way that it runs in a specific system landscape.
The lower part of the figure shows the runtime view which results out of the configuration time activities.
The system landscape in general is composed of many business systems. For the request-response interaction outlined in the figure, the business logic of the
requestor application component is deployed on (one or more) sender systems, and the business logic of the responding application component is deployed on
(one or more) receiver systems. The communication of sender and receiver systems is mediated by the SAP PI runtime.
The three phases introduced here can be considered to be phases of an integration project.
More Information
Design Time
Configuration Time
Runtime
Note
The design time-relevant aspects are specified and stored in the ES Repository. The corresponding content is referred to as integration content .
Recommendation
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 12 of 124
Design Objects
Process models
You define a process model to start with (for example, a process integration
scenario). Based on the model, you create the corresponding integration content
that specifies the integration in more detail (interface objects, mapping objects, and
communication channel templates).
Interface objects
There are different interface object types available that describe these aspects from the communication mode of message exchange down to the detailed data
structure of a message.
Mapping objects
Pre-configuring connectivity/adapters
After having finished the design tasks in the ES Repository, you need to generate proxies for the interface objects in the corresponding back-end systems The
interface objects defined in the ES Repository are merely metadata that are independent from any programming language. Using proxy generation, you convert
non-language-specific interface descriptions into executable interfaces.
Note
At configuration time, the interaction of abstract application components is typically broken down into system-to-system interactions.
Based on this assignment, an integration expert specifies further details on how the messages are to be exchanged between the systems:
How the messages are routed by the runtime engine from a sender system to one or multiple receiver systems
How the individual systems (each may be based on different technical characteristics) can be connected to the runtime engine (connectivity and
adapters)
Which security-relevant settings apply to the data exchange (for example, if messages are secured using digital signatures)
Configuration Settings in the Integration Directory
The relevant configuration settings in Integration Directory are structured in the following way:
Collaboration Profile
Defines those entities that interact with each other based on the exchange of XML messages.
These are typically systems or applications and are represented at configuration time by communication components . In addition to that, you define
the communication capabilities of the components. These are represented by communication channels.
Optionally, you can also define communication parties as additional entities, typically suitable in business-to-business scenarios.
Configuration of Message Exchange
Specifies how messages are exchanged between communication components.
At configuration time individual system-to-system interactions are specified. As a configuration expert has to provide all the information necessary for
the runtime engine to handle the exchange of messages, it is most natural to take up the position of the runtime engine. This means, for each incoming
message (which arrives at the runtime engine), the configuration expert has to determine what should happen with this message - for example, which
receiver systems it is to be sent to, or how it is to be mapped.
Configuration of Message Exchange
The following figure illustrates what happens with an incoming message:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 13 of 124
Note
The figure indicates the fact that in general multiple receivers can be configured for an incoming message.
The configuration of routing may also include routing conditions.
Mapping
Defines how the business data of the message is to be transformed with regard to a particular receiver (in contrast to the technical XML message format
that is handled during inbound processing).
For an incoming message sent to a particular receiver you select a predefined mapping from the ES Repository.
Outbound processing
Defines how a message should be transformed technically with regard to a specific receiver. Outbound processing again implies a technical
transformation step: A transformation from the XML message format that the runtime engine speaks to the protocol or standard that the receiver
system can handle.
Outbound processing may also cover additional security-relevant aspects, for example, how to sign or encrypt an outgoing message in case these
security standards are agreed on with the receiver.
Note
Use of the Terms Outbound and Inbound
When used in the context of design time objects, the terms outbound/inbound refer to the perspective of the application component. When used in the
context of configuration time objects, the terms outbound/inbound refer to the perspective of the runtime engine.
For example: An outbound service interface (a design time entity) is a service interface whereby a message is sent out from the application (where the
interface is implemented) to another application. In mediated scenarios, such a message is sent first to the runtime engine of SAP PI (interconnected
between the two applications) and then sent from there to the other application. Therefore, a message sent by an outbound interface is the incoming (or
inbound) message as seen from the perspective of the runtime engine. In other words: The incoming message (as used in the configuration time context)
is then determined by an outbound interface implemented on a sender system.
The procedure and the relevant configuration objects needed to configure the message exchange depend on the chosen installation and connectivity option.
Configuration data maintained in Integration Directory is made available to the involved runtime engines by a cache refresh mechanism.
Based on these configuration settings, the message is processed at runtime by the involved runtime engines.
More Information
Installation Options
Runtime
3.1.4.3 Runtime
Use
The business process is executed in the system landscape at runtime, which means that the process is executed and messages are exchanged between the
systems involved. In mediated scenarios, messages are processed by a central instance - or: runtime engine - that interconnects the systems.
This section provides detailed information on how a message is processed by the involved runtime engines.
At runtime, a message passes through the following steps:
1. Sender adapter processing
Based on the configuration of the sender adapter, the message is transformed technically to the XML message format the PI runtime can process ( XI
message format ). In case also additional security-related configuration settings apply, the message is handled accordingly.
2. Runtime engine pipeline processing
Processing of the message in the pipeline contains the following steps:
1. Inbound XML validation
Based on the configuration settings, the inbound message is checked with regard to validity of its XML schema.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 14 of 124
2. Receiver determination
Based on the configuration setting (routing configuration) that is found in the runtime cache for the message, the receivers of the message and the
routing conditions are evaluated. The receiver is written into the message header. In case multiple receivers are configured, for each receiver, a
separate message is created.
3. Mapping
Based on the configuration setting (mapping configuration) that is found in the runtime cache for the message, the assigned mapping program is
performed and the content of the message transformed accordingly.
4. Interface determination
Based on the inbound interface configuration that is found for the message, the assigned inbound interface (at the receiver side) is evaluated.
Note
More sophisticated scenarios can be configured where a message is sent to multiple inbound interfaces or where a large message is split into
several message chunks which are then sent to different inbound interfaces. For sakes of simplicity we do not consider these cases here. .
5. Outbound XML validation
Based on the configuration settings, the outbound message (to be sent to the receiver) is checked with regard to validity of its XML schema.
3. Receiver adapter processing
Based on the configuration of the receiver adapter, the message is transformed technically from the XI message format to the format the receiver can
process. In case also additional security-related configuration settings apply, the message is handled accordingly.
3.1.4.3.1 Messages
Use
The message format used by the SAP PI runtime engines is based on XML. Since a message can also have binary attachments in addition to the business
data in XML, this documentation refers predominantly to messages in general and not specifically to XML messages .
XML Properties
XML (eXtensible Markup Language) allows the description of data in a form that is legible for people. An XML schema definition specifies which elements
may be used, which attributes have these elements, and what structure they have. More than one instance (a document that matches an XML schema
definition) can exist for each schema. The following example of an instance illustrates that the elements in a schema are ordered hierarchically:
<PurchaseOrder no="1811">
<ShipToParty>
<Name>Brian Adams</Name>
<Address>200 S Wacker Drive Chicago IL 60606</Address>
</ShipToParty>
<Item> Bass Guitar No.14 </Item>
<Status>Confirmed</Status>
</PurchaseOrder>
Note
These elements (for example, <Item> ) are also known as tags in HTML.
You can describe the structure of a schema by using an XML schema . As well as the description of the structure of an XML document (elements, attributes,
hierarchy), this language allows you to define simple and complex data types. Note the following difference:
XML schema language provides a series of language constructs that you can use to describe an XML schema.
XML schema definition describes exactly one XML schema and is defined using the XML schema language.
More than one schema instance can exist for an XML schema. A schema instance is an XML document ; its structure and values are defined using a
corresponding XML schema definition. The process whereby the system checks whether an XML document matches a schema definition is called
validation .
Note
The terms XML instance or schema instance are often used instead of XML document. Whereas the term XML document is normally used to
refer to a document on a file system, the storage medium is less important in the other two terms.
The W3C recommendation for XML schema dated May 2, 2001 comprises three parts: HYPERLINK "http://www.w3.org/TR/xmlschema-0/" , HYPERLINK
"http://www.w3.org/TR/xmlschema-1/" und HYPERLINK "http://www.w3.org/TR/xmlschema-2/" .
Message Protocol
The message protocol used by SAP PI is based on the W3C note SOAP Messages with Attachments . For more information, see www.w3.org/TR/SOAPattachments . The runtime engine of SAP PI expects a message that has the following structure:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 15 of 124
The SOAP header of a message contains all the important information that the runtime engine of SAP PI requires to forward the message, while the Payload
contains the actual business data (such as <PurchaseOrder> in the example above). You can also append an unlimited number of attachments to the
message before it is sent. Attachments typically comprise non-XML data, for example, pictures, text documents, or binary files.
The information in the message header must have the correct format for the message to be processed by the runtime engine of SAP PI. The payload is not
touched unless a mapping needs to be executed.
Discussion
Using XML technology has, among others, the following advantages:
XML is the standard exchange format in the Internet. Before this standard was created, there were practically no open exchange formats, which made
communication in heterogeneous system landscapes very difficult.
Further standards and tools now exist that make working with XML even easier, examples being XML Schema, XSLT and XPath. XSLT (eXtensible
Stylesheet Language for Transformations), for example, enables you to define mappings for messages with different structures. XPath expressions
enable conditions to be evaluated depending on values in the payload . Evaluations of this type are required for receiver determination in logical routing.
As a standardized format, XML also enables you to connect to external systems. Once data from an external system has been converted to XML using
an adapter, then it is a simple step to convert the data to other XML formats for other receivers.
Web Services Protocol
Aside from the message protocol, SAP PI supports the Web services protocol. A Web service is a modularized, executable unit. It can be called in
heterogeneous system landscapes and is not restricted to a single host system. Based on the given input parameters, output is determined by the system.
This is then passed back to the caller subsequently. SOAP, WSDL, UDDI, and WS-RM are the core standard for all Web service approaches.
Example
A globally-acting enterprise designs its PI landscape in such a way that a central PI instance (for example, a dual usage type PI installation) is used
for business-to-business processes that span several countries. In addition to this, local PI installations (for example, in that case, Advanced
Adapter Engine Extended installations) are used to cover processes that run within individual countries.
As a second example, an enterprise can also separate landscapes for different organizational units.
You can use both dual usage type PI instances and Advanced Adapter Engine Extended (AEX) instances (based on AS Java only) in a federated way.
You can also mix both installation options in a federated landscape design.
The following figure shows an example of a federated PI landscape with mixed usage of PI dual usage type installation and AEX installation.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 16 of 124
Figure 1: Example of a Federated PI Landscape (one Dual Usage Type PI Instance is Used Centrally and Multiple AEX Instances are Used Locally)
For each landscape design, you need to consider how to set up the individual PI components - namely, the Enterprise Services Repository, the Advanced
Adapter Engine, and the System Landscape Directory.
The following section provides an overview of the possible constellations of the PI components for different landscape design.
Using Different Landscapes for Development, Test and Productive Usage
Consider the following, additional dimension of landscape design: In general it is recommended to set up separate landscapes for development, test, and
productive usage.
In particular, it is recommended to design the landscapes in such a way that the test landscape is as similar to the productive landscape as possible. That
way, it can be made sure that the most important productive scenarios can be anticipated and covered by the test cases.
More information:
Using Local and Central Enterprise Services Repositories
Using Central and Non-Central Advanced Adapter Engines
Using Local and Central System Landscape Directories
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 17 of 124
Figure 1: Constellation of PI Components when a Central ES Repository Is Used (for Dual Usage Type Installation)
When you use a central ES Repository, the involved PI components communicate with each other in the following ways:
Integration Directory (local and central one) calls central ES Repository in order to access design objects for input helps.
This communication is needed in order to enable an Integration Directory user to open a (central) ES Repository object from the (local or central)
Integration Directory. In the following, examples for this kind of access are given:
Creating any configuration object (for example, integrated configuration) with a service interface as key element: select service interface from ES
Repository (for example, to specify the receiver interface key field in an integrated configuration).
Editing integrated configuration: select operation mapping from ES Repository.
Creating communication component (type integration process ): Select integration process from ES Repository.
Central ES Repository sends cache notification to the central Integration Directory after a design object in ES Repository has been activated or after an
import. As indicated in figure above, the central Integration Directory then sends a cache notification to the relevant local Integration Directories (as
necessary).
Note
Local Integration Directories cannot be notified directly be the central ES Repository.
Central ES Repository calls central Integration Directory in order to access a list of communication channels in case mappings with mapping look-ups
are tested.
In order to perform cache connectivity tests, the central ES Repository calls the central Integration Directory in order to obtain cache connectivity test
data. Central Integration Directory calls the local Integration Directories to obtain the relevant test data (to be forwarded to the ES Repository).
Caution
It is mandatory to use a central System Landscape Directory (SLD) in case you configure your PI instance to use a central ES Repository. All PI systems
sharing the same central ES Repository must be registered in the same (central) SLD.
Recommendation
Be careful when switching a PI landscape with a lot of existing content to central ES Repository usage. It is recommended to configure usage of central
ES Repository once when the PI landscape is set up and not during productive usage. Note that switching to a central ES Repository can invalidate
existing configurations in the Integration Directory (because ESR objects might be missing in the central ES Repository).
Page 18 of 124
Note
By default, the non-central AAE uses the user management of the Integration Server. In order to decouple the non-central AAE from the Integration Server
also with regard to user management, you have also the option to configure a local user management on the host of the non-central AAE.
This setup enables you a more robust usage of the non-central AAE.
More information: User Management for Non-Central AAE (PI-AF)
Advanced Adapter Engine Extended (AEX) Installation
In an AEX installation, you also have the option of using an AAE non-centrally.
The design and configuration environment (ES Repository and Integration Directory) resides on the system of the central AAE. Both central and non-central
AAE register themselves at the same System Landscape Directory (SLD).
The following figure illustrates the constellations of PI components in a non-central AAE setup for an installation of the Advanced Adapter Engine Extended
(AEX):
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 19 of 124
With regard to user management, the non-central AAE works completely autarkic because it uses a local User Management Engine.
More information: Advanced Adapter Engine Extended
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 20 of 124
Note
This section is relevant for both, the dual usage type and the Advanced Adapter Engine Extended installation option.
More information:
Advanced concepts related to design time:
Using Predefined Integration Content
Interface Objects
Mapping Objects
Advanced concepts related to configuration time:
Describing the System Landscape in the SLD
Separation of Business Systems and Technical Systems
Collaboration Profile
Content-Based Routing
B2B Configuration
Note
The term enterprise service is used to emphasize the fact that the ES Repository contains services that were designed according to SAP's SOA design
principles. Technically, this term summarizes interface objects. In this document, we intend to name these objects in particular, that is, as service
interface, message type, or data type. Integration content published on the ES Workplace was designed based on integration scenario models and process
components interaction models. In addition to this content, SAP also provides integration content that was designed based on "classic" process integration
scenarios.
Procedure
Before customers can use and enhance predefined content, they have to download it from SAP Service Marketplace and import it into the ES Repository
installed in their landscape. The corresponding location on SAP Service Marketplace is the SAP Software Distribution Center at http://service.sap.com/swdc
Support Packages and Patches
Browse our Download Catalog
SAP Content
ESR Content (XI Content).
Customer modifications of predefined integration content must not be executed in an imported SAP software component: They must be performed in a
separate software component instead.
Note
This avoids conflicts with subsequent SAP software updates since changes to an SAP software component will be immediately overwritten when SAP
software updates are imported.
Therefore, to be able to use predefined integration content provided by SAP, you have to create an own software component version for your
developments. The new software component version has to include the SAP software component (that contains the predefined content) as the underlying
software component version. To do this, define a based-on relationship between the new software component and the SAP software component.
More information: Underlying Software Component Version
Note
When you use process integration content for SAP applications, make sure that there is an unambiguous (1:1) relationship between the corresponding
software component version in the ES Repository and the corresponding software component version in the SAP system. This is the same for the support
package. This means, the versions of both, software component version and support package number, need to be kept in sync in ES Repository and the
SAP system. They have to be installed and maintained synchronously.
More information: Managing Enterprise Services Delivered by SAP
Page 21 of 124
Description
Service interface
Message type
Data type
External definition
Imported object
Context object
Interface objects can reference each other in a specific way. The possible object references are shown in the following figure.
Note
Only for dual usage type installation option: The Abstract category is only intended for communication with an integration process (cross-component
BPM).
A service interface groups one or multiple operations. An operation represents the smallest, separately-callable function, described by a set of data types used
as input or output. You can specify the Communication Mode for each operation. This attribute determines if the communication defined by the operation is
synchronous or asynchronous. In a synchronous communication step, a response is expected for each call or request message that is sent out. In an
asynchronous communication step, a request message is sent out but no response is expected.
You assign one or multiple message types for each operation - depending on the communication mode.
A message type defines the root element of a message. You use a message to exchange data between systems. A message type refers to exactly one data
type that defines the structure of this data.
For a synchronous operation, you assign three message types: A request, a response, and a fault message type. A fault message type represents the
message that is expected in case an error occurs. For an asynchronous operation, you only assign one request message type. The following figure shows the
role the different interface objects play for the message exchange. The example shows an asynchronous message exchange where a request message is sent
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 22 of 124
Figure 2: Asynchronous Message Exchange Between a Service Consumer and a Service Provider
The following figure shows a synchronous message exchange including a request and a response message being defined for the service interface operation:
Figure 3: Synchronous Message Exchange Between a Service Consumer and a Service Provider
In a lot of scenarios, the application forces that a specific communication sequence and transactional behavior is maintained during message exchange. With
the attribute Interface Pattern you can design this behavior in the ES Repository. An interface pattern describes the type of communication that is to be
executed on the message when the interface is used. It determines what kind of operations can be defined for a service interface. The interface pattern that
you select has an impact on the activities related to the programming of the business logic in the related back-end system (task of application developer).
Note
For mediated communication using an integration broker, the interface patterns that fit most use cases are Stateless or Stateless (XI 3.0compatible).
The interface pattern Stateless (XI 3.0-compatible) is used by default for all interfaces migrated from earlier releases of SAP PI (namely, SAP
PI 7.0 and SAP NetWeaver XI 3.0) to SAP NetWeaver PI 7.1 (called message interfaces in earlier releases). Additionally, this interface pattern is
recommended for scenarios that use the common "technical adapters" such as the File/FTP, JDBC, JMS adapter. However, using this pattern limits the
service interface to use only one operation.
The default pattern for developing new service interfaces is Stateless.
The interface pattern Tentative Update & Confirm/Compensate (TU &C/C) has been developed to improve the transactional behavior when
using synchronous messages. The TU &C/C pattern ensures that - in cases of system or communication failure - one of more synchronous update calls
in one transactional context are executed and ensure a consistent dataset on both sides of the communication.
More information: Service Interface
Data Types
A data type determines the data structure for a specific business entity, for example, an address. Data types are referenced by message types and therefore
define the structure of a message.
As defined in the ES Repository, data types are based on XML Schema (also referred to as XSD ). Data types can reference other data types which enables
you to build up complex data types out of simpler ones. The basis for all data types are XSD types contained in XML schema and approved by W3C, (for
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 23 of 124
example, xsd:string, xsd:decimal, xsd:integer). These data types define the properties of an element at a technical level.
More information: Data Types in the Enterprise Services Repository
External Definitions
If you would like to reuse existing XML definitions as message definitions described in either WSDL or XSD, you can import these XML definitions into the ES
Repository, rather than re-enter them manually using the data type editor. You then encapsulate the imported definition in the form of an external definition.
Context Objects
With a context objects, you can specify an XPATH expression that can be used to access a field in an XML message.
These expressions can then be used at configuration time to configure content-based routing and in integration processes (ccBPM)
More information: Context Objects
Imported Objects
If you would like to reuse XML definitions of existing functions - RFCs or IDocs - so that you can call these functions using the Integration Server, you can
import IDocs and RFCs into the ES Repository and make the interface signature known there.
Note
The term mapping describes transformations on the level of the business data that is exchanged between process components. This can include special
formats for particular business entities, such as the format of a time field in a message. Transformations on the level of the technical transport protocol are
handled by adapters (configured at configuration time).
Since mappings are determined by business needs and describe data transformations on a business level, they can be defined at design time. Therefore,
most tasks related to mapping are performed in the ES Repository. At configuration time, in the Integration Directory, you merely have to select the right
mapping for a specific communication step (or interaction).
Mapping Programs
A mapping is implemented by a mapping program.
More information: Mapping Programs
Overview of Mapping Objects
The following object types are available in the ES Repository for designing mappings:
Object Type
Description
Operation mapping
Message mapping
Mapping object created when you use the graphical mapping editor. A message
mapping has to be referred to by an operation mapping.
Imported archive
Mapping template
The following figure shows the most important object references between mapping objects (also including the object references to interface objects):
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 24 of 124
Note
XSLT (eXtensible Stylesheet Language Transformations) is a language that enables you to convert an XML document to another document. You
can develop mappings with XSLT and import them to the ES Repository.
ABAP program and XSLT (ABAP) program
These mapping programs are developed using the ABAP Workbench. At runtime, these programs are executed on the ABAP Engine of the Application
Server on which the Integration Server is running.
Note
These kinds of mapping programs cannot be imported into the ES Repository and therefore are not shipped by SAP. They have to be developed in
the SAP system at the customer's site.
Recommendation
For usability reasons, it makes sense to design message mappings because you can use the graphical editor.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 25 of 124
You define the assignment of the operations related to each other in an operation mapping, whereas in a mapping program you define the detailed
transformation rules for the transformation of a source structure (representing the message sent by the outbound operation) into a target structure (representing
the message received by the inbound operation).
The number of mapping programs or transformation rules you need to define for an operation mapping depends on the communication mode:
Synchronous communication
A synchronous operation (see section Defining Interface Objects) refers to a request, a response, and in some cases a fault message. Therefore, in
general you have to define a mapping program for both request and response messages. If fault messages are used, you have to define an additional
mapping program for the fault message.
Asynchronous communication
You only need one mapping program.
An operation mapping encapsulates the used mapping program (either defined graphically by a message mapping or contained in an imported archive).
Note
Java source code is generated from the message mapping and compiled in a .jar file. At runtime, the .jar file is executed.
The graphical mapping editor is composed of three main areas (see Message Mappings (Detailed Information) ). The left area shows the structure of the
source message assigned to the message mapping, the right area the structure of the target message. Below this is the data flow editor.
Note
If you have created the message mapping based on an operation mapping, the source and target structures are already loaded according to the operations
you have chosen in the operation mapping.
You use the graphical editor to do the following:
Design a structure mapping between the elements of the source and the target structure
Apply a function to transform the source and target fields into each other, if necessary
A simple assignment between source and target fields is generally not sufficient.
In the data flow editor, you define target field mappings. A target field mapping describes how one or more source fields are mapped to a target field.
Note
A message mapping is constructed from individual target field mappings.
The following kinds of function can be used to specify target field mappings:
Standard functions
These functions are already available in the mapping editor. There are several kinds of standard function available in the mapping editor. For text
mappings, for example, these include simple calculations or Boolean operations, and date format conversions.
More information:
User-defined functions
You can define your own functions if standard functions do not fulfill your requirements.
More information: User-Defined Functions and Function Libraries
More information:
Data-Flow Editor
Target Field Mappings
Page 26 of 124
Use
You can create your own user-defined function in Java source code. A user-defined function created in a message mapping or mapping template is stored in a
local function library belonging to the corresponding mapping object. To use a user-defined function in more than one message mapping or mapping template,
you have the option to create the user-defined functions in function libraries in the ES Repository.
A function library is created and maintained as a separate design object in the ES Repository.
Note
A message mapping can only use function libraries that are defined in the same software component version as the message mapping, or in an underlying
version.
More information:
User-Defined Functions
Function Libraries
Note
The SLD contains two types of information relevant for SAP Process Integration:
Component information : Information about all available SAP products and components, including their versions. If there are any third-party
products in the system landscape, they are also registered here
At design time of the integration objects, the component information is extracted from the SLD to define process integration scenarios.
For more information, see: Enterprise Services Repository
Landscape description : This contains all installed systems in a system landscape.
At configuration time, the landscape descriptions are needed to determine the system information of the business partners involved. It consists of
business systems.
Business systems are logical systems that communicate with each other by sending and receiving messages. They can be SAP or third-party
systems.
An SAP system has one or more clients that function independently of each other as logical units at runtime. Each of these clients represents
a business system in Process Integration.
A third-party system is also a logical unit that functions as a sender or receiver. Therefore, third-party systems are also business systems in
this sense.
Business systems are based on technical systems. More information: Separation of Business Systems and Technical Systems
If you have more than one SLD instance, you must ensure that all content is synchronized. The SLD has export and import functions for this purpose.
For more information, see:
Planning Guide - System Landscape Directory
This guide is published in SAP Community Network at http://sdn.sap.com/irj/sdn/nw-sld
set up landscapes including the SLD and SAP Process Integration.
System Landscape Directory
Procedure
Configure Business Systems in the SLD
First, define and configure all business systems involved in the process in the SLD.
For more information, see: Configuring Business Systems in the SLD
Only once you have done so can you define the business systems as communication components in the Integration Directory and address them as the
senders and receivers of messages in later configuration steps.
Note
You create communication components of type Business System for those systems that you are familiar with.
Configure Groups and Transport Targets in the SLD
An Integration Server enables communication between business systems at runtime. It cannot execute business logic.
You can assign a group of business systems to an Integration Server. A business system group is a logical grouping of business systems that use an
Integration Server to communicate with each other.
For more information, see: Configure Groups and Transport Targets in the SLD
Tasks for Changes in SLD
After you have made any changes in the SLD, always ensure that you clear the cache for SLD data in the Integration Directory. Only once you have done so
can you access up-to-date SLD content (for example, by using input help).
For more information, see: Delete SLD Data Cache
Change in the SLD
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 27 of 124
The input help for business systems (for example, when you define a business
system component) is only updated once you clear the SLD cache.
The input help for Adapter Engines in the communication channel is only updated
once you clear the SLD cache.
In the following cases, ensuring that a change made in the SLD has also taken effect in the Integration Directory requires manual effort.
Change in the SLD
For this change to take effect in the relevant business system service, you must
For this change to take effect in the relevant business system service, you must
compare the data with the SLD .
For more information, see: Communication component
Example
As an example, this mapping of a business system and technical system shows up in the configuration data in the Integration Directory in the attributes of
receiver communication channels that usually contain the server name of the receiving system. The server name is part of the technical system
description that is maintained in the SLD. On the other hand, the communication channel is assigned to a (receiver) communication component which is
mapped directly to a business system from the SLD.
Typical Usages
You use this type of addressing when configuring collaborative processes in which
whole companies communicate with each other.
You then use a communication party to represent each company. A communication
component represents a business or technical entity within a company.
In business-to-business processes (or cross-company processes) the companies
involved usually provide a variety of communication components for communicating
with other companies.
You use this type of addressing when configuring processes in which the system
landscape is known to you. This is usually the case in application-to-application
processes.
The definition of communication parties is not mandatory. This enables you instead
to specify the known communication components directly as either the sender or
receiver of a message.
Note
Note that it may sometimes be necessary to use communication parties when configuring internal company processes, for example in the case of IDoc
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 28 of 124
communication. If the IDoc partner is not of type logical system , you must map the IDoc partner to a communication party in the Integration Directory.
Communication Components
You define the systems involved in the process as communication components in the Integration Directory.
Create communication components of type Business System for those systems that you are familiar with (using the integration expert role). These are based
on business systems that are described in the System Landscape Directory.
Note
The system landscape description in the SLD is based on the following entity types:
Business systems
Are defined for all systems that communicate with each other. Business systems are logical systems that play the role as senders or receivers of
messages. Business systems can be SAP systems or third-party systems. Each business system has to be assigned to a technical system.
Technical systems
Are defined for all systems that are actually installed in your system landscape.
You can enter communication components of type Business Component (as representatives of the external system) for external systems of a business
partner (business-to-business scenarios) that are not specified in greater detail. In addition to this, in business-to-business scenarios you can map the
business partners and partner companies as communication parties .
If an executable integration process is used, this is also addressed as a communication component.
Communication Channels and Adapter Configuration
You define the available technical communication options of a component in Communication Channels .
A sender communication channel contains the information that determines the inbound processing of a message that is sent by a sender component to the
runtime engine.
A receiver communication channel contains the related information for the outbound processing of a message that is sent by the runtime engine to a receiver
component.
You can access the adapter configuration directly from the communication channel.
Note
These technical communication capabilities are also called Connectivity and are realized in the various different Adapters .
More Information
Communication Party
Communication Component (for dual usage type installation option)
Communication Component (for Advanced Adapter Engine Extended)
Communication Channels
Separation of Business Systems and Technical Systems
The figure illustrates the following business case: Flight booking systems for different airlines are hosted on different systems. To ensure that the request for a
flight availability check is forwarded to the correct airline, the routing condition is formulated as airline-dependent. The airline ID (field AirlineID) is contained
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 29 of 124
in the payload of the message. The routing condition is as follows: Send the message requesting the flight availability check to the airline Lufthansa if the
field AirlineID in the message payload has the value LH (Lufthansa). If this field has the value AA (American Airlines), then forward the message to the
airline American Airlines .
A routing condition generally has the following syntax:
<element in the message> <Operand> <value>
The element in the message is identified by an XML Path Language ( XPath ) expression. XPath is a language that allows you to address parts of XML
documents.
When you define a routing condition, you can use a condition editor. Using the condition editor, you do not need to worry about XPath syntax since you can
conveniently identify a message element by clicking through the message structure displayed in the editor. Additionally, you can combine multiple conditions
with logical AND and OR operators.
The integration expert at business partner 1 only knows the part of the system landscape that is hosted by business partner 1. The complementary part of the
system landscape hosted by business partner 2 is typically not known to him or her, since companies and organizations do not usually expose internal system
names or server addresses to external partners. This part of the system landscape is a black box to him.
For an integration expert working for business partner 2, the reverse is true (assuming for simplicity that only two business partners share the business
process).
There are additional configuration concepts to handle these B2B-specific constraints (implemented as object types or object attributes in the Integration
Directory).
Communication Party
Since B2B scenarios typically involve whole enterprises interacting with each other, you use a communication party to identify a company or an organization
that takes part in the business process. The communication party is an optional key field for receiver determinations, interface determinations, sender and
receiver agreements. A party groups together those communication components that belong to the corresponding company or organization.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 30 of 124
To accommodate the fact that B2B integration spans areas of responsibility that are separated from each other (as illustrated in the figure above), an additional
concept is implemented: where you use an internal name to identify a company or a business partner during configuration, you have the option to map this
internal name to a unique globally-recognized identifier that identifies the company unambiguously (for example, a D & B D-U-N-S number issued by the
agency Dun & Bradstreet ). In every communication with an external partner, the internal party name is then transformed to the globally-recognized identifier.
Conversely, when a message is received from an external business partner, the identifier can first be mapped to the internal party name during inbound
processing.
Business Component
In external communications (B2B interactions), business system names cannot be used as addressing entities since they are not exposed externally.
Therefore, communication components based on business systems in the SLD are not suitable. Instead, messages involved in a B2B interaction use a
different communication component type, called a business component. A business component merely represents an abstract entity for addressing the
senders and receivers of messages in B2B communications.
Masking Internal Details in Outbound Messages (Header Mapping)
A message sent out to a receiver system in a company-internal interaction carries the information of the sender (the name of the sender system) in the
message header. In an external or B2B communication, the internal system names should be hidden and not show up in the message header when the
message arrives at the external business partner. To make sure that internal system names are masked in message headers, a header mapping can be
applied. With a header mapping, you define a transformation from the internal (sender) system name to an externally exposed business component name. You
configure the header mapping when you specify the outbound processing.
The following figure illustrates how header mapping works:
Figure 2: Masking Internal System Names in an Outbound Message Using Header Mapping
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 31 of 124
The figure illustrates how a receiver-dependent receiver determination routes a message sent by the external business partner to the (externally exposed)
business component BookService, to the internal system ABC.
You have the following options to configure a receiver-dependent receiver determination:
Dual-Usage Type installation: in a receiver determination or in an integrated configuration object
Advanced Adapter Engine Extended: in an integrated configuration object
More Information
Communication Party
Identifiers
Business Component (for Advanced Adapter Engine Extended)
Note
There are different installation options of SAP PI, each of them implying a slightly different approach.
More information: Installation Options
Procedure
According to the chosen use case, select either of the following sections:
Setting up Scenarios Using Dual Usage Type Message Processing
Choose this section if you use the dual usage type installation option and like to process messages using both runtime engines, the Integration Engine
and the Advanced Adapter Engine (AAE).
Setting up Scenarios Using Local AAE-Based Message Processing
Choose this section if you use the dual usage type installation option and like to process messages using the AAE only (bypassing the Integration
Engine).
Note
The sections referred to above cover the basic end-to-end procedures. For more information on how to set up specific use cases like, for example,
scenarios including cross-component Business Process Management, how to develop mappings, and B2B scenarios, see the corresponding section under
Advanced Development Tasks (Dual Usage Type) .
Note
The general procedure is structured according to the phases design time, configuration time and runtime.
More information: Phases of an Integration Project
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 32 of 124
5.1 Concepts
Use
This part of the documentation introduces concepts and capabilities in particular relevant for the dual usage type installation option of SAP PI.
Section
Content
Provides an overview of the components and the architecture of a dual usage type
SAP PI installation.
Process Models
Provides an overview of the configuration objects relevant to set up dual usage type
message processing.
Model-based Configuration
Note
For concept information relevant for both, the Dual Usage Type and the Advanced Adapter Engine Extended installation option, see Concepts .
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 33 of 124
Example
For example, in case a JDBC (sender) adapter is used for inbound processing, the AAE is involved in the communication to provide the required
connectivity to the sender system.
The following figure illustrates this situation for the case where the AAE is connected upstream to the Integration Engine (providing the required connectivity at
sender side):
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 34 of 124
Figure 3: Local Message Processing on the AAE, Bypassing the Integration Engine
In the figure it is also illustrated that besides the fact that the IE is bypassed at runtime, the design and configuration time tools are still needed to set up the
communication.
If at runtime dual usage type or local (AAE-only) message processing mode is used, depends on which configuration objects you have specified in Integration
Directory.
In general, the following applies:
If you use sender agreements, receiver determinations, interface determinations and receiver agreements as configuration objects, messages are
processed in the dual usage type mode.
If you use an integrated configuration as configuration object, messages are processed in the AAE-only processing mode.
Which adapters are involved for inbound and outbound processing in particular, depends on the assigned communication channels.
Message Processing Using the Non-Central AAE
In addition to using the AAE as part of the Integration Server (the central Adapter Engine), there's also the option to use the AAE stand-alone, next to the
Integration Server (non-central AAE). That means, the AAE can be installed on a system with a different SAP system ID (SID) than the Integration Server and
be used as an independent integration hub. However, note that you need an ES Repository and an Integration Directory as design and configuration tools in
order to set up the scenarios.
The following figure shows the basic communication flow at runtime:
Note
As an additional option, you can use the Adapter Engine (Java SE). This option is only supported for compatibility reasons. It hosts only a subset of the
adapter functionality and has fewer security and monitoring features.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 35 of 124
More Information
Architecture (PI Dual Usage Type Stack) (for a detailed view of the components of a dual usage type SAP PI instance)
Configuration Time
Runtime
Message Processing at Runtime (for information on how message processing is performed in detail)
The main components for design and configuration time are the Enterprise Services Repository (ES Repository) and the Integration Directory. Using these
tools, an integration expert designs integration content (for example, interfaces and process integration scenarios) and specifies the configuration settings for
message exchange for a specific system landscape. The design and configuration tools are connected to the System Landscape Directory which contains, for
example, the description of software components and systems. The ES Repository and the Integration Directory are technically based on AS Java.
The Integration Directory is connected to the ES Repository to allow access to specific design time objects (for example, mappings) also at configuration time.
More information:
Design Time
Configuration Time
When you install SAP PI (dual usage type installation option), you set up an Integration Server . The Integration Server hosts the following runtime engines:
Integration Engine (based on AS ABAP)
Business Process Engine (based on AS ABAP)
More information: Cross-Component Business Process Management
Advanced Adapter Engine (based on AS Java)
Note
All SAP systems based on Application Server ABAP release 6.20 or higher contain a local Integration Engine, also when used as an application system.
This local Integration Engine enables the system - when used as an application system - to connect to another system via an SAP PI runtime engine. This
kind of connectivity is also referred to as connectivity based on the proxy runtime. All other systems - either SAP or third-party - connect to the SAP PI
runtime using adapters.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 36 of 124
More Information
Runtime
Example
For example, a TU & C/C scenario might be designed as follows: A service consumer sends his orders to a service provider. The provider processes
the orders tentatively. Only after an order is confirmed on the consumer side is the order also persisted in the database on the provider side. In the
event of an error, the changes are rolled back. To implement such behavior, multiple operations have to be designed for the service interface and
implemented later in the related application systems
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 37 of 124
Description
This model type allows you to specify the interaction between two process
components in detail. Based on this model type, you can start specifying interface
objects, mappings and channel templates.
More information: Process Components Interaction Model
Note
Note that only this model type is supported when setting up scenarios using the
Advanced Adapter Engine Extended.
You also need to use this model type when designing scenarios using crosscomponent Business Process Management.
More information: Process Integration Scenarios
Note
Integration scenario models and process components interaction models on the one hand and process integration scenarios on the other hand represent
two different modeling approaches. From a tool perspective, these two modeling approaches are not integrated with each other. Therefore, you need to
decide for one approach at the beginning of each integration project.
Note
For an overview of the available communication and message processing options, we refer to the following sections:
Installation Options
Runtime
The figure below shows the phases of message processing for an incoming message. The configuration objects relevant in order to specify the different
message processing phases are also indicated in the figure.
Note
For sakes of simplicity, communication parties (see below) are not considered in the figure.
The objects required to execute the current configuration tasks are listed in the following table.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 38 of 124
Tasks
Relevant Objects
Communication channel
Sender agreement
Defining routing
In routing specify which receiver messages are to be sent to.
In a receiver determination you specify the receiver components (for example,
business systems) for a message. You can configure the forwarding of a message
to the receiver depending on the application data in the message.
Receiver determination
Interface determination
Receiver rule
Receiver agreement
Relevant Objects
In the collaboration profile you specify which components communicate with each
other and what their technical communication capabilities are.
Communication component
Communication channel
Direct connection
You assign the receiver channel of the receiver system to the direct connection.
Caution
This option is only provided for channels with adapter type WS .
When you activate the configuration objects, the configuration settings made in the Integration Directory are transported to the back-end system on which the
Web service consumer or Web service provider are installed.
Caution
Note that complete configuration of scenarios of this type is only supported at this time in the Integration Directory for back-end systems that are based on
AS ABAP 7.10.
Note
In case, you configure message processing using the Advanced Adapter Engine only, you correspondingly get the object key of the relevant integrated
configuration.
At this point, the model configurator comes into play: Based on assignments between application components and communication components (systems) for
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 39 of 124
a specific model, the relevant receiver determinations, interface determinations, and sender and receiver agreements (or the relevant integrated configuration)
are calculated and automatically generated. This means that the tool calculates the object key, and checks if there already is a configuration object with this
exact key. Depending on the result, it either creates the object or re-uses an existing one. All generated configuration objects are then grouped in a
configuration scenario which is a grouping entity in the Integration Directory.
The following figure highlights how the design and configuration time entities are related to each other, how the model configurator comes into play, and how a
receiver determination is generated out of the setting (as an example):
Figure 1: How the Model Configurator Evaluates a Receiver Determination for the Given Example
Using the model configurator saves you the trouble of manually creating all configuration objects. If you configure the integration for large system landscapes,
it can quickly turn into a nightmare to manually find out all relevant configuration object keys.
After generating the objects, the configuration objects generated have to be further specified manually by adding those parts that cannot be automatically
determined, for example, routing conditions or specific security settings in sender and receiver agreements.
You can use the model configurator with the following model types as input:
Process components interaction model (or integration scenario as group of multiple process components interaction models)
Process integration scenario
Note
For sakes of simplicity, we do ignore the Business Process Engine (which also runs on AS ABAP) within this section as this runtime engine comes only
into play in scenarios that use integration processes (cross-component Business Process Management).
The Advanced Adapter Engine Extended (AEX: Java-only installation option) provides only the Advanced Adapter Engine as runtime engine.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 40 of 124
This section provides detailed information on how a message is processed by the involved runtime engines.
With a dual usage type installation of SAP PI, messages can be processed in different ways. On the one hand, both runtime engines can be involved.
Correspondingly, in that case we talk about dual usage type message processing . In contrast to that, you can also configure scenarios that way that only
one runtime engine (either the AAE or the IE) is involved.
The following figure shows how the involved systems and runtime engines communicate with each other for a dual usage type message processing scenario
(at left) and a single-stack message processing scenario (at right).
Note
The figure shows two different message processing options in case the dual usage type installation option of SAP PI is used.
Figure 1: Dual Usage Type (Left) and AAE-only (Right) Message Processing
For the dual usage type processing scenario, only the case is shown where the AAE is connected upstream to the Integration Engine (providing the required
connectivity at sender side). As single-stack message processing option, only the case is shown where the AAE is involved as runtime engine. In the
following, additional possible cases are shown.
The following figure shows in more detail all possible ways a messages can pass through the runtime engines.
Note
To make the process flow of each individual option more transparent, the individual cases are shown in separate figures in the subsequent sections.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 41 of 124
The kind of message processing that applies at runtime depends on the configuration settings in Integration Directory that match the incoming message.
Configuration settings in Integration Directory are structured as configuration objects. In general, those configuration objects apply for processing of a specific
message that have an object key that matches the address header of the message.
For more information on these concepts, see: Configuration Time .
The conditions that determine which message processing option applies at runtime, are indicated in the figure above as comments besides the corresponding
branch of the process flow. These conditions are explained in detail below.
Note
Note that branches (where a decision is taken) are indicated as white rhombuses, whereas joints (where two message processing paths are merged) are
indicated as grey rhombuses.
The inbound message contains information about the sender of the message and the service interface that specifies the message data structure. As soon as
inbound message processing is started (by the sender adapter), the message header is evaluated.
There are the following cases:
A system sends a message to the IE.
In specific cases (for example, when an SAP system is connected to an SAP PI instance via the proxy runtime) a message is sent to the IE. In the
runtime cache that sender agreement is searched for and evaluated that has an object key that matches the header of the incoming message.
Further message processing is specified by a set of Integration Directory configuration objects of the following type: receiver determination , interface
determination and receiver agreement .
After the pipeline processing steps like routing and mapping (that are specified by receiver and interface determinations), the matching receiver
agreement is evaluated in order to execute outbound processing. Here, the following cases can occur:
An IE adapter (which means: an adapter that runs on the IE) is assigned to the receiver agreement.
In that case, outbound processing is continued on the IE and the message sent to the receiver system by the IE.
An AAE adapter is assigned to the receiver agreement.
In that case, the message is handed over to the AAE, where further outbound processing is executed.
A system sends a message to the AAE.
Example
As an example, the sender system is connected to the SAP PI instance via the SOAP adapter.
In that case, the following situations can occur:
For the incoming message (and the applied sender adapter) a sender agreement is found in the runtime cache.
In that case, after inbound processing the message is forwarded to the IE where the further processing steps are performed.
This is one case of dual usage type message processing.
Note
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 42 of 124
If during that processing sequence a receiver agreement applies with an AAE adapter assigned, the message is again handed over from the IE
to the AAE and sent from there to the receiver system.
For the incoming message (and the applied sender adapter) an integrated configuration is found in the runtime cache.
Message processing is continued on the AAE.
Note
This is the case of AAE-only message processing. Using the AEX installation option, only this path is possible.
Single-Stack Message Processing Options (Detail)
We explain in more detail the case when only the AAE is used at runtime. The following figure illustrates this case.
A message with a header that matches an integrated configuration passes through the following steps:
1. Sender adapter processing
2. Advanced Adapter Engine pipeline processing
3. Receiver adapter processing
For more information on the steps in detail, in particular on the steps within the messaging system, see Message Processing (Advanced Adapter Engine) .
For sake of completeness, the following figure illustrates the case where only the IE is involved at runtime. This case applies when a sender agreement is
found for the inbound message and an IE adapter is used for both inbound and outbound processing.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 43 of 124
Figure 5: Dual Usage Type Message Processing (AAE Sender Adapter, IE Receiver Adapter)
According to the figure above, a messages passes through the following steps:
1. Sender adapter processing
Based on the configuration of the sender adapter, the message is transformed technically to the XML message format the PI runtime can process ( XI
message format ). In case also additional security-related configuration settings apply, the message is handled accordingly.
Because a sender agreement applies, the message is handed over to the IE, and further processing is executed there.
2. Integration Engine pipeline processing
Processing of the message in the IE pipeline contains the following steps:
1. Inbound XML validation
Based on the configuration settings, the inbound message is checked with regard to validity of its XML schema.
2. Receiver determination
Based on the receiver determination that is found for the message, the receivers of the message and the routing conditions are evaluated. The
receiver is written into the message header. In case multiple receivers are configured, for each receiver, a separate message is created.
3. Mapping
Based on the interface determination that is found for the message, the assigned mapping program is performed and the content of the message
transformed accordingly.
4. Interface determination
Based on the interface determination that is found for the message, the assigned inbound interface (at the receiver side) is evaluated.
Note
More sophisticated scenarios can be configured where a message is sent to multiple inbound interfaces or where a large message is split into
several message chunks which are then sent to different inbound interfaces. For sakes of simplicity we do not consider these cases here and
instead of that refer to the corresponding section: Defining Message Splits .
5. Outbound XML validation
Based on the configuration settings, the outbound message (to be sent to the receiver) is checked with regard to validity of its XML schema.
3. Receiver adapter processing
In the example illustrated in the figure above, a receiver adapter is assigned for outbound processing that runs on the IE. Therefore, the message
processing is continued on the IE. Based on the configuration of the receiver adapter (that is assigned to the receiver agreement), the message is
transformed technically from the XI message format to the format the receiver can process. In case also additional security-related configuration
settings apply, the message is handled accordingly.
For the sake of completeness, the following figures illustrate the additional cases.
Figure 6: Dual Usage Type Message Processing (IE Sender Adapter, AAE Receiver Adapter)
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 44 of 124
Figure 7: Dual Usage Type Message Processing (AAE Sender Adapter, AAE Receiver Adapter)
More detailed information on the individual steps in a dual usage type message processing scenario: Saving Message Versions in the AAE (Dual Usage Type
Message Processin
Note
This description applies for AAE-only message processing scenarios.
The following figure shows the processing steps.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 45 of 124
Note
More sophisticated scenarios can be configured where a message is sent to multiple inbound interfaces or where a large message is split into
several message chunks which are then sent to different inbound interfaces. For sakes of simplicity we do not consider these cases here and
instead of that refer to the corresponding section: Defining Message Splits .
5. Mapping
Based on the configuration settings in the integrated configuration ( Receiver Interfaces tab page), the assigned mapping program is performed and the
content of the message transformed accordingly.
6. Outbound XML validation
Based on the configuration settings, the outbound message (sent to the receiver) is checked with regard to validity of its XML schema.
7. Receiver adapter processing
Based on the configuration of the receiver adapter (that is assigned to the integrated configuration), the message is transformed technically from the XI
message format to the format the receiver can process. In case also additional security-related configuration settings apply, the message is handled
accordingly (for example encrypted, in case the corresponding security level is configured).
Note
Note that for sake of simplicity, the figure above does not cover more sophisticated use cases like, for example, message split scenarios.
The following related section describes at which steps within the processing sequence, a message version can be saved for administrative purposes: Saving
Message Versions in the AAE (Local Message Processing)
Note
As configuration data also uses design data from the Enterprise Services Repository (ES Repository), cache refresh can also include data from the ES
Repository. This applies to mapping programs used in configuration objects in particular.
This mechanism improves performance when operating integration scenarios because it minimizes the communication between the runtime engines, ES
Repository, and Integration Directory involved. In addition to this, the caching mechanism makes sure that the runtime engines can continue their operation
also if the connection to the ES Repository and the Integration Directory is interrupted temporarily.
Cache refresh is triggered automatically when an object in the ES Repository or in the Integration Directory is activated. In addition to this, the cache refresh
can be initiated manually.
The following figure shows the runtime caches in an SAP PI dual usage type installation.
Note
In an Advanced Adapter Engine Extended (AEX) installation, the Integration Engine cache is missing. Besides that, the figure also applies for the AEX.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 46 of 124
The following runtime caches (also referred to as cache consumer ) are used:
CPA cache
Is used by the Advanced Adapter Engine (AAE) in order to process messages at runtime in accordance to the configuration settings.
This cache contains, for example, all configuration data related to configuration of adapters of the AAE.
Mapping cache
Is used by the mapping runtime in order to execute mappings at runtime in accordance to the configuration in Integration Directory and the mapping
program defined in the ES Repository.
Integration Engine cache
Is used by the Integration Engine in order to process messages at runtime in accordance to the configuration settings.
This cache contains, for example, all configuration data for the adapters that run on the Integration Engine.
Business system cache (AS ABAP)
Is used in connected SAP systems based on Application Server ABAP.
This cache contains in particular configuration settings related to communication components.
It also contains configuration data maintained in communication channels with adapter type WS .
One configuration object can have multiple cache consumer.
Example
Depending on the scenario, the configuration settings of a communication channel are replicated to the CPA cache and to a business system cache.
Automatic Cache Refresh
Automatic cache refresh is initiated when a cache-relevant object in the ES Repository (for example, a mapping) is changed and activated. Then the ES
Repository notification service (see figure above) sends cache notifications to the Integration Directory. Depending on the information sent with the notification,
the notification service of the Integration Directory evaluates the relevant cache consumer and sends an HTTP request to the cache targets. The cache
consumer are then provided with the relevant update.
Procedure
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 47 of 124
Procedure
This task involves the definition of communication components, communication channels, and (optional) communication parties.
1. Optional: Define the necessary communication parties.
Using a communication party, you generally address a company within a business-to-business process.
More information: Defining Communication Parties
2. Define the necessary communication components and (optional) parties.
To define communication components based on a landscape description in the SLD, perform the following steps:
Logon to the SLD and define the necessary technical systems and business systems.
More information: Describing System Landscape in the SLD
Logon to the Integration Directory and create the necessary communication components based on the business systems in the SLD.
More information: Defining Business System as Communication Component
Note
These communication components are called business system components because they are based on business systems defined in the
SLD.
To define a communication component from scratch without defining the business systems in the SLD, logon to the Integration Directory and
create a business component .
To define a communication component to address an integration process from the ES Repository, create an integration process component .
More information: Define Integration Process as Communication Component
3. To specify the technical communication capabilities of a communication component, you define a communication channel. You need a sender/receiver
communication channel to specify the adapter to connect to a sender/receiver component.
Note
A communication channel provides the configuration interface for the adapter that is used to connect the communication component with the PI
runtime engine.
1. At first, you create a communication channel in the Integration Directory.
More information: Defining Communication Channels
2. You specify the adapter type.
3. You specify the configuration settings for the chosen adapter type.
More information: Configuring Adapters
Procedure
You use communication channels in the Integration Directory to configure the adapters.
With the Adapter Type attribute, you specify the adapter to configure. The possible configuration settings depend on the chosen adapter type.
The links below guide you to detailed information on the configuration interface for each adapter type.
Configuring Adapters of the Integration Engine
Configuring the IDoc Adapter (IE)
Configuring the HTTP Adapter (IE)
Configuring the XI Adapter
Configuring the Communication Channel with Adapter Type WS
Configuring Adapters of the Advanced Adapter Engine
Configuring the RFC Adapter
Configuring the IDoc Adapter (AAE)
Configuring the SOAP Adapter
Configuring the Java Web Service Adapter
Configuring the HTTP Adapter (AAE)
Configuring the File/FTP Adapter
Configuring the JDBC Adapter
Configuring the JMS Adapter
Configuring the Mail Adapter
Configuring the Marketplace Adapter
Configuring the SAP BC Adapter
Configuring the CIDX Adapter
Configuring the RNIF Adapter
More Information
The following sections provide an overview of the supported settings for each adapter:
Adapters (Integration Engine)
Adapters (Advanced Adapter Engine)
Page 48 of 124
Note
The Integration Server also includes the Business Process Engine for scenarios including cross-component Business Process Management.
Depending on the adapter used at runtime, the communication might include the central Advanced Adapter Engine or only the Integration Engine.
More information: SAP PI Dual Usage Type Installation (under Dual Usage Type Message Processing )
The following procedure applies for scenarios where message processing is performed by using both the Integration Engine (based on AS ABAP) and the
Advanced Adapter Engine (based on AS Java).
Procedure
1. Design Integration Content
You define the software components for your development project in the System Landscape Directory (SLD). You design your integration content in the ES
Repository.
In this section, we describe the general procedure when you follow the top-down design approach, which means that you start with a process model and based
on the model specify all other integration content.
More information about the basic concepts: Design Time
Note
There is the option either to design the integration yourself from scratch or to use integration details already designed and delivered by SAP where you can
modify this content according to your needs.
Both of these approaches normally come into play in real-life projects. A typical scenario would, for example, be that you use predefined content (and
enhance it) to outline one part of the integration scenario, whereas another part has to be built completely from scratch. For the specific aspects that you
have to consider when using predefined content shipped by SAP, see Using Predefined Integration Content .
1. Define the software components you need for your developments.
Note
You need these entities in order to organize the ESR content (interfaces, mappings, for example) you define with the following steps.
More information: Organizing and Managing Content in ESR
2. Log in to the ES Repository and choose the usage profile Process Integration (SAP BASIS 7.30).
More information: Usage Profile
3. Define a process model.
There are different modeling approaches available in the ES Repository. Decide to use either of the following approaches and follow the procedures
described in one of the following sections:
Defining Process Integration Scenarios
Defining Process Component Architecture Models
For an overview of the model types, see: Process Models .
4. Define the necessary interface objects.
Designing interface objects implies the following sub tasks:
Designing data types
Designing message types
Designing service interfaces and their operations
There are other interface object types for special use cases, for example, context objects. For more information about the concepts behind these
objects, see Interface Objects in the ES Repository .
More information about the development procedure: Defining Interface Objects
5. Define the necessary mapping objects.
More information: Defining Mappings
6. Activate your ESR objects.
2. Configure Integration Content
At configuration time you specify how messages have to be exchanged between the individual systems or applications of the existing system landscape - in
accordance with the process model and additional integration content specified at design time.
More information about the basic concepts: Configuration Time
Key tools for this phase are the System Landscape Directory and the Integration Directory.
Recommendation
We recommend that you use a process model from the ES Repository as configuration template. Doing this, you can configure inbound processing,
routing, mapping and outbound processing semi-automatically.
More information:
Using the Process Model as a Configuration Template
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 49 of 124
Model-based Configuration
Defining Collaboration Profile
This task involves the definition of communication components, communication channels and (optional) communication parties.
More information: Defining Collaboration Profile
Configuring Inbound Message Processing
To specify the inbound processing, you define which (sender) communication channel (or sender adapter) is to be used to transform the incoming message
into the message format that can be processes by the PI runtime. You do this by defining a sender agreement. In a sender agreement, you also can define
security settings. Which security settings are supported, depends on the chosen adapter type.
To create a sender agreement, you first have to specify the following object key attributes: The sender component (to identify where the message comes from)
and the outbound interface (to identify which message the sender agreement applies to).
More information: Defining Sender Agreements
Note
Sender agreements are not mandatory in all cases. You only have to define sender agreements when using special sender adapters that are configured
explicitly at the inbound channel of the Integration Server (for example, sender File/FTP adapters). You also have to define a sender agreement when you
want to apply specific security settings for the processing of the incoming message.
Note
You can make it easier for a business partner (sender) to call the Integration Server by publishing the sender agreement in the Services Registry. The
business partner can then access the sender agreement in the form of a WSDL file in the Services Registry, before the firewall. The WSDL description
contains all the relevant configuration data from the sender agreement as well as the assigned communication channel, which are required to call the
Integration Server.
More information: Publishing Sender Agreements in the Services Registry
Configuring Routing and Mapping
The routing configuration is made up of the definition of receiver determinations and interface determinations. In receiver determinations you specify the
receiver components of the message. In interface determinations you specify the receiver interfaces and mappings.
1. Define the required receiver determinations.
For each incoming message of a specific sender system (which is the key of the receiver determination), you define a receiver determination.
More information: Defining Receiver Determinations
Note
When configuring a receiver determination, you also have the option to specify behavior at runtime if a receiver is not found. When you choose the
option that the message processing is terminated with an error, you can correct the configuration and restart the message processing. More
information: Displaying XML Message Versions
2. Define the necessary interface determinations.
You define an interface determination for a sender, an incoming message, and a specific receiver system.
More information: Defining an Interface Determination
Configuring Outbound Message Processing
To specify the outbound processing, you define which (receiver) communication channel (or receiver adapter) is to be used for an outgoing message (targeted
at a specific inbound interface of a specific receiver system). You do this by defining a receiver agreement. In a receiver agreement, you also can define
security settings (depending on the chosen adapter type). When creating a receiver agreement, you have to specify a receiver component, a receiver (inbound)
interface, and a sender component.
More information: Defining Receiver Agreements
Activating Configuration Objects
Activate the configuration objects so that your configuration settings become runtime-relevant.
More information: Change Lists
Recommendation
Although the Integration Engine and Advanced Adapter Engine are installed on the same Integration Server, the Integration Engine is not involved in this
type of message processing. This means you can usually achieve a higher level of performance than if the Integration Engine were involved.
Caution
Note the following restrictions for design time, compared to a full installation of SAP PI:
You can only use process integration scenarios for process modeling.
You cannot use integration processes (ccBPM).
The following adapter types are not supported: IDoc (ABAP-based), XI, HTTP (ABAP-based), WS-RM.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 50 of 124
More information: SAP PI Dual Usage Type Installation (under Local Message Processing Using the AAE )
Procedure
1. Design Integration Content
You design the integration content in the same way as described under Setting up Scenarios Using Dual Usage Type Message Processing (see section 1.
Designing Integration Content ).
2. Configure Integration Content
At configuration time you specify how messages have to be exchanged between the individual systems or applications of the existing system landscape - in
accordance with the process model and additional integration content specified at design time.
More information about the basic concepts: Configuration Time
Key tools for this phase are the System Landscape Directory and the Integration Directory.
Caution
Note that for the configuration of AAE-based message processing you can only use process integration scenarios as configuration template.
Defining Collaboration Profile
This task involves the definition of communication components, communication channels and (optional) communication parties.
More information: Defining Collaboration Profile
Caution
For the communication channel, you can only use adapter types that run on the AAE.
More information: Configuring Adapters under Configuring Adapters of the Advanced Adapter Engine
Configuring Message Exchange
This task involves the configuration of the inbound processing, routing, mapping and outbound processing (phases of message processing).
1. Log on to the Integration Directory.
2. Create an integrated configuration and specify the corresponding attributes for each of the phases of message processing.
More information: Defining the Integrated Configuration
Recommendation
As far as you have defined a process integration scenario at design time, you can use the model configurator to specify the message exchange.
More information: Configuring Process Integration Scenarios
3. Activate the configuration objects.
Procedure
More information:
Developing and Configuring Mappings
Developing and Configuring Integration Processes
Applying Advanced Routing Techniques
Configuring B2B Integration
Encrypting Message Content on Database Level
Configuring Principal Propagation
Developing and Configuring Web Service Scenarios
Implementing and Generating Proxies in Application Systems
Developing a Java Adapter for SAP PI
Procedure
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 51 of 124
Procedure
Defining Mappings
These are the steps to define a mapping:
Tasks at Design Time
1. Implement the mapping using one of the available kinds of mapping programs.
For an overview of the supported types of mapping programs, see Mapping Programs
The ES Repository provides a graphical editor to design mappings intuitively. Mappings designed with the graphical editor are called message
mappings .
More information:
Message Mappings (Overview)
Message Mappings (Detailed Information)
2. In the ES Repository, create an operation mapping for a pair of source and target interface operation.
More information:
Preconfiguring Mapping Programs with Operation Mappings
Operation Mapping
3. Assign the mapping program to the operation mapping.
4. Activate the mapping objects you have created.
Tasks at Configuration Time
To configure mapping, you need to select an operation mapping from the ES Repository for a specific communication step. You do this in the Integration
Directory in an interface determination or in integrated configuration object depending on the chosen connectivity option.
More information: Defining an Interface Determination
Defining the Integrated Configuration
To specify the mapping, choose the Receiver Interfaces tab.
Applying Advanced Mapping Techniques
More information: Applying Advanced Mapping Techniques
Processing Mappings at Runtime
The Process Integration runtime executes the mappings configured in the Integration Directory at runtime after receiver identification has taken place. If no
mapping is required for a connection then the Process Integration runtime skips the mapping step.
Procedure
Designing and Configuring Multi-Mappings
Designing and Configuring Value Mappings
Designing and Configuring Parameterized Mapping Programs
Designing Mappings for Adapter-Specific Message Attributes
Designing and Configuring Mapping Lookups
Procedure
Designing 1:n Transformations for Message Splits (Interface Determination)
You can use a 1:n multi-mapping to map a message to multiple different (and generally smaller) messages during logical routing (mapping-based message
split). To set up a message split scenario, you have to perform the following steps:
1. ES Repository: Create the necessary multi-mapping and assign it to an operation mapping.
More information: Developing Multi-Mappings for Message Splits
2. Integration Directory: Select the operation mapping in the corresponding configuration object.
For Integration-Engine-based communication, you do this assignment in an interface determination.
For local message exchange using the Advanced Adapter Engine or in case you use the Advanced Adapter Engine Extended, you do this
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 52 of 124
Note
It is a prerequisite that the message schemas for the messages to be mapped exist in the ES Repository and that they are assigned to
asynchronous, abstract service interfaces. You can only use this interface type in integration processes.
More information: Developing Multi-Mappings for Integration Processes
2. ES Repository: Create an integration process and enter the operation mapping in a transformation step in an integration process.
More information: Transformation Step
Example
For example, a customer is identified in a sender system by a customer number, whereas in a receiver system the customer is identified by a name.
There are several options for performing value mappings:
Using standard function FixValues
Using standard function Value mapping
Procedure
Using Standard Function FixValues
This is the easiest way to define a value mapping. In the target field mapping, you assign the standard function FixValues from the Conversions function
group. Using this function, you can define value pairs. However, the value mapping defined by such a pair can only be used in the corresponding message
mapping. Furthermore, this is a rather "static" option for defining a value mapping, since the value pairs have to be known at design time.
Using Value Mapping Tables from Configuration
A more flexible and dynamic way to define a value mapping is to use the standard function Value mapping (Conversions function group area). Using this
standard function, you can refer to value pairs that are defined at a later point in time during configuration. To define the value pairs from configuration time,
you use a value mapping group in the Integration Directory.
The advantages of this approach are that value mappings can be reused within different message mappings and values can be specified later at configuration
time.
Note
In many cases, the names of objects are not known prior to configuration time.
To refer to the values (that are not already known at design time) in the message mapping, in the function Value mapping you use the key fields Agency
and Schema .
Note
If you refer to a value mapping table created manually in the Integration Directory, you have to select http://sap.com/xi/XI as Value Mapping
Context . The value mapping context identifies the source of the value pairs.
At configuration time, you define the actual values of the objects by creating value mapping groups. A value mapping group is a configuration object in the
Integration Directory and contains different representations of the same object. To enter the values that identify the objects in different frames of reference,
you use the key fields Agency and Schema .
Note
Agency and scheme set a frame of reference within which an object can be uniquely identified. For more information, see Identifiers .
As an alternative to the manual creation and editing of value mapping groups, you can replicate value pairs from external data sources using a special
interface. The interface objects are available as part of SAP predefined content in the software component SAP BASIS. For more information, see Value
Mapping Replication .
More information: Value Mapping
Page 53 of 124
Note
This is another way to execute mappings dynamically, in the sense that the actual values are not known until configuration time (see also Defining
and Configuring Value Mappings ).
At design time (using a transformation step in an integration process (ccBPM) in the ES Repository)
You can define parameterized mapping programs for message mappings, Java mappings, and XSLT mappings with Java enhancements.
Procedure
To set up a scenario with a parameterized mapping program for a message mapping, you have to perform the following steps:
1. Define the parameters at design time. To do this, you have to perform the following steps:
In the message mapping (on the Signature tab), define the parameters to be used in the target field mapping.
In the operation mapping (that references the message mapping), create parameters (by choosing Parameters ) and connect them with those of
the message mapping (by choosing Binding ).
You can set either Simple Type or Adapter as the Category for the parameter. The category Adapter is only relevant if you set up a mapping
lookup scenario.
2. Values can be entered for the parameters from the following locations:
Integration Directory: in the interface determination which uses the operation mapping
ES Repository: in a transformation step of an integration process
More information: Parameterized Mapping Programs
Procedure
More information:
Java Mapping of Adapter-Specific Message Attributes
ABAP Mappings (see the interface documentation for the interface IF_MAPPING_DYNAMIC_CONF)
Procedure
To set up a mapping lookup scenario, you have to perform a combination of activities at design and configuration time:
1. At design time (in the ES Repository), you define the mapping program.
You can define lookups for message mappings, Java mappings, and XSLT mappings with Java enhancements.
At design time, you have to perform the following steps:
1. Provide an import function parameter (of type Adapter)
2. Implement the call to the application system (using the import parameter)
More information:
Using the Lookup API in a Java Mapping Program
Using the Lookup API in an XSLT Program
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 54 of 124
Note
When setting up lookups using the JDBC or the RFC adapter with a message mapping, you can perform this step graphically.
More information:
Defining JDBC Lookups Graphically
Defining RFC Lookups Graphically
2. At configuration time (in the Integration Directory), you have to perform the following steps:
1. Configure the corresponding adapter in a (receiver) communication channel.
More information: Defining Communication Channels
2. Assign the corresponding operation mapping (that refers to the mapping program) in an interface determination.
You have to do this to ensure that the ID of the receiver channel is transferred to your mapping program at runtime.
More information: Defining an Interface Determination
More information: Adding Lookups to Mapping Programs
Procedure
1. Implement a Parameterized Java Mapping Program
1. To be able to execute the lookup, your Java mapping program requires an import parameter of type Adapter . Create a Java mapping (see steps 1 and
2 in Parameterizing Java Mappings ).
2. Using the lookup API and the import parameter, implement the call to the application system.
For JDBC adapter calls, use the specific lookup API for the JDBC adapter (see: Implementing Lookups Using DataBaseAccessor ).
For calls with all other adapters, use the generic lookup API (see: Implementing Lookups Using SystemAccessor ).
3. To be able to assign a receiver channel to this import parameter later, you must assign the import parameter to an operation mapping parameter by using
a binding (see steps 3-7 in Parameterized Java Mappings ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver communication channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
2. To transfer the ID of the receiver channel to your Java mapping program at runtime, create an interface determination and assign it to the operation
mapping from step 3.
More information: Defining an Interface Determination
Caution
You can only execute the mapping lookup once you have performed these steps and have installed the runtime components of the Integration
Server. If this is not the case, the Java mapping program will terminate with an error message.
Result
You have implemented a lookup in your Java mapping program, and have configured it in the Integration Directory. You can now test the Java mapping
program in the operation mapping (see: Test Environment for Operation Mappings ).
Procedure
To add a lookup to an XSLT program, you must parameterize it and use the lookup API. To access parameters and to use the mapping API, you must call
Java methods in the XSLT program. To minimize the number of Java methods that need to called, SAP recommends that you encapsulate the entire mapping
lookup in one single Java method.
1. Implement a Parameterized XSLT Mapping Program
1. To be able to execute the lookup, your XSLT mapping program requires an import parameter for the adapter that is to be used. Create an XSLT mapping
(see steps 1 and 2 in Parameterizing XSLT Mappings ). At runtime, the relevant operation mapping uses the import parameter to transfer the ID of an
appropriate receiver channel for the adapter (see steps 4-6).
2. Create a Java mapping program by implementing the look up. The method that you want to use to execute the lookup must have a parameter in order to
transfer the ID of the receiver channel (see step 1) from the XSLT program. Furthermore, add additional parameters that are required for the lookup and
for transferring the result to the XSLT program, to the signature of the Java method.
More information: XSLT Mapping with Java Enhancement
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 55 of 124
3. Using the lookup API and the import parameter, implement the call to the application system within the Java method.
For JDBC adapter calls, use the specific lookup API for the JDBC adapter.
More information: Implementing Lookups Using DataBaseAccessor
For calls with all other adapters, use the generic lookup API.
More information: Implementing Lookups Using SystemAccessor
4. To be able to assign a receiver channel to this import parameter later, you must assign the import parameter to an operation mapping parameter by using
a binding (see steps 3-7 in Parameterized XSLT Mappings ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
2. To transfer the ID of the receiver channel to your XSLT mapping program at runtime, create an interface determination and assign it to the operation
mapping from step 4.
More information: Defining an Interface Determination
Caution
You can only execute the mapping lookup once you have performed these steps and have installed the runtime components of the Integration
Server. If this is not the case, the XSLT mapping program will terminate with an error message.
Result
Using a Java enhancement, you have implemented a lookup in your XSLT mapping program, and have configured it in the Integration Directory. You can now
test the XSLT mapping program in the operation mapping (see: Test Environment for Operation Mappings ).
Prerequisites
Note the prerequisites for the adapter that you want to use for the lookup.
More information: Adding Lookups to Mapping Programs
You have already created a message mapping and are in the mapping editor.
Procedure
1. Implement a Parameterized Message Mapping Program
1. To execute the lookup, your user-defined function requires an import function parameter of type Adapter , which is assigned to the message mapping
parameter (see step 1-3 in Defining and Using Import Parameters ).
2. Using the lookup API and the import parameter, implement the call to the application system
If the features of the standard function for graphical JDBC lookups (see above) are not sufficient for your application, use the specific lookup API
for the JDBC adapter.
More information: Implementing Lookups Using DataBaseAccessor
For calls with all other adapters, use the generic lookup API
More information: Implementing Lookups Using SystemAccessor
3. If, later, you want to assign a receiver channel to the message mapping parameter that you assigned the import function parameter to in step 1, you
must assign this import parameter to an operation mapping parameter by using a binding (see step 4-8 in Defining and Using Import Parameters ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
2. To transfer the ID of the receiver channel to your message mapping program at runtime, create an interface determination and assign it to the operation
mapping from step 3.
More information: Defining an Interface Determination
Caution
You can only execute the mapping lookup once you have performed these steps and have installed the runtime components of the Integration
Server. If this is not the case, the message mapping program will terminate with an error message.
Result
You have implemented a lookup in a user-defined function of your message mapping program, and have configured it in the Integration Directory. You can now
test the message mapping program in the operation mapping (see: Test Environment for Operation Mappings ).
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 56 of 124
Prerequisites
To be able to graphically model the lookup, you must know the table structure of the table that is to be accessed. To use the table structure in the mapping
editor, you must import it to the Enterprise Services Repository as an external definition (see step 2). To do this, the following conditions must be met:
The table must be defined in the database.
To access the table of the database, a JDBC adapter instance and the relevant database must be running.
Special Prerequisites for Databases
The mapping editor generates Java program code from the graphical definition of the mapping lookup. The SELECT statement that is generated contains the
fields you access using the default function in the graphical JDBC lookup. The fields are set in double quotation marks to avoid conflicts with SQL keywords.
Example
In the mapping lookup, access an ORDER field that contains a request number. The SQL SELECT statement however contains an ORDER keyword to set
the order. To identify the field in the SELECT statement as identifier for a field it must be set in doubled quotation marks ( "ORDER" ). Otherwise the
statement syntax is incorrect.
The database that you want to access using the JDBC lookup must work with double quotation marks for accessing fields in the SQL syntax. This can be
configured for the database in some cases: for example, if a JDBC lookup, which is described by the graphical standard function, only functions with a MySQL
database when the SQL mode ANSI or ANSI_QUOTES is set.
Procedure
1. Enable Access to the Database Table
1. In the Integration Directory, create the JDBC receiver channel for the call to the application system.
More information:
Defining Communication Channels
Configuring the Receiver JDBC Adapter
Note
This receiver channel is initially only required for reading the table structure. The developer or consultant can create a different receiver channel later
to access the same table in a different system (see also step 8 below).
2. Create an external definition in the Enterprise Repository and import the table structure for the lookup (see: Importing Table Structures from a Database
).
2. Define a Parameterized Message Mapping Program
1. In the Enterprise Services Repository, create a message mapping with a source and target structure, or open an existing message mapping for editing.
2. In the mapping editor, switch to the Signature tab page. Create an import message mapping parameter of category Adapter (for example, MMP_JDBC )
and assign it the adapter metadata of the JDBC adapter. The adapter metadata of the JDBC adapter is shipped by using software component SAP
BASIS.
3. In the mapping editor, navigate to the Definition tab page and then to the target-field mapping for which you want to define the JDBC lookup.
4. Drag the standard JDBC lookup function to the data-flow editor and define the SELECT statement in the function properties graphically:
1. Select the import message-mapping parameter for the JDBC adapter from the dropdown list box ( MMP_JDBC from step 4). The message mapping
uses this parameter later to transfer the ID of the receiver channel to the function which is to be used for the lookup (see steps 7 and 9).
2. Call input help and select the external definition from step 2.
3. Define the SELECT statement.
All available fields are displayed in the middle of the standard-function editor. The mapping editor creates an inbound or outbound parameter
for the function for each field that you add to the right or left column.
Add all fields that you want to use to read a row in the database table to the column on the left. You must assign values to these fields later.
To do so, in the data-flow editor, assign them the source fields or result values of other functions. If you do not specify a unique key when
you select the fields, multiple rows are read.
Add all the fields that you want to apply from the result of the SELECT statement and want to process further to the column on the right. If a
SELECT statement selects multiple rows, the function returns a result queue for each result parameter.
4. If you have selected the relevant checkbox in the function properties of the standard function, the mapping runtime inserts a context change after
each value in the result queue.
5. If, later, you want to assign a receiver channel to the message mapping parameter that you assigned the import function parameter to in step 1
(MMP_JDBC), you must assign this import parameter to an operation mapping parameter by using a binding (see step 4-8 in Defining and Using Import
Parameters ), for example IM_JDBC.
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
3. Configure a Receiver Channel for Mapping Lookups
1. If you want to use a different JDBC receiver channel to the one in step 1, in the Integration Directory, create a new receiver channel for calling the
application system.
More information:
Defining Communication Channels
Configuring the Receiver JDBC Adapter
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 57 of 124
2. To transfer the ID of the receiver channel to your message mapping program at runtime, create an interface determination and assign it the operation
mapping from step 7. Then, in the interface determination, you can assign the receiver channel to the operation-mapping parameter (in the example
IM_JDBC ).
More information: Defining an Interface Determination
Caution
You can only execute the mapping lookup once you have performed these steps and have installed the runtime components of the Integration
Server. If this is not the case, the message mapping program will terminate with an error message.
Result
You have defined a lookup in your message mapping by using the standard JDBC Lookup function, and have configured it in the Integration Directory. You can
now test the message mapping program in the operation mapping (see: Test Environment for Operation Mappings ).
Prerequisites
To be able to model the lookup graphically, the structure of the RFC must be known. To use this structure in the mapping editor, you must import the RFC to
the Enterprise Services Repository (see step 2 below).
Procedure
Enable RFC Call and Import RFC for Mapping Editor
In the Integration Directory, create the RFC receiver channel for the call to the application system.
More information:
Defining Communication Channels
Configuring the Receiver RFC Adapter
This receiver channel is initially only required for testing the lookup. The developer or consultant can create a different receiver channel later to call the same
RFC in a different system (see also step 8 below).
Import the RFC into the Enterprise Services Repository.
More information: Importing IDocs and RFCs
Define a Parameterized Message Mapping Program...
In the Enterprise Services Repository, create a message mapping with a source and target structure, or open an existing message mapping for editing.
In the mapping editor, switch to the Signature tab page. Create an import message-mapping parameter of category Adapter (for example, MMP_RFC ) and
assign it the adapter metadata of the RFC adapter. The adapter metadata of the RFC adapter is shipped in software component SAP BASIS.
In the mapping editor, navigate to the Definition tab page and then to the target-field mapping for which you want to define the RFC lookup.
Drag the standard function RFC Lookup in function category Conversions to the data-flow editor and define the call graphically in the function properties:
Select the import message-mapping parameter for the RFC adapter from the dropdown list box ( MMP_RFC from step 4). The message mapping uses this
parameter later to transfer the ID of the receiver channel to the function which is to be used for the lookup (see steps 7 and 9).
Call input help and select the imported RFC from step 2.
To define the RFC call, in the function properties for standard function RFC Lookup, model the inbound and return parameters for the function, and model
how they are associated with the request and response parameters of the RFC. If you connect source fields or functions with the inbound parameters
later, you implicitly define a mapping between these source fields or functions and the parameters of the RFC request (left-hand side). At runtime, this
mapping is processed in the same way as a target-field mapping. In the function properties, you then define which parameters of the RFC response can
be assigned to target fields or functions by using the return parameters in the dataflow editor (right-hand side).
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 58 of 124
Result
You have defined a lookup in your message mapping by using the standard function RFC Lookup, and have configured it in the Integration Directory. You can
now test the message mapping program in the operation mapping (more information: Test Environment for Operation Mappings ).
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 59 of 124
You can use ccBPM to define an integration process. An integration process is composed of a specific flow of steps (including the sending and receiving of
messages), during which the status of the process is persisted on the Integration Server. In an integration process, you can define a specific level of process
control. For example, you can specify how long an integration process must wait for further messages to arrive, or you can group incoming messages and then
send them in a particular order. You can also define control structures, such as loops and processing branches that are independent of each other. You can
define conditions that control processing depending on the result of the condition. You can correlate messages with each other in order to ensure that
messages that belong together are processed by the same integration process instance.
Caution
You cannot use integration processes in the following cases:
Scenarios that are based on an AEX installation
Scenarios using local message exchange on the Advanced Adapter Engine in a standard installation of SAP PI
Procedure
To set up a scenario including ccBPM, you have to perform the following tasks:
1. Design an integration process in the ES Repository
An integration process is specified as a separate object in the ES Repository using a graphical editor. To make sure that the integration process can
send and receive messages, you have to embed the integration process in an overall scenario or model. The model type has to be a process integration
scenario .
Caution
In order to embed an integration process into an overall scenario or model, you cannot use an integration scenario model or a process components
interaction model as the overall process model. Instead, you have to use a classical process integration scenario.
More information: Designing Integration Processes
2. Configure the integration process in the Integration Directory
At configuration time, you treat the application component containing the integration process as a single communication component. Based on this
assignment, you configure the process integration scenario using the model configurator.
More information: Configuring Integration Processes
3. Execute and monitor the integration process
Integration processes are executed using a separate runtime component, the Business Process Engine , which comes into play for the execution of
integration processes on the Integration Server.
Related Information
Tutorial: Defining an Integration Process
Procedure
Specifying the Integration Process
Using a graphical process editor, you specify the inner workings of an integration process.
Note
This procedure is documented in detail under Defining and Managing Integration Processes . In this section, we summarize the main aspects.
Specifying an integration process is composed of the following main tasks:
1. Specifying service interfaces
2. Using the graphical process editor
Specifying Service Interfaces
To enable the integration process to exchange messages with other application components, you need service interfaces. For service interfaces used in
integration processes, you have to select Abstract as the Category .
An abstract service interface is an interface that has no defined direction initially. Whereas outbound or inbound interfaces have an implemented interface in an
application system as a counterpart, abstract service interfaces are only used by integration processes to send or receive messages. You can use the same
abstract service interface to receive or to send. You cannot generate a proxy for this interface type.
Caution
An integration process can only reference service interfaces from its own software component version.
More information: Process Signature
Using the Graphical Process Editor
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 60 of 124
Note
For each integration process, you insert a separate application component. In the process integration scenario, you have to model the parts of the
integration process that are involved in message exchange interactions. You use actions to do this.
You find the detailed description of the concept as well as modeling guidelines under Defining Process Integration Scenarios .
Note
Keep in mind that the application component defined for the integration process in the process integration scenario can be seen as the signature of the
integration process. It displays those parts of the integration process that interact with other application components using message exchange.
You can navigate from the corresponding application component to the integration process editor to display or further specify the inner workings of the
integration process.
Procedure
You configure an integration process in the Integration Directory.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 61 of 124
To enable an integration process to be addressed as a sender or receiver of messages, you need to define a communication component of type integration
process (or integration process component). You basically create a communication component, specify a name, and assign the integration process from the
ES Repository. If you have defined Configurable Parameters , you can specify them further here.
Note
You do not assign a communication channel to an integration process component.
More information: Define Integration Process as Communication Component
The subsequent configuration of the message exchange including the integration process component is then performed using basically the same procedure as
already described under Developing and Configuring Integration Scenarios .
Procedure
More information:
Defining Content-Based Routing
Defining Dynamic Routing
Defining Message Splits
Procedure
To configure content-based routing, you basically do the following:
When configuring content-based routing in a receiver determination or receiver rule, you define routing conditions for specific receivers or a sets of
receivers.
When configuring content-based routing in an interface determination, you define routing conditions for specific sets of inbound interfaces.
Create one of the following objects in the Integration Directory:
Defining Receiver Determinations
Defining a Receiver Rule
Defining an Interface Determination
Note
For local message exchange using the Advanced Adapter Engine or in case you use the Advanced Adapter Engine Extended, you configure content-based
routing in an integrated configuration ( Receiver tab page or Receiver Interfaces tab page).
More information: Defining the Integrated Configuration
When you define a routing condition, you basically specify the following attributes:
With the Left Operand , you specify the payload element of the incoming message upon which the routing to the specified receiver is to depend.
In the Right Operand , you enter a value for the payload element.
You choose a specific Operator to link both operands.
You have the following options to specify the payload element:
Using an XPath expression
Using this option, you can select the payload element intuitively from the structure of the incoming message (which is defined by the outbound interface
in the key of the receiver determination or interface determination).
Note
You cannot specify expressions using XPath when you define conditions in receiver rules.
Using a context object
Using this option, you select a context object that has been defined for the outbound interface. A context object is a design object that can be used as
an abbreviated expression for an XPath expression to address a specific payload element.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 62 of 124
Note
A context object has to be defined with the corresponding outbound interface in the ES Repository beforehand. So, if you already know at design
time the payload elements upon which the routing is likely to depend, you can define the corresponding context objects in the ES Repository at the
corresponding service interface.
More information: Creating Context Objects
Procedure
Extended receiver determination is supported for both kinds of message processing (dual usage type and the Advanced Adapter Engine message processing).
More information:
Defining Extended Receiver Determination (Dual Usage Type) (dual usage type message processing)
Note
This procedure is only relevant in case you have a dual usage type SAP PI installation and configure message processing using both stacks
(Integration Engine and Advanced Adapter Engine).
Defining Extended Receiver Determination (Advanced Adapter Engine) (message processing using the Advanced Adapter Engine only)
Note
This procedure is relevant in case you have a dual usage type SAP PI installation and configure message processing using the Advanced Adapter
Engine only (bypassing the Integration Engine).
Note
The service interface uses the message type Receivers and the data type Receivers. The data type Receivers describes a list of receivers
and has the following structure:
The following instance of the data type Receivers contains two receivers. The first receiver comprises a party (element Party) and
communication component (element Service) and is identified by a DUNS number; the second receiver comprises a communication component
without a party.
<Receivers>
<Receiver>
<Party agency="016" scheme="DUNS"></Party>
<Service>"MyService"</Service>
</Receiver>
<Receiver>
<Party agency="http://sap.com/xi/XI" scheme="XIParty"></Party>
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 63 of 124
<Service>"ABC_200"</Service>
</Receiver>
</Receivers>
You can specify party and communication component for each receiver.
2. Define an extended receiver determination in the Integration Directory
Enter the outbound interface of the operation mapping from above in the key of the receiver determination as the outbound interface. Assign this
operation mapping to the receiver determination.
More information: Defining Extended Receiver Determination
3. Define the remaining configuration objects in Integration Directory (interface determination, sender and receiver agreements).
Note
As you can use wildcards ( *) to mask the keys of these configuration objects, you can leave out the names of the receivers.
Usage of wildcards therefore makes it possible to fully source out the determination of receivers to a mapping look-up executed at runtime. With
other words, the names of the receivers don't need to be known already at configuration time.
More information on usage of wildcards: Defining Configuration Objects Generically/Specifically
Note
If the mapping program returns an XML file with empty or missing <Service></Service> tag, the message is routed to the default receiver (that is
configured in the receiver determination under If No Receiver Is Found, Proceed as Follows , option Select the Following Receiver: ).
Procedure
Defining an Interface Split
By default, in an interface determination you specify one or more inbound interfaces for a given receiver system. For each inbound interface, you might also
like to assign a mapping since the inbound interfaces are most likely different from each other.
This is the basic procedure:
1. Define the service interfaces and operations in the ES Repository.
2. Optional: Define the necessary mappings in the ES Repository.
3. Define an interface determination in the Integration Directory (for Integration Engine-based communication) or an integrated configuration (for all
scenarios where messages are processed by the Advanced Adapter Engine).
More information:
Defining an Interface Determination
Defining the Integrated Configuration
The figure below shows the behavior at runtime:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 64 of 124
In the interface determination or integrated configuration, select the multi-mapping from the ES Repository (in the Operation Mapping field).
Note
Note that in an interface determination you can select multi mappings for 1:n, n:1, or m:n transformations from the ES Repository. However, at
runtime only 1:n transformations can be processed.
The target interfaces defined for the multi-mapping in the ES Repository are then calculated and displayed in the interface determination.
More information:
Defining an Interface Determination
Defining the Integrated Configuration
The figure below shows the behavior at runtime:
Caution
Using this option, you can only configure a message split where the split messages are sent to different inbound interfaces of the same receiver system.
The reason for this is as follows: During runtime, the receiver determination step is performed prior to the mapping step. At the time when the multimapping is performed and the corresponding inbound interfaces are calculated (and the corresponding split messages are generated), there is no chance to
do another receiver split . The resulting split messages can only be sent to the receiver system determined in the previous step.
Routing the Split Messages to Different Receiver Systems
To configure a message split where the split messages are routed to different receiver systems, you define the message split using several 1:1 mappings
(instead of one 1:n mapping).
This is the procedure:
1. In the ES Repository, define the necessary 1:1 mappings for each of the intended split messages. Each mapping creates another subset of line items
out of the large source message.
2. In the Integration Directory, do the following:
1. Configure the different receiver systems in a receiver determination.
More information: Defining Receiver Determinations
2. For each configured receiver, define an interface determination or an integrated configuration. Assign the right 1:1 mapping and inbound interface.
More information:
Defining an Interface Determination
Defining the Integrated Configuration
The behavior at runtime is illustrated in the figure below:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 65 of 124
Procedure
1. In the sender adapter, select Set Adapter-Specific Message Attributes and select the attributes you want to use in the message header.
For more information, see the Adapter-Specific Message Attributes :
Configuring the Sender RFC Adapter
Configuring Sender Plain HTTP Adapter in Integration Directory
Configuring the Sender File Adapter
Configuring the Sender FTP Adapter
Configuring the Sender JMS Adapter
Configuring the Sender SOAP Adapter
Configuring the Sender Mail Adapter
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 66 of 124
Note
You can use this feature if you run scenarios that involve the exchange of sensitive data and you want to prevent malicious users from accessing this
data.
For more information on how this function is related to the Payment Card Industry - Data Security Standard (PCI-DSS) , see: Using SAP PISAP PI in
PCI-Compliant Scenarios .
The encryption of the message payload at the database level has the following characteristics:
It can be activated for specific service interfaces.
This means encryption can be activated for specific scenarios that include the exchange of sensitive business data.
It affects the complete payload of the message.
When you activate encryption for a service interface, the complete payload will always be stored encrypted.
Note that encryption of the message payload in the database does not affect how the message content is displayed in monitoring.
Encryption is supported for messages stored in both the Advanced Adapter Engine message database and in the Integration Engine message database.
Limitations
If you plan to use this feature, consider the limitations summarized under Encrypting Message Content on Database Level (Limitations) .
Procedure
You can configure message payload encryption at the database level for the different kinds of message processing that are supported by the available
installation options. In particular, these are the following options:
Dual usage type message processing
In scenarios of this kind both the Integration Engine and the Advanced Adapter Engine (AAE) are involved in message processing at runtime.
Scenarios of this kind are only possible with a dual usage type PI installation.
Message processing using AAE only
In scenarios of this kind only the Advanced Adapter Engine (AAE) is involved in message processing at runtime.
Scenarios of this kind can be implemented either as local message processing using a dual usage type implementation or when using the Advanced
Adapter Engine Extended (AEX).
For more information on these options, see Installation Options .
The individual configuration procedure depends on the involved components. This is the general procedure.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 67 of 124
Note
There are two examples below.
1. Configuring service interfaces (applicable for dual usage type or AAE-only message processing)
Indicate the service interfaces in the Enterprise Services Repository for which message encryption should be activated.
More information: Configuring Service Interfaces for Encryption (ES Repository)
2. Configuring Advanced Adapter Engine (applicable for dual usage type or AAE-only message processing)
You need to configure message encryption in the AAE.
More information: Encrypting Message Content on Database Level (AAE)
3. Configuring central Integration Engine (applicable only for dual usage type message processing)
You need to configure message encryption in the central Integration Engine (IE) that is part of the Integration Server.
More information: Encrypting Message Content on Database Level (Central IE)
4. Configuring business systems with local Integration Engines (applicable for dual usage type or AAE-only message processing)
If the scenario involves business systems with a local Integration Engine, you need to perform additional configuration steps in the connected back-end
systems.
More information: Encrypting Message Content on Database Level (Local IE)
5. Configuring message processing in the Integration Directory (applicable for dual usage type or AAE-only message processing)
Proceed as described under Setting up Scenarios Using Dual Usage Type Message Processing or Setting Up Scenarios Using Local AAE-Based
Message Processing (in section 2. Configure Integration Content ).
Note
Also note the following:
Make sure that the relevant service interfaces specified as sensitive are assigned to the involved communication components. If you are using
business components, you need to assign the relevant service interfaces manually.
Recommendation
Note these general recommendations on how to handle keys:
Be careful if you plan to delete keys. If you have deleted a key, a message (that has been stored encrypted) remains in the database but can no longer be
opened. Do not rename keys during productive scenarios.
Configuration Tasks for Different System Landscapes
The configuration procedure and the involved configuration tools depend on the involved components at runtime. The following figure illustrates a possible
setup of components when using dual usage type message processing.
Figure 1: Setup of Components when Using Dual Usage Type Message Processing
In the illustrated setup an adapter of the AAE is used to connect the PI instance to a system that is not specified in more detail. The Integration Engine is
used to connect the PI instance to an SAP system (via the XI adapter).
To configure message encryption for this setup, you need to perform the following configuration tasks:
Configuring service interfaces for encryption (as described under Configuring Service Interfaces for Encryption )
Configuring the AAE (as described under Encrypting Message Content on Database Level (AAE) )
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 68 of 124
Configuring the ( central ) Integration Engine hosted on the PI instance (as described under Encrypting Message Content on Database Level (Central
IE) )
Configuring the local Integration Engine in the connected SAP system (as described under Encrypting Message Content on Database Level (Local IE) )
The following figure illustrates a possible setup of components when only the AAE is involved in message processing .
In the illustrated setup, an SAP system is also connected to the PI instance based on the XI message protocol (configured in the SOAP adapter).
To configure message encryption for this setup, you need to perform the following configuration tasks:
Configuring service interfaces for encryption (as described under Configuring Service Interfaces for Encryption )
Configuring the AAE (as described under Encrypting Message Content on Database Level (AAE) )
Configuring the local Integration Engine in the connected SAP system (as described under Encrypting Message Content on Database Level (Local IE) )
Recommendation
To overcome this limitation, administrators can manually redeliver affected messages or clean up the message database.
More information: Data Storage Security for the Advanced Adapter Engine , Data Storage Security for the Integration Engine
Applying message archiving can disable message encryption.
If an archiving solution is used that does not support encrypted data storage, this can lead to a situation in which configured message encryption at the
database level (as described in this section) is disabled. Administrators are recommended to evaluate the archive solution used in light of this limitation.
Scenarios using Business Process Management and cross-component Business Process Management are not fully supported.
Depending on the scenario, messages or message elements may be stored unencrypted in separate databases even if the message encryption is
configured according to the procedures in this section.
Encryption of logged synchronous messages is not supported in the Advanced Adapter Engine.
However, encryption of logged synchronous messages stored in the Integration Engine message store is supported.
Advanced (user-defined) message search on sensitive message elements is not supported.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 69 of 124
If you define filters that include payload elements with sensitive data, be aware of the fact that these elements are stored unencrypted.
SAP NetWeaver Search and Classification (TREX) is not supported.
TREX stores messages unencrypted.
Message encryption at the database level is not fully supported for all SAP adapters and third-party adapters.
Adapters with their own message storage (for example, RNIF, CIDX adapter) do not support encrypted data storage if the message itself was not
previously encrypted by the sender.
Only service interfaces can be marked as sensitive. Imported IDocs and RFCs cannot be marked as sensitive. Scenarios using those imported
interfaces on either sender or receiver side are currently not supported.
Procedure
The procedure depends on the runtime engine used.
More information:
Configuring Principal Propagation Using the Integration Engine
Configuring Principal Propagation Using the Advanced Adapter Engine
Note
The following description always assumes that there is an integration Server located between the sender and the receiver.
User refers to a entity that can authenticate itself in a system when the security settings are configured appropriately and the necessary authorizations have
been granted. Note that the user name can be different in the sender and receiver systems. Principal propagation means that the identity of the user - and not
their user name - is forwarded.
You can configure principal propagation on the basis of the following authentication methods:
Authentication assertion ticket
This option is supported by the XI, SOAP, and RC adapters
Security Assertion Markup Language (SAML)
This option is supported by the Web service runtime (Web Service Reliable Messaging).
Procedure
For more information, see:
Configuring Principal Propagation (Authentication Assertion Ticket)
Configuring Principal Propagation (SAML)
Prerequisites
The sender and receiver adapters must be one of the following:
XI adapter
SOAP adapter
RFC adapter
Procedure
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 70 of 124
Procedure
1. Configuring Back-End Systems Involved
First configure the involved back-end systems.
The basis of secure principal propagation is a trusted relationship between the involved back-end systems. You perform these steps separately in each backend system.
2. Configuring in the Integration Directory
In the Integration Directory, specify between which entities principal propagation is to take place.
If you would like principal propagation to occur between a sender and a receiver using the Integration Server, perform the following steps:
1. Implement principal propagation from the sender to the Integration Server. In the corresponding sender agreement, on the Parameters tab page, under
Settings for Principal Propagation select the Principal Propagation checkbox.
If this checkbox is selected, the signature of the sender ticket is verified and the corresponding user can log on to the Integration Server.
For more information, see: Defining Sender Agreements
2. Implement principal propagation from the Integration Server to the receiver. In the corresponding receiver agreement, on the Parameters tab page,
under Settings for Principal Propagation select the Principal Propagation checkbox.
For more information, see: Defining Receiver Agreements
Note
The checkbox is only displayed if you have assigned the sender or receiver agreement a communication channel with the appropriate adapter type
(for more information, see Prerequisites ).
Prerequisites
For inbound and outbound processing on the Integration Server, use a communication channel to connect to the Web service runtime (default: Web Services
Reliable Messaging; communication channel: adapter type WS ).
Procedure
1. Configuring Back-End Systems Involved
Define trust relationships between the back-end systems involved and execute the further configuration steps that are required in those back-end systems.
2. Configuring in the Integration Directory
In the Integration Directory use the following steps to specify between which entities principal propagation is to take place.
If you would like principal propagation to occur between a sender system and a receiver system using the Integration Server, perform the following steps:
1. Configure a business system each for the sender and receiver.
For more information, see: Configuring Business Systems
2. Implement principal propagation from the sender to the Integration Server.
Caution
Note that you must use a communication channel with adapter type WS for inbound message processing with the Integration Server.
Follow these steps.
1. Configure the sender channel.
Choose adapter type WS and the Sender radio button.
Implement the following authentication method to configure the channel (under Security Settings ):
SAML 1.1 Sender Vouches Assertion (Message Authentication)
Implement further channel attributes.
For more information, see: Configuring the Communication Channel with Adapter Type WS
2. Create a sender agreement for the sender system and the outbound interface and assign the communication channel that you defined in the
previous step to the sender agreement.
For more information, see: Defining Sender Agreements
3. Activate the configuration objects.
3. Implement principal propagation from the Integration Server to the receiver.
Caution
Note that you must use a communication channel with adapter type WS for outbound message processing with the Integration Server.
Follow these steps.
1. Choose adapter type WS and the Receiver radio button.
Implement the following authentication method to configure the channel (under Security Settings ):
SAML 1.1 Sender Vouches Assertion (Message Authentication)
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 71 of 124
Note
The procedure described assumes that you want to configure principal propagation for inbound and outbound channels of the Integration Server
based on SAML. You can also configure a scenario in which principal propagation is based on SAML for the inbound channel of the Integration
Server and on authentication assertion tickets for the outbound channel. In this case you must configure the outbound processing as described
in Principal Propagation (Authentication Assertion Tickets) .
Security
System Security
You can connect a Process Integration runtime engine (Integration Engine or Advanced Adapter Engine) to an external virus scanner using the Virus Scan
Interface in order to activate virus scanning of both inbound and outbound messages.
By default, virus scanning of a message is limited to scanning attachments of the message for malicious data. Optionally, you can configure the Process
Integration runtime engines that way that the message payload in addition is scanned for malicious data.
Virus-scanning is supported by all adapters delivered by SAP. Note that, however, when you use WS protocol, virus scanning cannot be activated for direct
connections.
Procedure
1. Configuring Virus Scan Interface
Configuration of the Virus Scan Interface is divided into tasks related to components based on Application Server ABAP and tasks related to
components based on Application Server Java.
For more information, see SAP Library at http://help.sap.com under
SAP NetWeaver Library: Function-Oriented View
Security
System
Security
Virus Scan Interface
Configuration of the Virus Scan Interface .
To configure Virus Scan Interface for Process Integration virus scanning, note the following:
The following transactions are available (AS ABAP): VSCANGROUP, VSCANPROFILE and VSCAN.
When configuring the Virus Scan Profile, select the scan profile: /SXMSF/PI_MESSAGING.
Make the following entries:
Profile Text: Process Integration Messaging
Use Reference: Select the Default Profile
Link: All steps successful
To configure the Virus Scan Profile (AS Java), logon to SAP NetWeaver Administrator and choose
Provider .
Select the scan profile: pi_Messaging.
Configuraton
Security
Virus Scan
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 72 of 124
Note
Note that branches (where a decision is taken) are indicated as white rhombuses, whereas joints (where two message processing paths are merged) are
indicated as grey rhombuses.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 73 of 124
The following applies for the location of the virus scan step:
Inbound virus scanning is always executed in that runtime engine where sender adapter processing is performed (before inbound XML validation step).
Outbound virus scanning in dual usage type scenarios is always executed on the IE (after the mapping step).
From the explanations above, the following rules can be derived for dual usage type message processing:
Inbound virus scanning has to be activated for that runtime engine on which sender adapter processing is executed.
Outbound virus scanning has to be activated for both runtime engines, independent of which runtime engine receiver adapter processing is executed.
For AAE-only message processing it is evident that virus scanning only needs to be activated for the AAE.
The following figure illustrates an example of dual usage type message processing with an AAE adapter used at both sender and receiver side and virus
scanning configured for both inbound and outbound messages. Although sender and receiver adapter processing is executed on the AAE only, outbound virus
scanning has also to be activated for the IE.
Prerequisites
Ideally, you have mapped the B2B integration in the Enterprise Services Repository using a process model (process component interaction model or process
integration scenario). In the Integration Directory this enables you to automate much of the configuration of collaboration agreements and logical routing using
the model configurator. However, you must define the collaboration profile manually.
If there are no process models that you can use as the configuration template, you need to create all configuration objects manually.
Procedure
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 74 of 124
Procedure
Configure Collaboration Profile
In this step you define the required communication parties, communication components, and communication channels.
To define the collaboration profile, perform the following steps:
1. In the Integration Directory, create a communication party for each business partner involved in the process.
2. Create a communication component of type Business System for each business system in your internal system landscape.
3. Create the required business components.
Note
Business partners involved in B2B processes do not generally make the names of their internal business systems known externally, but instead
mask them by using business components.
Assign the business components that your business partner provided for external communication to the communication party that represents this
external business partner.
Assign the business components that represent your own internal system landscape externally to the communication party that represents your
own company.
4. Create the required communication channels.
You need one communication channel for each adapter involved. Depending on whether the adapter is a sender adapter or a receiver adapter, you create
the communication channel for the relevant sender or receiver communication component as required.
Configure Communication Channels with Industry Standard Adapters
At least one of the involved business partners uses an industry standard adapter (such as the RNIF adapter) to connect to the message protocol supported by
the respective industry standard.
In this step, you configure the involved industry standard adapter using the corresponding communication channels.
For information about the values you have to enter for the parameters of the communication channel, see the configuration guide for the respective industrystandard-specific SAP business package.
More information: Setting Up Integration Based on SAP Business Packages
Configure Sender and Receiver Agreements
In this step you configure the required sender and receiver agreements. In a sender and receiver agreement you assign the required communication channels
to the relevant sender/receiver pairs. You also specify the agreed security settings (if they are supported by the adapters used).
Perform the following steps:
1. Create a sender agreement for each sender/receiver pair that requires a sender adapter for inbound processing.
Note
Note, however, that you do not always need to define a sender agreement.
More information: Defining Sender Agreements
2. Create a receiver agreement for each sender/receiver pair that requires a receiver adapter for outbound processing.
Define a header mapping for the receiver agreements that describe the communication with your external business partner. This ensures that the name
of a business component (and not the name of a business system or an integration process component) is written in the header of the outbound
message at runtime.
More information:
Defining Receiver Agreements
Define Header Mappings
3. Specify the required security settings in the relevant sender and receiver agreements.
Configure Logical Routing
In this step you define the logical routing.
In logical routing you define:
The required receiver determinations
In a B2B process, specify receiver-dependent receiver determinations for all messages that are to be sent from your business partner to the business
components that you published. As the configured receivers, specify the business system components of your internal system landscape to which the
message is to be forwarded.
More information: Defining Receiver Determinations
The required interface determinations
More Information
B2B Configuration
Configuring B2B Scenarios Using the Model Configurator
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 75 of 124
Note
To configure this kind of communication, you can use communication channels with either adapter type SOAP or WS (for connectivity with
applications based on Web Services Reliable Messaging (WS-RM)).
Note that the SOAP adapter does not support WS-RM, but does provide proprietary means to deliver messages according to the Qualities of Service
Exactly One and Exactly Once in Order .
The adapter that you can use depends on the installation option. For example, if you have installed the Advanced Adapter Engine Extended then you
can use the communication channel with adapter type SOAP which runs on the Advanced Adapter Engine (but not adapter type WS ).
Direct Communication
The Web service provider and consumer communicate with each other directly.
The following figure illustrates the two different communication types:
Procedure
To develop and configure Web service scenarios, you generally adhere to the following procedure:
Mediated (or Brokered) Communication
Brokered
Web Service Provider
When you set up and configure this part of the communication, the Integration Server (or Advanced Adapter Engine) can be viewed as Web service consumer.
1.
2.
3.
4.
Design the inbound service interface in the Enterprise Service Repository (ES Repository).
Configure the inbound service interface in the Integration Directory.
Create the Web service (inbound proxy).
Configure the Web service.
For information on how to perform the individual tasks (for example, service interface design) in detail, see the corresponding section under Developing and
Configuring Integration Scenarios for the corresponding installation option.
As an example for an end-to-end procedure for the cases the Web service provider and consumer are based on AS Java, see section below.
Direct Communication
More information: Setting Up Direct Communication
Mediated Communication Between Provider and Consumer (Based on AS Java)
The following sections provide specific information on how to develop and configure Web service consumers and providers based on Application Server Java
in order to communicate in the scenarios described above:
End-to-end procedure for developing and configuring Web service provider and consumer in order to communicate with an Integration Server: Web
Service Providers and Consumers for Brokered Communication
End-to-end procedure for developing and configuring Web service provider and consumer if the interface pattern XI 3.0-Compatible is selected: Creating
and Configuring XI 3.0-Compatible Web Service Providers
More Information
Web Services Reliable Messaging
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 76 of 124
Procedure
To configure direct communication, you configure the relevant settings locally in the back-end systems of the Web service provider and Web service
consumer that are involved.
For systems based on AS ABAP, you generally use the SOA Manager.
You can access the SOA Manager by using the transaction code SOAMANAGER in the back-end system.
More information: Working with the SOA Manager
For systems based on AS Java, you generally use the SAP NetWeaver Administrator.
SAP NetWeaver Administrator is the administration tool for Java-based back-ends involved in integration scenarios.
You can access the SAP NetWeaver Administrator by entering the following data in a Web browser:
http://<host><port>/nwa
Here the following represents:
<host> the host where the Application Server Java is installed.
<port> the HTTP port of the Internet Communication Manager. It consists of 5<Java instance_number>00. For example, if the instance
number of the Java instance is 60, the HTTP port is 56000.
If the Web service provider and consumer are both based on AS ABAP 7.1 or a higher release, you can perform the configuration of the direct communication
centrally in the Integration Directory, using a direct connection object (with an assigned sender channel of type WS).
Caution
You can use communication channels with adapter type WS only when you have chosen the SAP PI standard installation option. The reason is that this
connectivity option is only supported by the Integration Engine.
More information: Connectivity
The configuration settings are propagated into the back-end systems by a caching mechanism, therefore making local configuration unnecessary.
More information: Configuring Direct Communication
Procedure
Create and configure a synchronous or an asynchronous Web service provider (XI 3.0-compatible inbound proxy) for brokered communication.
In this case, the IS can be viewed as a service consumer.
More information: Creating and Configuring Web Service Providers
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 77 of 124
Create and configure a synchronous or an asynchronous Web service consumer (XI 3.0-compatible outbound proxy) for brokered communication.
In this case, the IS can be viewed as a service provider.
More information: Creating and Configuring Web Service Consumers
Each XI message that comes from the IS comprises payload, attachments, and specific XI data. The Java Web service runtime uses the payload to create
the relevant SOAP message which invokes the business methods on the Web service. It also uses SAP-specific application program interfaces to retrieve the
attachments, and to expose the specific XI data from the request (XI-specific message) to the provider.
Procedure
Create an inbound proxy. In this case, the IS can be viewed as a service consumer.
1. Create a synchronous or an asynchronous Java Web service provider (inbound proxy) for brokered communication.
Creating Web Service Providers for Brokered Communication
2. Extend the inbound proxy capabilities by using the application program interfaces for inbound proxy communication.
Application Program Interface for Inbound Proxy Communication
Procedure
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 78 of 124
Note
If you import an XI-specific WSDL document from the ESR, the Web service framework adds the @XIEnabled() design time annotation
automatically. However, if the WSDL document is not XI-specific, you can add the annotation manually and thus enable the inbound proxy for
XI communication. When you add the @XIEnabled() design time annotation and deploy the inbound proxy, the server reports to the Web
service runtime framework that this is an XI-specific proxy. Then, the runtime uses an XI-specific transport during the communication with the
Integration Server. However, if the inbound proxy is not annotated with @XIEnabled() annotation, the server considers it a regular Java EE 5
proxy and the runtime uses SOAP transport as a communication mechanism.
4. Add the following transport specific class level annotation in the source code of the Web service bean implementation:
@TransportBindingRT(AltPath="{>service_interface_namespace<} >service_interface_local_name<")
@TransportBindingRT(AltPath="{ns} name")
At a later stage, the system uses this value as a service endpoint URL to access the business logic in the inbound proxy.
More information about the @TransportBindingRT() annotation:
Configuring URLs for Web Service Endpoints
Configuring Web Services at Design Time
Note
For Web services with asynchronous operations, add the following WS-RM related annotation in the source code:
@RelMessagingNW05DTOperation(enableWSRM=true)
5. Provide an implementation of the business methods of the Web service.
6. Deploy the Web service on the application server.
For more information, see Building, Publishing and Removing Published Java EE Applications .
Note
The Web service you deployed would not be listed in the WSIL resource provided by AS Java. For more information, see Accessing
Information Provided via WSIL .
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 79 of 124
String getQueueId();
// Determines the service of a message received at the receiver
QName getServiceInterfaceName();
//Identifies whether the XI request is asynchronous
boolean isAsync();
You use the following class to retrieve and process attachments in XI-enabled Web services proxies.
ProviderAttachmentHandlerFactory
Extension class name
com.sap.engine.services.webservices.espbase.server.api.ProviderAttachmentHandlerFactory
Methods
// Returns an instance of a class implementing AttachmentHandler
AttachmentHandler getAttachmentHandler()
For more information, see SAP Note 1885968
Each XI message comprises SOAP XML payload (serialized content of the operation and its parameter values), attachments, and specific XI data. The
runtime uses SAP-specific application program interfaces to create the attachments and to configure the specific XI data.
Procedure
1. Create a Web service consumer (outbound proxy) for brokered communication. In this case, the IS can be viewed as a service provider.
More information:
Create a synchronous or an asynchronous Java Web service consumer for brokered communication.
Creating Web Service Consumers for Brokered Communication
To enable XI 3.0 communication with the IS, extend the outbound proxy capabilities by using the application program interfaces for outbound proxy
communication.
Application Program Interfaces for Outbound Proxy Communication
2. Configure the outbound proxy.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 80 of 124
More information:
Configure the synchronous or asynchronous Java Web service consumer for brokered communication.
Configuring Web Service Consumers for Brokered Communication
Procedure
1. Design the service in the Enterprise Service Repository.
In the Enterprise Service Builder, design an outbound service interface. The outbound service interface comprises the interface pattern XI 3.0compatible, synchronous or asynchronous operations, message types, data types, and fault types.
More information:
Service Interface
Interface Pattern
Message Type
Fault Message Type
2. Create a Web service deployable proxy and a client application. In the SAP NetWeaver Developer Studio, proceed as follows:
1. Import the WSDL document from the ESR.
More information: Importing WSDL Documents in the SAP NetWeaver Developer StudioSAP NetWeaver Developer Studio .
2. Generate a deployable proxy based on the WSDL document of the relevant outbound Service Interface modeled in the ESR. More information:
Creating Web Service Proxies .
3. Create a consumer application which uses the deployable proxy you generated.
In the client application, you specify the endpoint URL of the Web service port, a user name and a password to the PI Adapter Engine. Once you
create the consumer application, it uses the generated Web service proxy to send requests to the Web service runtime and the Java Proxy
Runtime. You can also insert XI specific application program interfaces (APIs) in the consumer application to enable XI specific outbound calls.
More information: Creating Web Service Client Applications , Application Program Interfaces for Outbound Proxy Communication
4. Deploy the Web service consumer. More information: Building, Publishing and Removing Published Java EE Applications .
XIManagementInterface
This is an interface pattern which provides extended control over the XI management of the outbound proxies.
Extension interface name
com.sap.engine.services.webservices.espbase.client.api.XIManagementInterface
Factory class name
com.sap.engine.services.webservices.espbase.client.api.XIManagementInterfaceFactory
Interface methods
//Configures the type of the Java runtime transport: XI or SOAP
void useXITransport(boolean useXICommunication);
//Returns the type of the Java runtime transport, true identifies an XI transport
boolean getUseXITransport();
//Returns request XI message context
XIMessageContext getRequestXIMessageContext();
//Configures an implementation of interface ESPXIMessageProcessor. This implementation
//represents the XI transport and is used by the Java runtime to communicate with
//the IS in an XI manner (with XI messages). This method can be used for testing purposes.
void setESPXIMessageProcessor(ESPXIMessageProcessor xiMessageProcessor);
//Returns the implementation of the interface ESPXIMessageProcessor which is used by the Java
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 81 of 124
XIMessageContext
This is an interface pattern which provides extended control over the XI messages.
Extension interface name
com.sap.engine.services.webservices.espbase.client.api.XIMessageContext
Factory class name
com.sap.engine.services.webservices.espbase.client.api.XIManagementInterfaceFactory
Interface methods
//Configures application acknowledgement listener name
void setApplicationAckRequested(String ackListenerName);
//Configures system acknowledgement listener name
void setSystemAckRequested(String ackListenerName);
//Configures application error acknowledgement listener name
void setApplicationErrorAckRequested(String ackListenerName);
//Configures system error acknowledgement listener name
void setSystemErrorAckRequested(String ackListenerName);
//Configures sender party name
void setSenderPartyName(String senderPartyName);
//Configures sender service name
void setSenderService(String senderService);
//Configures queue id
void setQueueId(String queueId);
//Adds a receiver
void addReceiver(String receiverPartyName, String receiverPartyAgency,String
hreceiverPartyScheme, String receiverService);
//Removes all receivers
void clearReceivers();
Description
This method requests positive application acknowledgment and verifies that the
receiver processes the message successfully.
The value of ackListenerName is the JNDI name of the acknowledgement listener
bean.
This method requests positive system acknowledgement and verifies that the
receiver is reached successfully.
For provider proxies, this means that the implementing class for the provider proxy
can be found and the method for inbound processing can be requested.
The value of ackListenerName is the JNDI name of the acknowledgement listener
bean.
This method enables you to assign a serialization context to multiple messages and
to guarantee the quality of service exactly once in order.
The string queueId is upper case-sensitive and can be maximum 16 characters
long.
All asynchronous messages with the same serialization context are received in the
same order at the receiver side as they were entered in the outbound queue during
the commit job of the sender side.
This method adds a receiver to the set of all receivers in the consumer proxy. You
must specify the communication party, the issuing agency, and the identification
scheme in cross-company communication.
void clearReceivers();
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 82 of 124
Prerequisites
You have created and deployed the outbound proxy on your client system.
More information: Creating Web Service Consumers for Brokered Communication .
Context
After you create and deploy your outbound proxy on the application server, you enable it for communication by configuring a logical port to it. You provide the
runtime configuration of the Web service consumers using the SAP NetWeaver Administrator.
Procedure
1. Configure the Web service consumer. In the SAP NetWeaver Administrator, create a runtime configuration called logical port of the Web service
consumer.
You can create a logical port based on a WSDL URL which determines the destination to which the Web service consumer sends its requests. In this
case, the destination is the Integration Server. Therefore, you have to create the logical port based on the WSDL URL which you obtained from the
Integration Directory at a previous step. The logical port you create also contains the runtime configuration settings, such as user name and password,
or WS-RM parameters which the Web service consumer uses.
More information about configuring the Web service consumer: Configuring Individual Web Service Clients .
More information about the underlying concepts for the configuration of Web service consumers in the SAP NetWeaver Administrator: Configuration of
Individual Web Services and Web Service Clients .
2. Configure the Java Proxy Runtime (JPR).
Configure the isWSProxy property of the JPR.
More information: Using Java Proxy Runtime for Communication of Web Service Applications with PI
More information about the underlying concepts: Java Proxy Runtime .
Context
When you create a service interface (SI) in the Enterprise Services Repository, you can use it as a base to create applications for AS Java. These
applications - Web service providers and Web service consumers - use the Integration Server (IS) as a broker as shown in the figure below.
The Web service providers and consumers can communicate with the IS over the Web service protocol by using the PI WS adapters. You can use this
adapter both for synchronous and asynchronous communication.
Procedure
Use a synchronous or asynchronous Web service provider for brokered communication. In this case, the IS can be viewed as a service consumer. For
more information, see Web Service Providers for Brokered Communication .
Create and configure a synchronous or asynchronous Web service consumer for brokered communication. In this case, the IS can be viewed as a
service provider. For more information, see Web Service Consumers for Brokered Communication .
Page 83 of 124
Context
When a Web service provider uses the Integration Server (IS) as a broker, the provider receives requests from the IS. Then the provider processes these
requests, and if necessary sends its response to the IS. The IS in turn sends the response to the corresponding service consumer.
You can create synchronous and asynchronous Web service providers using adapter type PI WS.
Procedure
1. Design the service interface in the Enterprise Service Repository (ES Repository).
In the Enterprise Service Builder, design an inbound service interface. The inbound service interface comprises interface pattern stateless , operations,
message types, data types, and fault types. For more information, see Service Interface , Interface Pattern , Message Type , and Fault Message Type .
2. Configure the service interface in the Integration Directory.
In the Integration Builder, create the following components to configure the service interface communication between the provider system and the IS:
Create a receiver communication component to define details about inbound processing and enable communication between the Web service
provider and the IS.
Create a receiver communication channel. In particular, you use a communication channel to define the type and configuration of the adapter used
during inbound processing. For more information, see Defining Communication Channels .
Create receiver determination and receiver agreement.
A receiver agreement contains a reference to a communication channel. You define a receiver agreement between a sender and a receiver for an
inbound interface. For more information, see Defining a Receiver Agreement and Defining Receiver Determinations .
Optionally, you can create a receiver party. For more information, see Defining Communication Parties .
3. Create the Web service (inbound proxy) in SAP NetWeaver Developer Studio:
1. Import the WSDL document from the ES Repository. For more information, see Importing WSDL Documents in the SAP NetWeaver Developer
StudioSAP NetWeaver Developer Studio .
2. Create an outside-in Web service based on the WSDL document of the relevant inbound Service Interface modeled in the ES Repository.
The Web service framework generates the skeleton of the implementation bean containing the Web service methods' declarations for the
operations in the WSDL document. For more information about creating an outside-in Web service, see Creating Outside-In Web Services .
3. Provide an implementation of the business methods of the Web service.
4. Only for asynchronous Web services, add the following WS-RM-related annotation in the source code:
@RelMessagingNW05DTOperation(enableWSRM=true)
5. Deploy the Web service on the application server. For more information, see Building, Publishing and Removing Published Java EE Applications .
4. Configure the Web service.
In the Integration Builder, configure the receiver communication channel you created in step 2 above. The receiver communication channel is a
target URL that points to the URL of the Web service.
For asynchronous Web services, you can construct the target URL using the following pattern:
http://[Host]:[Port]/[Service_Access_Path]?wsdl&mode=ws_policy
In SAP NetWeaver Administrator, create a runtime configuration (called service endpoint) of the Web service.
It contains the relevant runtime settings, such as authentication level, with which you want to provide the Web service.
For more information about configuring the Web service in the SAP NetWeaver Administrator, see Configuring Individual Web Services and
Configuration of Individual Web Services and Web Service Clients .
Next Steps
Integration Directory
Procedure
1. Design the service in the Enterprise Service Repository.
In the Enterprise Service Builder, design an outbound service interface. The outbound service interface comprises the interface pattern stateless ,
operations, message types, data types, and fault types. For more information, see Service Interface , Interface Pattern , Message Type , and Fault
Message Type .
2. Configure the service interface in the Integration Directory.
In the Integration Builder, create the following components to configure the service interface communication between the consumer system and the IS:
Create a sender communication component to define details about outbound processing and enable communication between the Web service
client and the IS.
Create a sender communication channel.
In particular, you can use a communication channel to define the type and configuration of the adapter used during outbound processing. For more
information, see Defining Communication Channels .
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 84 of 124
Next Steps
Integration Directory
Procedure
To generate proxies in an application system based on AS ABAP, use the ABAP proxy generation. Generation takes place in AS ABAP.
ABAP proxy runtime supports the WS and the XI protocol.
More information about XI runtime: XI-Specific ABAP Proxy Runtime Protocols
To generate proxies in an application system based on AS Java, use the Java proxy generation in SAP NetWeaver Developer Studio for new
implementations.
More information: Creating and Configuring XI 3.0-Compatible Web Service Providers
You can still use the Java proxy generation in Integration Builder. However, it is no longer supported in subsequent releases.
More information: Java Proxy Objects (XI 3.0-Compatible)
Next Steps
Proxy Programming
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 85 of 124
configuration parameters. The step by step procedure shows you how you can use the com.sap.aii.adapter.sample.ra.rar adapter's template to develop the
YOURADAPTER adapter.
Note
This description gives you an overview of the required tasks.
For more information about detailed instructions for adapter and module development, see: Developing Adapters and Modules
Procedure
1. Download the com.sap.aii.adapter.sample.ra.rar file .
2. Provide a different adapter name and type, package name, JNDI name, trace and log file locations, and the metadata describing the configuration
parameters for the sample_ra adapter's Java program.
More information: Modifying the Java and Metadata Files
3. Change the configuration files used to build the RAR file.
More information: Modifying the Configuration Files for RAR
4. Include the Java code for the adapter.
5. Create the RAR file and deploy it to the AS Java.
More information: Creating and Deploying the Adapter
6. Test the adapter. For testing you need to create a communication component, sender and receiver communication channels, and an Integrated
Configuration object.
More information: Testing Your Adapter
Procedure
1. Download the com.sap.aii.adapter.sample.ra.rar file and extract the content of the com.sap.aii.adapter.sample.ra.jar file in to a temporary directory.
More information: Accessing JavaDoc and Source Text of the Example Adapter/Module
2. Change the file contents of all the files in com.sap.aii.adapter.sample.ra.jar . The files contain the package name/path of the sample_ra adapter.
Change them to your package/path names.
1. Change package name from com.sap.aii.af.sample.adapter.ra to com.test.YourAdapter.adapter.ra
2. Change package path for log and trace file locations from com/sap/aii/af/sample/adapter/ra to com/test/YourAdapter/adapter/ra
3. Change adapter guid from http://sap.com/xi/XI/sample/JCA to http://sap.com/xi/XI/YourAdapter/JCA
4. Change adapter namespace from http://sap.com/xi/XI/sample to http://sap.com/xi/XI/YourAdapter
3. Rename the file from SampleRA.xml to YourAdapterRA.xml
4. In SAP NetWeaver Developer Studio (NWDS), create the java project AdapterYOURADAPTER.
5. Create a package in the project com.test.YourAdapter.adapter.ra
1. Copy all file (except YourAdapterRA.xml) into project directory com/test/YourAdapter/adapter/ra
2. Copy YourAdapterRA.xml into root of project directory
6. In YourAdapterRa.xml (replace JNDI name) from deployedAdapters/sample_ra/shareable/sample_ra to
deployedAdapters/YourAdapter_ra/shareable/YourAdapter_ra .
YourAdapterRa.xml contains the metadata for the adapter, for example configuration parameters such as file name and directory name.
7. Refresh the project in NWDS.
Procedure
1. In NWDS, create project AdapterYOURADAPTER_RAR .
2. Extract and copy the META-INF directories to the appropriate project directories.
3. Use a text editor and change the contents of the files.
1. Change the namespace from com.sap.aii.af.sample.adapter.ra to com.test.YourAdapter.adapter.ra .
2. Change the adapter display file name references from sample_ra to YourAdapter_ra.
More information: Stand-Alone Deployment as RAR
4. Change the content of the ra.xml file. Change the adapter type from JCA to YOURADAPTERFile.
1. Change the adapter namespace from: http://sap.com/xi/XI/sample to http://sap.com/xi/XI/YourAdapter
2. Change the adapter display name from sample_ra to YourAdapterName_ra.
More information: Stand-Alone Deployment as RAR
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 86 of 124
Procedure
1. Create a RAR file.
2. Deploy the RAR file.
3. Load the adapter metadata.
1. Load the metadata file, ra.xml, to the ES Repository.
In a browser, enter URL http://<host>:<port>/dir/start .
Enter the user ID and password when prompted.
2. In ES Repository create a software component version or open an existing software component version.
3. Under the software component version, create a namespace that corresponds to the ManagedConnectionFactory attribute namespace or the
coded namespace of the adapter.
4. To load the metadata, call the context menu under
Adapter Objects
Adapter Metadata
and select New .
5. In the Name field, enter the name of the adapter.
6. In the Namespace field, enter a unique, vendor-specific namespace that possibly contains a version number. The name and namespace together
identify an adapter type.
7. Locate the YourAdapterRA.xml
8. Choose
Adapter Metadata
Import XML Description .
4. Verify the adapter.
After deploying, loading and activating the adapter metadata, the adapter is available on AEX.
1. To verify the existence of the adapter, go to the AEX start page using URL http://<host>:<port>/start/index.jsp .
2. Click on Integration Builder .
Enter the User ID and password.
3. Create a communication channel and select your adapter in the Adapter Type field.
Procedure
1. To log on to Advanced Adapter Engine Extended, click on Integration Builder on start page.
Enter the User ID and password.
2. Create a Communication Component: AdapterService.
More information: Defining Communication Components
3. Create sender and receiver communication channels using your adapter.
More information: Defining Communication Channels
4. Create an Integrated Configuration object.
More information: Defining the Integrated Configuration
5. Send a test message.
Note
There are different installation options of SAP PI, each of them implying a slightly different approach.
More information: Installation Options
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 87 of 124
Procedure
According to the chosen use case, select either of the following sections:
Using AEX Stand-Alone
Connecting AEX to an Integration Server
Note
The sections referred to above cover the basic end-to-end procedures. For more information on how to set up specific use cases like, for example,
sophisticated routing scenarios or B2B scenarios, see the corresponding section under Advanced Development Tasks (AEX) .
Note
The general procedure is structured according to the phases design time, configuration time and runtime.
More information: Phases of an Integration Project
5.1 Concepts
Use
This part of the documentation introduces concepts and capabilities in particular relevant for the Advanced Adapter Engine Extended (AEX) installation option
of SAP PI.
Section
Content
Note
For concept information relevant for both, the Dual Usage Type and the Advanced Adapter Engine Extended installation option, see Concepts .
Caution
The RNIF and CIDX adapters, together with the corresponding business packages, allow you to set up business-to-business scenarios based on the
corresponding industry standard (RosettaNet or Chem eStandards respectively).
More information: Setting Up Integration Based on SAP Business Packages
Note that when you have installed the Advanced Adapter Engine Extended (AEX), integration processes cannot be used. Therefore, those scenarios of the
business package that use integration processes are not supported in this case.
Technically, the installation option AEX is based on AS Java.
Recommendation
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 88 of 124
Since AEX is based on AS Java alone, it is easier to install and maintain as it needs less memory and data storage. Therefore, AEX is a cost-saving
option compared to a full installation of SAP PI.
Caution
Compared to a complete SAP PI installation, AEX has the following restrictions:
The connectivity options are restricted to the adapters of the AAE.
This means that you cannot use the following adapter types: IDoc (IE), XI, HTTP (IE), WS (connectivity with systems based on Web Services
Reliable Messaging).
Note
Although the XI adapter cannot be used with the AEX, you can configure connections based on the XI 3.0 message protocol using the SOAP
adapter.
You cannot use integration processes (cross-component Business Process Management).
You can only use process integration scenarios as a modelling option in the ES Repository.
ABAP mapping is not available.
You cannot use the Runtime Workbench for monitoring purposes.
Connectivity Options
The following figure provides an overview of the connectivity options of the AEX. Read the following subsections for more details.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 89 of 124
Note
Note the following characteristics of the usage of a non-central AAE in an AEX installation:
You configure the non-central AAE using the Java Service Properties in SAP NetWeaver Administrator.
You cannot set up scenarios where an Integration Engine is involved in the communication.
Use Cases
You can use AEX in the following ways:
Using AEX standalone
Using AEX in combination with an additional SAP PI landscape
Using AEX Standalone
You can use AEX standalone as integration middleware. The basic communication options are illustrated in the following figure:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 90 of 124
(technically based on both AS Java and AS ABAP) was required for such scenarios.
Using AEX as a test environment
Since an AEX installation provides not only a runtime engine (Advanced Adapter Engine) but also the ES Repository and the Integration Directory, it
supports the complete lifecycle of an integration project. Therefore, you have a complete and consistent toolset to set up, configure, and test integration
scenarios in your landscape.
Note
Note that AEX only provides a restricted functional range compared with an SAP PI complete installation. In particular, you cannot test integration
processes (ccBPM) with this setup.
Using AEX as a fail-over system
You can transport complete integration scenarios (integration content from the ES Repository) as well as the configuration content (Integration Directory)
from a productive landscape (for example based on an SAP PI standard installation) to a fail-over landscape based on AEX. Note that this transport
option is restricted to those Integration Directory objects that are supported by AEX, for example integrated configurations.
Using AEX in Combination with an Additional SAP PI Landscape
You can connect your AEX-based landscape to a landscape that is based on SAP PI. The basic communication options are illustrated in the following figure:
Caution
When you use AEX in combination with a landscape based on an SAP PI standard installation, you need to carefully consider all implications also in the
case of federated PI landscapes. For example, the content of the individual ES Repositories (installed with the AEX on one hand and with the standard PI
system on the other hand) is not aligned automatically, which means that suitable transport scenarios have to be planned.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 91 of 124
The main components for design and configuration time are the Enterprise Services Repository (ES Repository) and the Integration Directory.
Note
The Integration Directory installed with AEX contains the same subset of configuration options as that which is necessary to configure the AAE-only
message processing option in a dual usage type PI installation, basically the integrated configuration.
Using these tools, an integration expert can design integration content (for example, interfaces and process integration scenarios) and specify the configuration
settings for message exchange for a specific system landscape. The design and configuration tools are connected to the System Landscape Directory which
contains, for example, the description of software components and systems.
More information:
Design Time
Configuration Time
Based on the configuration settings from the Integration Directory, messages are exchanged between the connected business systems at runtime. AEX uses
the Advanced Adapter Engine as runtime engine.
To process messages, the AAE uses information from the Integration Directory. This information is made available to the AAE using a runtime cache.
More information: Runtime Caches
More Information
Runtime
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 92 of 124
Note
For an overview of the available communication and message processing options, we refer to the following sections:
Installation Options
Runtime
The figure below shows the phases of message processing for an incoming message. The configuration objects relevant in order to specify the different
message processing phases are also indicated in the figure.
Note
For sakes of simplicity, communication parties (see below) are not considered in the figure.
The objects required to execute the current configuration tasks are listed in the following table.
Tasks
Relevant Objects
Integrated configuration
Note
The table above lists the relevant configuration objects in Integration Directory. When you have installed the Advanced Adapter Engine Extended, you also
have the option to configure the message flow graphically using Eclipse-based integration flows.
More information: Working with Integration Flows
Procedure
This task involves the definition of communication components, communication channels, and (optional) communication parties.
1. Optional: Define the necessary communication parties.
Using a communication party, you generally address a company within a business-to-business process.
More information: Defining Communication Parties
2. Define the necessary communication components and (optional) parties.
To define communication components based on a landscape description in the SLD, perform the following steps:
Logon to the SLD and define the necessary technical systems and business systems.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 93 of 124
Note
These communication components are called business system components because they are based on business systems defined in the
SLD.
To define a communication component from scratch without defining the business systems in the SLD, logon to the Integration Directory and
create a business component .
More information: Business Component
3. To specify the technical communication capabilities of a communication component, you define a communication channel. You need a sender/receiver
communication channel to specify the adapter to connect to a sender/receiver component.
Note
A communication channel provides the configuration interface for the adapter that is used to connect the communication component with the PI
runtime engine.
1. At first, you create a communication channel in the Integration Directory.
More information: Defining Communication Channels
2. You specify the adapter type.
3. You specify the configuration settings for the chosen adapter type.
More information: Configuring Adapters
Procedure
You use communication channels in the Integration Directory to configure the adapters.
With the Adapter Type attribute, you specify the adapter to configure. The possible configuration settings depend on the chosen adapter type.
The links below guide you to detailed information on the configuration interface for each adapter type.
Configuring the RFC Adapter
Configuring the IDoc Adapter (AAE)
Configuring the SOAP Adapter
Configuring the HTTP Adapter (AAE)
Configuring the File/FTP Adapter
Configuring the JDBC Adapter
Configuring the JMS Adapter
Configuring the Mail Adapter
Configuring the Marketplace Adapter
Configuring the SAP BC Adapter
Configuring the CIDX Adapter
Configuring the RNIF Adapter
Configuring the REST Adapter
More Information
Section Adapters (Advanced Adapter Engine) provides an overview of the supported settings for each adapter.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 94 of 124
Procedure
1. Design Integration Content
You define the software components for your development project in the System Landscape Directory (SLD). You design your integration content in the ES
Repository.
In this section, we describe the general procedure when you follow the top-down design approach, which means that you start with a process model and based
on the model specify all other integration content.
More information about the basic concepts: Design Time
Note
There is the option either to design the integration yourself from scratch or to use integration details already designed and delivered by SAP where you can
modify this content according to your needs. We will go into the aspects of both approaches in this chapter.
Both of these approaches normally come into play in real-life projects. A typical scenario would, for example, be that you use predefined content (and
enhance it) to outline one part of the integration scenario, whereas another part has to be built completely from scratch. For the specific aspects that you
have to consider when using predefined content shipped by SAP, see Using Predefined Integration Content .
1. Define the software components you need for your developments.
Note
You need these entities in order to organize the ESR content (for example, interfaces, mappings, and so on) you define with the following steps.
More information: Organizing and Managing Content in ESR
2. Log on to the ES Repository and choose the usage profile Advanced Adapter Engine Extended.
More information: Usage Profile
3. Define a process integration scenario for your overall process.
More information: Defining Process Integration Scenarios
4. Define the necessary interface objects.
More information: Defining Interface Objects
5. Define the necessary mapping objects.
More information: Defining Mappings
6. Activate your ESR objects.
2. Configure Integration Content
At configuration time you specify how messages have to be exchanged between the individual systems or applications of the existing system landscape - in
accordance with the process model and additional integration content specified at design time.
More information about the basic concepts: Configuration Time
Key tools for this phase are the System Landscape Directory and the Integration Directory and (optionally) the Eclipse-based PI Configuration Tool.
Using Integration Flows
You can configure integration content intuitively with the help of a graphical user interface which is part of the Eclipse-based Process Integration Tools (PI
Tools).
Key object is the integration flow which provides a graphical description of the configuration of message exchange.
For each integration flow defined in Eclipse-based PI Tools, one integrated configuration and additional corresponding configuration objects (communication
channels) are automatically created in Integration Directory.
In Integration Directory, the configuration objects that are automatically created based on an integration flow are stored in a separate folder. These
configuration objects cannot be changed in Integration Directory.
More information: Process Integration Tools (Eclipse-Based)
Using Integration Directory as User Interface
You can also configure integration content using the Integration Directory as user interface.
Note
Compared to an SAP PI standard installation, the user interface of the Integration Directory for the AEX provides only access to the following configuration
object types:
Communication party
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 95 of 124
Caution
Integration process components (communication components based on integration processes from the ES Repository) cannot be created.
Integrated configuration
Configuration scenario
Value mapping group
Recommendation
We recommend that you use a process integration scenario from the ES Repository as configuration template. Doing this, you can configure inbound
processing, routing, mapping and outbound processing semi-automatically.
More information: Configuring Process Integration Scenarios
1. Defining Collaboration Profile
This task involves the definition of communication components, communication channels and (optional) communication parties.
More information: Defining a Collaboration Profile
2. Configuring Message Exchange
This task involves the configuration of the inbound processing, routing, mapping and outbound processing (phases of message processing).
1. Logon to the Integration Directory.
2. Create an integrated configuration and specify the corresponding attributes for each of the phases of message processing.
More information: Defining the Integrated Configuration
3. Activate the configuration objects.
The figure shows an example that uses AEX in both modes: In combination with another SAP PI system (communication path 1) and standalone
(communication path 2).
Example
Assume a situation that a global acting enterprise operates all communication to regional subsidiaries in standalone mode, whereas for all global
communications an additional landscape based on an SAP PI standard installation is interconnected (because the latter provides the complete range of
mediation and security capabilities of SAP PI).
Procedure
The end-to-end procedure to set up and run a scenario depends on the details of the integration scenario, the system landscape the scenario is deployed on,
as well as on the particular choice of routing, connectivity and security settings.
You also have to take into consideration if the complete system landscape is owned by the same organization or if - as typically the case in business-tobusiness (B2B) scenarios - if different parts of the overall system landscape are owned and maintained by different business partners or organizations.
We show the basic steps to set up the following communication path: a sender system sends a message to the AEX. The message is then forwarded to the
Integration Server of an SAP PI landscape. The Integration Server processes the message and sends it to a receiver system. This communication is
illustrated in the figure above (communication path 1). For sake of completeness, the figure also shows a communication path where a message is forwarded
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 96 of 124
by the AEX directly to the receiver. This communication (communication path 2 in figure above) is handled under Developing and Configuring Integration
Scenarios (Using AEX Stand-Alone) .
Note
We can assume that in real-life scenarios both kinds of communication will be used in cooperation.
However, in this section we only show the basic steps to set up communication path 1. We assume that SAP PI and the AEX are installed on different hosts.
Tasks on the Side of the AEX Installation
In general, you proceed as described under Developing and Configuring Integration Scenarios (Using AEX Stand-Alone) . To set up the particular use case
covered in this section, take note of the following characteristics:
When you specify the message flow in the Integration Directory, you describe the message flow from the sender system to the Integration Server.
When you define the integrated configuration, you therefore need to specify the following basic settings:
To configure inbound processing (direction from the sender system to the AEX), you need to assign a sender adapter according to the protocol or
standard that is used by the sender.
To configure outbound processing (direction from the AEX to the Integration Server), you need to assign a receiver SOAP adapter . As Message
Protocol , choose XI 3.0.
Under Connection Parameters , enter the URL of the Integration Server.
Recommendation
To determine the URL of the Integration Server, you can do the following: configure inbound processing on the side of the SAP PI installation. To do
that, you define a sender agreement. Display the WSDL of the sender agreement. The WSDL contains the URL of the Integration Server. Note that in
case AEX and SAP PI standard installation are hosted by different business partners (as the case in a B2B scenario), the URL has to be
communicated by other means (for example, email).
Tasks on the Side of the SAP PI Installation
In general, you proceed as described under Setting up Scenarios Using Dual Usage Type Message Processing or Setting Up Scenarios Using Local AAEBased Message Processing (depending on the chosen connectivity option). To set up the particular use case covered in this section, take note of the following
characteristics:
1. In the ES Repository you define the process integration scenario and the involved interface and mapping objects.
2. In the System Landscape Directory you describe the relevant part of the system landscape.
3. In the Integration Directory, you describe the message flow from the AEX to the receiver system.
Procedure
More information:
Developing and Configuring Mappings
Applying Advanced Routing Techniques
Encrypting Message Content on Database Level
Configuring Principal Propagation
Enabling Virus-Scanning of Messages
Configuring B2B Integration
Procedure
Defining Mappings
These are the steps to define a mapping:
Tasks at Design Time
1. Implement the mapping using one of the available kinds of mapping programs.
For an overview of the supported types of mapping programs, see Mapping Programs
The ES Repository provides a graphical editor to design mappings intuitively. Mappings designed with the graphical editor are called message
mappings .
More information:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 97 of 124
Procedure
Designing and Configuring Multi-Mappings
Designing and Configuring Value Mappings
Designing and Configuring Parameterized Mapping Programs
Designing Mappings for Adapter-Specific Message Attributes
Designing and Configuring Mapping Lookups
Procedure
You can use a 1:n multi-mapping to map a message to multiple different (and generally smaller) messages during logical routing (mapping-based message
split). To set up a message split scenario, you have to perform the following steps:
1. ES Repository: Create the necessary multi-mapping and assign it to an operation mapping.
More information: Developing Multi-Mappings for Message Splits
2. Integration Directory: Select the operation mapping in the corresponding integrated configuration ( Receiver Interfaces tab).
The inbound interface operations will be evaluated based on the multi-mapping.
More information: Defining the Integrated Configuration
For more information on this technique, read section Defining Message Splits .
Example
For example, a customer is identified in a sender system by a customer number, whereas in a receiver system the customer is identified by a name.
There are several options for performing value mappings:
Using standard function FixValues
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Page 98 of 124
Procedure
Using Standard Function FixValues
This is the easiest way to define a value mapping. In the target field mapping, you assign the standard function FixValues from the Conversions function
group. Using this function, you can define value pairs. However, the value mapping defined by such a pair can only be used in the corresponding message
mapping. Furthermore, this is a rather "static" option for defining a value mapping, since the value pairs have to be known at design time.
Using Value Mapping Tables from Configuration
A more flexible and dynamic way to define a value mapping is to use the standard function Value mapping (Conversions function group area). Using this
standard function, you can refer to value pairs that are defined at a later point in time during configuration. To define the value pairs from configuration time,
you use a value mapping group in the Integration Directory.
The advantages of this approach are that value mappings can be reused within different message mappings and values can be specified later at configuration
time.
Note
In many cases, the names of objects are not known prior to configuration time.
To refer to the values (that are not already known at design time) in the message mapping, in the function Value mapping you use the key fields Agency
and Schema .
Note
If you refer to a value mapping table created manually in the Integration Directory, you have to select http://sap.com/xi/XI as Value Mapping
Context . The value mapping context identifies the source of the value pairs.
At configuration time, you define the actual values of the objects by creating value mapping groups. A value mapping group is a configuration object in the
Integration Directory and contains different representations of the same object. To enter the values that identify the objects in different frames of reference,
you use the key fields Agency and Schema .
Note
Agency and scheme set a frame of reference within which an object can be uniquely identified. For more information, see Identifiers .
As an alternative to the manual creation and editing of value mapping groups, you can replicate value pairs from external data sources using a special
interface. The interface objects are available as part of SAP predefined content in the software component SAP BASIS. For more information, see Value
Mapping Replication .
More information: Value Mapping
Note
This is another way to execute mappings dynamically, in the sense that the actual values are not known until configuration time.
You can define parameterized mapping programs for message mappings, Java mappings, and XSLT mappings with Java enhancements.
Procedure
To set up a scenario with a parameterized mapping program for a message mapping, you have to perform the following steps:
1. Define the parameters at design time. To do this, you have to perform the following steps:
In the message mapping (on the Signature tab), define the parameters to be used in the target field mapping.
In the operation mapping (that references the message mapping), create parameters (by choosing Parameters ) and connect them with those of
the message mapping (by choosing Binding ).
You can set either Simple Type or Adapter as the Category for the parameter. The category Adapter is only relevant if you set up a mapping
lookup scenario.
2. Values can be entered for the parameters in the Integration Directory (integrated configuration which uses the operation mapping).
More information: Parameterized Mapping Programs
Page 99 of 124
Use
The message header of a message contains a header for adapter-specific message attributes that the sender adapter can use to write additional information to
the message header. This enables sender adapters to write information that is not known until runtime to the message.
Furthermore, developers have read and write-to access to adapter-specific attributes from within a mapping program.
XSLT programs (J2EE) and message mappings have mapping runtime constants that enable developers to access the same Java classes for adapterspecific-attribute mappings as in Java mapping programs. Mapping programs executed by SAP PI support this kind of access.
Procedure
More information: Java Mapping of Adapter-Specific Message Attributes
Procedure
To set up a mapping lookup scenario, you have to perform a combination of activities at design and configuration time:
1. At design time (in the ES Repository), you define the mapping program.
You can define lookups for message mappings, Java mappings, and XSLT mappings with Java enhancements.
At design time, you have to perform the following steps:
1. Provide an import function parameter (of type Adapter)
2. Implement the call to the application system (using the import parameter)
More information:
Using the Lookup API in a Java Mapping Program
Using the Lookup API in an XSLT Program
Using the Lookup API in a Message Mapping
Note
When setting up lookups using the JDBC or the RFC adapter with a message mapping, you can perform this step graphically.
More information:
Defining JDBC Lookups Graphically
Defining RFC Lookups Graphically
2. At configuration time (in the Integration Directory), you have to perform the following steps:
1. Configure the corresponding adapter in a (receiver) communication channel.
More information: Defining Communication Channels
2. Assign the corresponding operation mapping (that refers to the mapping program) in an integrated configuration.
You have to do this to ensure that the ID of the receiver channel is transferred to your mapping program at runtime.
More information: Defining the Integrated Configuration
More information: Adding Lookups to Mapping Programs
Procedure
1. Implement a Parameterized Java Mapping Program
1. To be able to execute the lookup, your Java mapping program requires an import parameter of type Adapter . Create a Java mapping (see steps 1 and
2 in Parameterizing Java Mappings ).
2. Using the lookup API and the import parameter, implement the call to the application system.
For JDBC adapter calls, use the specific lookup API for the JDBC adapter (see: Implementing Lookups Using DataBaseAccessor ).
For calls with all other adapters, use the generic lookup API (see: Implementing Lookups Using SystemAccessor ).
3. To be able to assign a receiver channel to this import parameter later, you must assign the import parameter to an operation mapping parameter by using
a binding (see steps 3-7 in Parameterized Java Mappings ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver communication channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
2. To transfer the ID of the receiver channel to your Java mapping program at runtime, create an integrated configuration and assign to it the operation
mapping from step 3.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Procedure
To add a lookup to an XSLT program, you must parameterize it and use the lookup API. To access parameters and to use the mapping API, you must call
Java methods in the XSLT program. To minimize the number of Java methods that need to called, SAP recommends that you encapsulate the entire mapping
lookup in one single Java method.
1. Implement a Parameterized XSLT Mapping Program
1. To be able to execute the lookup, your XSLT mapping program requires an import parameter for the adapter that is to be used. Create an XSLT mapping
(see steps 1 and 2 in Parameterizing XSLT Mappings ). At runtime, the relevant operation mapping uses the import parameter to transfer the ID of an
appropriate receiver channel for the adapter (see steps 4-6).
2. Create a Java mapping program by implementing the look up. The method that you want to use to execute the lookup must have a parameter in order to
transfer the ID of the receiver channel (see step 1) from the XSLT program. Furthermore, add additional parameters that are required for the lookup and
for transferring the result to the XSLT program, to the signature of the Java method.
More information: XSLT Mapping with Java Enhancement
3. Using the lookup API and the import parameter, implement the call to the application system within the Java method.
For JDBC adapter calls, use the specific lookup API for the JDBC adapter.
More information: Implementing Lookups Using DataBaseAccessor
For calls with all other adapters, use the generic lookup API.
More information: Implementing Lookups Using SystemAccessor
4. To be able to assign a receiver channel to this import parameter later, you must assign the import parameter to an operation mapping parameter by using
a binding (see steps 3-7 in Parameterized XSLT Mappings ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
2. To transfer the ID of the receiver channel to your XSLT mapping program at runtime, create an integrated configuration and assign to it the operation
mapping from step 4.
More information: Defining the Integrated Configuration
Prerequisites
Note the prerequisites for the adapter that you want to use for the lookup.
More information: Adding Lookups to Mapping Programs
You have already created a message mapping and are in the mapping editor.
Procedure
1. Implement a Parameterized Message Mapping Program
1. To execute the lookup, your user-defined function requires an import function parameter of type Adapter , which is assigned to the message mapping
parameter (see step 1-3 in Defining and Using Import Parameters ).
2. Using the lookup API and the import parameter, implement the call to the application system
If the features of the standard function for graphical JDBC lookups (see above) are not sufficient for your application, use the specific lookup API
for the JDBC adapter.
More information: Implementing Lookups Using DataBaseAccessor
For calls with all other adapters, use the generic lookup API
More information: Implementing Lookups Using SystemAccessor
3. If, later, you want to assign a receiver channel to the message mapping parameter that you assigned the import function parameter to in step 1, you
must assign this import parameter to an operation mapping parameter by using a binding (see step 4-8 in Defining and Using Import Parameters ).
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
2. Configure a Receiver Channel for Mapping Lookups
1. Create the receiver channel for the application system call in the Integration Directory.
More information: Defining Communication Channels
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
2. To transfer the ID of the receiver channel to your message mapping program at runtime, create an integrated configuration and assign to it the operation
mapping from step 3.
More information: Defining the Integrated Configuration
Prerequisites
To be able to graphically model the lookup, you must know the table structure of the table that is to be accessed. To use the table structure in the mapping
editor, you must import it to the Enterprise Services Repository as an external definition (see step 2). To do this, the following conditions must be met:
The table must be defined in the database.
To access the table of the database, a JDBC adapter instance and the relevant database must be running.
Special Prerequisites for Databases
The mapping editor generates Java program code from the graphical definition of the mapping lookup. The SELECT statement that is generated contains the
fields you access using the default function in the graphical JDBC lookup. The fields are set in double quotation marks to avoid conflicts with SQL keywords.
Example
In the mapping lookup, access an ORDER field that contains a request number. The SQL SELECT statement however contains an ORDER keyword to set
the order. To identify the field in the SELECT statement as identifier for a field it must be set in doubled quotation marks ( "ORDER" ). Otherwise the
statement syntax is incorrect.
The database that you want to access using the JDBC lookup must work with double quotation marks for accessing fields in the SQL syntax. This can be
configured for the database in some cases: for example, if a JDBC lookup, which is described by the graphical standard function, only functions with a MySQL
database when the SQL mode ANSI or ANSI_QUOTES is set.
Procedure
1. Enable Access to the Database Table
1. In the Integration Directory, create the JDBC receiver channel for the call to the application system.
More information:
Defining Communication Channels
Configuring the Receiver JDBC Adapter
Note
This receiver channel is initially only required for reading the table structure. The developer or consultant can create a different receiver channel later
to access the same table in a different system (see also step 8 below).
2. Create an external definition in the Enterprise Repository and import the table structure for the lookup (see: Importing Table Structures from a Database
).
2. Define a Parameterized Message Mapping Program
1. In the Enterprise Services Repository, create a message mapping with a source and target structure, or open an existing message mapping for editing.
2. In the mapping editor, switch to the Signature tab page. Create an import message mapping parameter of category Adapter (for example, MMP_JDBC )
and assign it the adapter metadata of the JDBC adapter. The adapter metadata of the JDBC adapter is shipped by using software component SAP
BASIS.
3. In the mapping editor, navigate to the Definition tab page and then to the target-field mapping for which you want to define the JDBC lookup.
4. Drag the standard JDBC lookup function to the data-flow editor and define the SELECT statement in the function properties graphically:
1. Select the import message-mapping parameter for the JDBC adapter from the dropdown list box ( MMP_JDBC from step 4). The message mapping
uses this parameter later to transfer the ID of the receiver channel to the function which is to be used for the lookup (see steps 7 and 9).
2. Call input help and select the external definition from step 2.
3. Define the SELECT statement.
All available fields are displayed in the middle of the standard-function editor. The mapping editor creates an inbound or outbound parameter
for the function for each field that you add to the right or left column.
Add all fields that you want to use to read a row in the database table to the column on the left. You must assign values to these fields later.
To do so, in the data-flow editor, assign them the source fields or result values of other functions. If you do not specify a unique key when
you select the fields, multiple rows are read.
Add all the fields that you want to apply from the result of the SELECT statement and want to process further to the column on the right. If a
SELECT statement selects multiple rows, the function returns a result queue for each result parameter.
4. If you have selected the relevant checkbox in the function properties of the standard function, the mapping runtime inserts a context change after
each value in the result queue.
5. If, later, you want to assign a receiver channel to the message mapping parameter that you assigned the import function parameter to in step 1
(MMP_JDBC), you must assign this import parameter to an operation mapping parameter by using a binding (see step 4-8 in Defining and Using Import
Parameters ), for example IM_JDBC.
To execute or test the mapping program and the mapping lookup, perform the following steps in the Integration Directory:
3. Configure a Receiver Channel for Mapping Lookups
1. If you want to use a different JDBC receiver channel to the one in step 1, in the Integration Directory, create a new receiver channel for calling the
application system.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
More information:
Defining Communication Channels
Configuring the Receiver JDBC Adapter
2. To transfer the ID of the receiver channel to your message mapping program at runtime, create an integrated configuration and assign to it the operation
mapping from step 7. Then, in the integrated configuration, you can assign the receiver channel to the operation-mapping parameter (in the example
IM_JDBC ).
More information: Defining the Integrated Configuration
Prerequisites
To be able to model the lookup graphically, the structure of the RFC must be known. To use this structure in the mapping editor, you must import the RFC to
the Enterprise Services Repository (see step 2 below).
Procedure
Enable RFC Call and Import RFC for Mapping Editor
In the Integration Directory, create the RFC receiver channel for the call to the application system.
More information:
Defining Communication Channels
Configuring the Receiver RFC Adapter
This receiver channel is initially only required for testing the lookup. The developer or consultant can create a different receiver channel later to call the same
RFC in a different system (see also step 8 below).
Import the RFC into the Enterprise Services Repository.
More information: Importing IDocs and RFCs
Define a Parameterized Message Mapping Program...
In the Enterprise Services Repository, create a message mapping with a source and target structure, or open an existing message mapping for editing.
In the mapping editor, switch to the Signature tab page. Create an import message-mapping parameter of category Adapter (for example, MMP_RFC ) and
assign it the adapter metadata of the RFC adapter. The adapter metadata of the RFC adapter is shipped in software component SAP BASIS.
In the mapping editor, navigate to the Definition tab page and then to the target-field mapping for which you want to define the RFC lookup.
Drag the standard function RFC Lookup in function category Conversions to the data-flow editor and define the call graphically in the function properties:
Select the import message-mapping parameter for the RFC adapter from the dropdown list box ( MMP_RFC from step 4). The message mapping uses this
parameter later to transfer the ID of the receiver channel to the function which is to be used for the lookup (see steps 7 and 9).
Call input help and select the imported RFC from step 2.
To define the RFC call, in the function properties for standard function RFC Lookup, model the inbound and return parameters for the function, and model
how they are associated with the request and response parameters of the RFC. If you connect source fields or functions with the inbound parameters
later, you implicitly define a mapping between these source fields or functions and the parameters of the RFC request (left-hand side). At runtime, this
mapping is processed in the same way as a target-field mapping. In the function properties, you then define which parameters of the RFC response can
be assigned to target fields or functions by using the return parameters in the dataflow editor (right-hand side).
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Procedure
More information:
Defining Content-Based Routing
Defining Extended Receiver Determination (Advanced Adapter Engine)
Defining Message Splits
More Information
Routing
Procedure
To configure content-based routing, you basically do the following:
When configuring content-based routing in an integrated configuration, Receiver tab, you define routing conditions for specific receivers or a sets of
receivers.
When configuring content-based routing in an integrated configuration, Receiver Interfaces tab, you define routing conditions for specific sets of
inbound interfaces.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Create an integrated configuration in the Integration Directory: Defining the Integrated Configuration
Note
For local message exchange using the Advanced Adapter Engine or in case you use the Advanced Adapter Engine Extended, you configure content-based
routing in an integrated configuration ( Receiver tab page or Receiver Interfaces tab page).
More information: Defining the Integrated Configuration
When you define a routing condition, you basically specify the following attributes:
With the Left Operand , you specify the payload element of the incoming message upon which the routing to the specified receiver is to depend.
In the Right Operand , you enter a value for the payload element.
You choose a specific Operator to link both operands.
You have the following options to specify the payload element:
Using an XPath expression
Using this option, you can select the payload element intuitively from the structure of the incoming message (which is defined by the outbound interface
in the key of the integrated configuration).
Using a context object
Using this option, you select a context object that has been defined for the outbound interface. A context object is a design object that can be used as
an abbreviated expression for an XPath expression to address a specific payload element.
Note
A context object has to be defined with the corresponding outbound interface in the ES Repository beforehand. So, if you already know at design
time the payload elements upon which the routing is likely to depend, you can define the corresponding context objects in the ES Repository at the
corresponding service interface.
More information: Creating Context Objects
Procedure
Defining an Interface Split
By default, in an integrated configuration you specify one or more inbound interfaces for a given receiver system. For each inbound interface, you might also
like to assign a mapping since the inbound interfaces are most likely different from each other.
This is the basic procedure:
1. Define the service interfaces and operations in the ES Repository.
2. Optional: Define the necessary mappings in the ES Repository.
3. Define an integrated configuration.
More information:
Defining the Integrated Configuration
The figure below shows the behavior at runtime:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
2. In the Integration Directory, define an integrated configuration with the following properties:
The object key contains the source interface of the multi-mapping as outbound interface.
In the integrated configuration, select the multi-mapping from the ES Repository (in the Operation Mapping field).
Note
Note that only 1:n transformations can be processed.
The target interfaces defined for the multi-mapping in the ES Repository are then calculated and displayed in the integrated configuration.
More information:
Defining the Integrated Configuration
The figure below shows the behavior at runtime:
Caution
Using this option, you can only configure a message split where the split messages are sent to different inbound interfaces of the same receiver system.
The reason for this is as follows: During runtime, the receiver determination step is performed prior to the mapping step. At the time when the multimapping is performed and the corresponding inbound interfaces are calculated (and the corresponding split messages are generated), there is no chance to
do another receiver split . The resulting split messages can only be sent to the receiver system determined in the previous step.
Routing the Split Messages to Different Receiver Systems
To configure a message split where the split messages are routed to different receiver systems, you define the message split using several 1:1 mappings
(instead of one 1:n mapping).
This is the procedure:
1. In the ES Repository, define the necessary 1:1 mappings for each of the intended split messages. Each mapping creates another subset of line items
out of the large source message.
2. In the Integration Directory, do the following:
1. Configure the different receiver systems in an integrated configuration.
2. For each configured receiver, define an integrated configuration. Assign the right 1:1 mapping and inbound interface.
More information:
Defining the Integrated Configuration
The behavior at runtime is illustrated in the figure below:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
You can use this feature if you run scenarios that involve the exchange of sensitive data and you want to prevent malicious users from accessing this
data.
For more information on how this function is related to the Payment Card Industry - Data Security Standard (PCI-DSS) , see: Using SAP PISAP PI in
PCI-Compliant Scenarios .
The encryption of the message payload at the database level has the following characteristics:
It can be activated for specific service interfaces.
This means encryption can be activated for specific scenarios that include the exchange of sensitive business data.
It affects the complete payload of the message.
When you activate encryption for a service interface, the complete payload will always be stored encrypted.
Note that encryption of the message payload in the database does not affect how the message content is displayed in monitoring.
Encryption is supported for messages stored in the Advanced Adapter Engine message database.
Limitations
If you plan to use this feature, consider the limitations summarized under Encrypting Message Content on Database Level (Limitations) .
Procedure
The individual configuration procedure depends on the involved components. This is the general procedure.
1. Configuring service interfaces
Indicate the service interfaces in the Enterprise Services Repository for which message encryption should be activated.
More information: Configuring Service Interfaces for Encryption (ES Repository)
2. Configuring Advanced Adapter Engine
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
Also note the following:
Make sure that the relevant service interfaces specified as sensitive are assigned to the involved communication components. If you are using
business components, you need to assign the relevant service interfaces manually.
Recommendation
Note these general recommendations on how to handle keys:
Be careful if you plan to delete keys. If you have deleted a key, a message (that has been stored encrypted) remains in the database but can no longer be
opened. Do not rename keys during productive scenarios.
Configuration Tasks for Different System Landscapes
The configuration procedure and the involved configuration tools depend on the involved components at runtime.
The following figure illustrates a possible setup of components.
In the illustrated setup, an SAP system is also connected to the PI instance based on the XI message protocol (configured in the SOAP adapter).
To configure message encryption for this setup, you need to perform the following configuration tasks:
Configuring service interfaces for encryption (as described under Configuring Service Interfaces for Encryption )
Configuring the AAE (as described under Encrypting Message Content on Database Level (AAE) )
Configuring the local Integration Engine in the connected SAP system (as described under Encrypting Message Content on Database Level (Local IE) )
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Recommendation
To overcome this limitation, administrators can manually redeliver affected messages or clean up the message database.
More information: Data Storage Security for the Advanced Adapter Engine
Applying message archiving can disable message encryption.
If an archiving solution is used that does not support encrypted data storage, this can lead to a situation in which configured message encryption at the
database level (as described in this section) is disabled. Administrators are recommended to evaluate the archive solution used in light of this limitation.
Scenarios using Business Process Management are not fully supported.
Depending on the scenario, messages or message elements may be stored unencrypted in separate databases even if the message encryption is
configured according to the procedures in this section.
Encryption of logged synchronous messages is not supported in the Advanced Adapter Engine.
Advanced (user-defined) message search on sensitive message elements is not supported.
If you define filters that include payload elements with sensitive data, be aware of the fact that these elements are stored unencrypted.
SAP NetWeaver Search and Classification (TREX) is not supported.
TREX stores messages unencrypted.
Message encryption at the database level is not fully supported for all SAP adapters and third-party adapters.
Adapters with their own message storage (for example, RNIF, CIDX adapter) do not support encrypted data storage if the message itself was not
previously encrypted by the sender.
Only service interfaces can be marked as sensitive. Imported IDocs and RFCs cannot be marked as sensitive. Scenarios using those imported
interfaces on either sender or receiver side are currently not supported.
Procedure
More information: Configuring Principal Propagation Using the Advanced Adapter Engine
Security
System Security
You can connect an Advanced Adapter Engine to an external virus scanner using the Virus Scan Interface in order to activate virus scanning of both inbound
and outbound messages.
By default, virus scanning of a message is limited to scanning attachments of the message for malicious data. Optionally, you can configure the Advanced
Adapter Engine that way that the message payload in addition is scanned for malicious data.
Virus-scanning is supported by all adapters delivered by SAP.
Procedure
1. Configuring Virus Scan Interface
Configuration of the Virus Scan Interface is implies tasks related to components based on Application Server Java.
To configure the Virus Scan Profile (AS Java), perform the following tasks:
1. Logon to SAP NetWeaver Administrator and choose
Configuraton
Security
Virus Scan Provider .
2. Select the scan profile: pi_Messaging.
3. Make the following entries:
Profile Description Process Integration Messaging
Reference Profile: Select the Default Profile
For more information, see SAP Library at http://help.sap.com under
SAP NetWeaver Library: Function-Oriented View
Security
Virus Scan Interface
Configuration of the Virus Scan Interface .
2. Global activation of virus scanning for the involved Advanced Adapter Engine
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Security
System
Virus scanning can be configured for the Advanced Adapter Engine (AAE).
The configuration settings specified for the Advanced Adapter Engine are referred to as global configuration settings, because they apply for all
integration scenarios that are executed on the basis of the chosen setup of business systems and runtime engines.
As default setting, virus scanning of inbound messages is proposed. However, you have the option to activate virus scanning for outbound messages
in addition.
More information: Configuring Virus Scanning on the Advanced Adapter Engine
3. Scenario-specific activation of virus scanning
You can specify for which messages as part of a specific scenario virus scanning should be applied. You perform this task by specifying the
corresponding configuration object in Integration Directory.
For message processing using the Advanced Adapter Engine only, you can configure virus scanning of messages for specific scenarios that are
covered by an integrated configuration.
More information: Defining the Integrated Configuration
Choose the favored option under Virus Scan .
You can choose between the following options:
Using global configuration
Select this value to choose the global configuration as specified for the Advanced Adapter Engine.
Enabling virus scanning for the selected configuration object
Select this value to enable virus scanning for the messages specified by the configuration object.
Disabling virus scanning
Select this value to disable virus scanning for the messages specified by the configuration object.
Prerequisites
Ideally, you have mapped the B2B integration in the Enterprise Services Repository using a process integration scenario. In the Integration Directory this
enables you to automate much of the configuration of configuration objects using the model configurator. However, you must define the collaboration profile
manually.
If there are no process integration scenarios that you can use as the configuration template, you need to create all configuration objects manually.
Procedure
Configure Collaboration Profile
In this step you define the required communication parties, communication components, and communication channels.
To define the collaboration profile, perform the following steps:
1. In the Integration Directory, create a communication party for each business partner involved in the process.
2. Create a communication component of type Business System for each business system in your internal system landscape.
3. Create the required business components.
Note
Business partners involved in B2B processes do not generally make the names of their internal business systems known externally, but instead
mask them by using business components.
Assign the business components that your business partner provided for external communication to the communication party that represents this
external business partner.
Assign the business components that represent your own internal system landscape externally to the communication party that represents your
own company.
4. Create the required communication channels.
You need one communication channel for each adapter involved. Depending on whether the adapter is a sender adapter or a receiver adapter, you create
the communication channel for the relevant sender or receiver communication component as required.
Configure Communication Channels with Industry Standard Adapters
At least one of the involved business partners uses an industry standard adapter (such as the RNIF adapter) to connect to the message protocol supported by
the respective industry standard.
In this step, you configure the involved industry standard adapter using the corresponding communication channels.
For information about the values you have to enter for the parameters of the communication channel, see the configuration guide for the respective industrystandard-specific SAP business package.
More information: Setting Up Integration Based on SAP Business Packages
Configure Integrated Configuration
In this step you configure the required integrated configuration. In an integrated configuration you assign the required communication channels to the relevant
sender/receiver pairs. You also specify the agreed security settings (if they are supported by the adapters used).
Perform the following steps:
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
1. Create an integrated configuration for each sender/receiver pair that requires a sender adapter for inbound processing.
2. Define a header mapping for the integrated configurations that describe the communication with your external business partner. This ensures that the
name of a business component (and not the name of a business system or an integration process component) is written in the header of the outbound
message at runtime.
More information:
Defining the Integrated Configuration
Defining Header Mappings
3. Specify the required security settings in the relevant integrated configurations.
Configure Logical Routing
In this step you define the logical routing.
In a B2B process, specify receiver-dependent integrated configurations for all messages that are to be sent from your business partner to the business
components that you published. As the configured receivers, specify the business system components of your internal system landscape to which the
message is to be forwarded.
More Information
B2B Configuration
Configuring B2B Scenarios Using the Model Configurator
Procedure
For the complete end-to-end description, check the corresponding chapter under
Development and Configuration Tasks (Dual Usage Type)
Advanced
Development Tasks (Dual Usage Type)
Security-Related Tasks , respectively
Development and Configuration Tasks (AEX)
Advanced
Development Tasks (AEX) .
Example
If you configure message staging in such a way that a message version is stored after the mapping step, the receiver interface is also relevant for this
message version.
To ensure that the message version after the mapping step is encrypted, you also need to specify the receiver interface as sensitive.
More information on staging:
Saving Message Versions in the AAE (Local Message Processing)
Saving Message Versions in the AAE (Dual Usage Type Message Processing)
Caution
Activating encryption for a specific service interface might impair performance for those scenarios that involve processing of the corresponding message.
Note
All SAP systems based on Application Server ABAP release 6.20 or higher contain a local Integration Engine, also when used as an application system.
This local Integration Engine enables the system (when used as an application system) to connect to another system via an SAP PI runtime engine. This
kind of connectivity is also referred to as connectivity based on the proxy runtime. All other systems - either SAP or third-party - connect to the SAP PI
runtime using adapters.
Procedure
Configuration Tasks
Define the encryption keys and maintain the Personal Security Environment (PSE):
1. Call transaction SSFA .
2. Choose New Entries .
3. Select the SSF application PI Key1 DB Message Encryption .
Note
This SSF application is predelivered.
4. For Encryption Algorithm , select the value TRIPLE-DES.
5. Save your changes.
Caution
SAP recommends not to change the name of the PSE file (field Private Address Book ). In case you nevertheless like to change the name,
consider the fact that the maximum name length is 25 characters. The reason for that is that the ENCRYPTION_KEY parameter value is restricted to
this length.
6.
7.
8.
9.
10.
Repeat these steps for the SSF application PI Key 2 DB Message Encryption .
Call transaction STRUST .
Position the cursor on the entry SSF PI Key 1 DB Message Encryption .
In the context menu, choose Create .
For Algorithm , select the value RSA.
11. Repeat these steps for the entry SSF PI Key 2 DB Message Encryption .
12. Check if entries for all application servers are indicated as ok (green traffic light).
Note
Note the following recommendations related to your activities using transaction STRUST:
Choose a suitable key length (recommendation: 2048 bytes).
As far as the requirements of the scenario allow, choose a suitably long validity period for the key. Otherwise take suitable measures to prepare your
business processes and systems for key expiration.
Create backups of the keys by exporting them. Furthermore, be careful when deleting keys. There might still be messages stored in the database
that cannot be read without the key.
Finish encryption configuration on the Integration Engine and prepare to activate encryption for the sensitive service interface.
1.
2.
3.
4.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Example
If a key has been compromised, the administrator can find out if the key is still in use for message encryption.
To do this, perform the following steps:
1. Call transaction SXMB_CHK_ENCKEY .
Note
You can alternatively call the Object Navigator (transaction SE80 ) and then start program RSXMB_CHECK_ENCKEY_USAGE.
2. You can display a list of messages encrypted either for a specific key or for all keys in use.
Note
The following description always assumes that there is an AAE located between the sender and the receiver.
This scenario can be implemented in one of the following cases:
You use the Advanced Adapter Engine Extended as installation option.
You use the dual usage type installation option of SAP PI and configure local message processing by the AAE.
You can configure principal propagation on the basis of authentication assertion tickets (as authentication method).
Note
This option is supported by the following adapters:
RFC Adapter
SOAP Adapter
Web Service Adapter
and adapter.
Procedure
Configuring principal propagation in general involves the following tasks:
Configuring involved back-end systems (for sender and receiver)
Configuring a trust relationship for involved components
Special configuration tasks for sender components
The following sections provide detailed information on these tasks.
One example set up is illustrated in the following figure.
In this set up, a user context is propagated from a sender component to a receiver component with an AAE interconnected. Two communication paths have to
be configured. On the first communication path (in the figure at left), the sender (acting as client) calls the AAE (acting as server). On the second
communication path (in the figure at right), the AAE acts as client when calling the receiver (acting as server).
Configuring Back-End Systems Based on AS ABAP
For involved sender or receiver component that are based on AS ABAP, perform the steps as described under Enabling Principal Propagation for ABAP
Messaging Components .
Configuring a Trust Relationship for Involved Components
The AAE supports principal propagation based on SAP assertion tickets. For all involved components, you have to perform configuration steps as described in
detail under Configuring a Trust Relationship for SAP Assertion Tickets .
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
The configuration procedure depends on the underlying stack (AS ABAP or AS Java) and on whether the component acts as client or as server on a
specific communication path. Therefore, refer to the corresponding sub chapter in the section linked to above.
For example, for the configuration of sender components based on AS Java, refer to sub section AS Java: Client Side (under Procedure ). The same
sub section applies for the configuration of the AAE in order to send messages to a receiver component (right hand communication path in figure above).
Sender-Specific Configuration Steps
For sending components (left hand side in figure above), the following configuration steps are necessary - depending on the used communication protocol.
More information: Configuring the Sender
Configuration Steps in the Integration Directory
In the Integration Directory, specify between which entities principal propagation is to take place.
Follow the sequence of tasks as described under: Setting Up Scenarios Using Local AAE-Based Message Processing (under 2. Configure Integration
Content ).
If you would like principal propagation to occur between a sender and a receiver using the AAE, consider the following additional aspects:
Configuration of sender and receiver communication channel.
When you use a SOAP adapter (sender or receiver), as Message Protocol choose XI 3.0.
In the involved SOAP receiver channel, you have the following options to configure connection parameters and authentication (tab General ):
You can choose HTTP Destination as Addressing Type .
In that case, configure the relevant destination using SAP NetWeaver Administrator and ensure that this HTTP destination uses Authentication:
Assertion Ticket .
You can choose URL Address as Addressing Type .
In that case you have the following options:
Specify the target URL for an SAP receiver system and add the following string at the end of the URL (in field Target URL ): &sapclient=<number of client addressed> .
For Authentication Mode , choose Anonymous Logon .
Specify the target URL for an SAP receiver system and skip the &sap-client=<number of client addressed> string at the end of the URL.
In that case, as Authentication Mode , choose Use logon data for SAP system and specify the client of the target system. Leave all other
fields under Authentication Data empty.
Implementing principal propagation from the sender to the AAE.
In the corresponding integrated configuration, on the Inbound Processing tab page select the Principal Propagation check box. If this check box is
selected, the signature of the sender ticket is verified and the corresponding user can log on to the AAE.
Note
The check box is only displayed if you have assigned the integrated configuration a sender communication channel with the appropriate adapter
type.
Implementing principal propagation from the AAE to the receiver.
In the corresponding integrated configuration, select the Principal Propagation check box on the Outbound Processing tab page.
Note
The check box is only displayed if you have assigned the integrated configuration a receiver communication channel with the appropriate adapter
type.
Recommendation
It is recommended that you select both check boxes (on the Inbound Processing and on the Outbound Processing tab page) to ensure an end-to-end
configuration of principal propagation.
In case that, for example, only the check box on the Inbound Processing tab page is selected, the user as configured in the receiver channel is used to
call the target system (instead of the intended user which is propagated from the sender to the AAE).
Note
This is typically the case in small or midsize companies with a manageable size and structure of the system landscape.
However, in larger enterprises or in scenarios spanning different enterprises, this assumption can no longer be made. This section provides information about
how business-to-business (B2B) scenarios can be managed with SAP PI. In a B2B scenario, business partners (this can be whole enterprises which are in a
business relationship with each other) communicate and exchange data with each other based on an IT infrastructure without knowing all details of the whole
system landscape. In light of this fact, the concept behind the Integration Directory can be adapted to be used in a more flexible and generic way in order to
cater for just such cases.
More information: B2B Configuration
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Procedure
More information on the procedure to set up B2B integration based on a process integration scenario: Configuring B2B Scenarios Using the Model
Configurator
SAP provides industry-specific business packages to support the B2B integration of industry standards, such as RosettaNet for the high-tech industry.
More information on the general procedure to set up scenarios based on industry-specific business packages: Setting Up Integration Based on SAP
Business Packages
Caution
For the purposes of this section, it is assumed that you are configuring a process integration scenario.
B2B Communication
In a B2B scenario, a minimum of two parties communicate with each other. The internal system landscapes of the parties are only made partially public or not
at all. The parties communicate using business components .
When you design a process integration scenario, you can predefine B2B communication by classifying an application component as an External Party with
B2B Communication (a B2B component in short). All connections to and from a B2B component are known as B2B connections .
In the graphic below, B2B communication between two communication parties is shown schematically:
The integration expert configuring the process integration scenario for party A only has access to the details of party A's internal system landscape. Therefore,
he can only define communication components for business systems from this part of the system landscape. He does not have access to details about the
internal system landscape of party B. The situation is the opposite for an integration expert who configures the process integration scenario at party B.
Configuring B2B Scenarios
Note
Below are the steps that need to be performed at party A to configure the B2B scenario.
When designing the process integration scenario that you are using as a configuration template, you must have predefined B2B communication as a B2B
component by creating an application component.
You perform the following steps in the model configurator.
1. Assign Communication Components
When assigning the communication components for the application component of party A, do the following:
1. First assign the communication components for the internal systems (business systems) that are responsible for the processing of the messages (tab
page Business System Components for A2A )
2. Determine the business components to be used for B2B communication with external party B (tab page Business Components for B2B ).
These business components are visible to party B.
3. Assign the communication components that were defined for the internal systems (business systems) system 1n to the business component (at party
A) (tab page for Business Components for B2B ).
If any business components are missing, you can create them directly when assigning the components.
2. Configure B2B Connections
Senders and receivers are connected by joining together their respective business components when configuring the B2B connection.
The communication channels at the sender and receiver must be defined to define the technical details of message exchange. If, in the process integration
scenario used as the template for configuration, communication channel templates are assigned to a connection, they can be used to create new
communication channels. You can reuse or copy existing communication channels.
3. Generate the Configuration Objects
The following B2B-specific settings are preconfigured when generating the configuration objects:
The corresponding configuration object (receiver agreement for dual usage type installation or integrated configuration for AEX) with sender party B also
contains party A's business component as a virtual receiver in the key. The communication components that were defined for the internal systems
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
(systems 1...n) are also entered as assigned receivers. At runtime, the messages sent from party B to party A's business component are also forwarded
to the internal systems 1...n by means of receiver-dependent routing .
Note
You must create the routing conditions for the assigned receiver manually after generation is complete.
A header mapping is predefined in the corresponding configuration object that defines the outbound processing for the message for party B as the
receiver (receiver agreement for dual usage type installation or integrated configuration for AEX). The header mapping maps the communication
components of the internal systems 1...n to party A's business component. Therefore, party A's business component is entered as the sender in the
header of the messages sent from the internal systems 1n to party B.
Note
You can use the model configurator to configure both party-integrations (B2B connections) and connections between internal systems.
More Information
B2B Configuration
Configuring Process Integration Scenarios (for dual usage type installation)
Configuring Process Integration Scenarios (for Advanced Adapter Engine Extended)
Note
The RosettaNet Implementation Framework (RNIF) standard, developed by the organization RosettaNet, defines processes, interfaces, and transport
protocols for the exchange of business data in the high-tech industry (for example, in the electronics industry).
To facilitate the setup of B2B interactions with business partners compliant with an industry standard, SAP provides business packages containing both the
relevant integration content in the ES Repository that allows the mapping to these standards, and the industry-specific adapters that enable an external
standard to be technically connected with the integration broker. SAP provides business packages for RosettaNet, Chemical Industry Data Exchange (CIDX),
and Standards for Technology in Automotive Retail (STAR).
Caution
When you have installed the Advanced Adapter Engine Extended (AEX), integration processes cannot be used. Therefore, those scenarios of the business
package that use integration processes are not supported in that case.
Support of Electronic Data Interchange (EDI)
SAP Process Integration also supports the integration with United Nations/Electronic Data Interchange For Administration, Commerce, and Transport
(UN/EDIFACT) , the international standard for Electronic Data Interchange (EDI).
To ensure connectivity with systems based on this standard, you can use the SEEBURGER business packages for SAP PI. Over the past years,
SEEBURGER has developed a large number of EDI adapters, including thousands of mappings and dozens of EDI communication protocols, for different
scenarios in various industries.
Structure of the Business Packages
SAP business packages are structured in the following way:
They contain:
Integration content that describes the industry standard interfaces
Integration content that describes the mappings of SAP standard interfaces to industry standard interfaces
For more information about structuring business packages and how the current industry standard is mapped as content in the Enterprise Services
Repository, see Structure of Business Packages .
Adapter metadata for the industry standard adapter - you use the RNIF or CIDX adapter to connect to the message protocol supported by the relevant
industry standard (RNIF adapter to connect to RosettaNet Implementation Framework and CIDX to connect to Chem eStandards).
You can use the business packages provided by SAP to define your own processes based on these industry standards. Usually, the most important task is to
develop new mappings between your application and the interface of an industry standard.
Procedure
You set up the integration by following the following general procedure:
1. Install the SAP business package
Download the relevant SAP business package and import the corresponding industry-specific integration content to the ES Repository.
You can find the SAP business package in SAP Software Distribution Center at http://service.sap.com/swdc
(SAP Service Marketplace login
required). Select the Downloads tab. In the navigation area, choose
Support Packages and Patches
Browse Our Download Catalog
SAP
Content . Choose ESR Content (XI Content) . Note that the authorizations for downloading process integration content are generated automatically
depending on your licenses. For example, look for the package XI CONTENT CIDX ERP for the integration content that describes the mappings of
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
depending on your licenses. For example, look for the package XI CONTENT CIDX ERP for the integration content that describes the mappings of
SAP standard interfaces to CIDX interfaces.
2. Define a new software component version in the System Landscape Directory for your development
This ensures that your developments are not overwritten by SAP updates later on.
This software component version must be based on the software component version that contains the business package.
See the explanations as provided under Using Predefined Integration Content .
3. Import the software component version to the Enterprise Services Repository
4. Define the content in the Enterprise Services Repository
In this phase, you build your integration content based on the predefined industry-specific integration content you have imported.
Note
The integration design for RosettaNet and CIDX is based on process integration scenarios.
5. Configure the integration.
More information: Configuring B2B Integration
Content
Example
CIDX
Application-dependent software component
<Industry Standard ID> <Application ID>
Example
CIDX ERP
Describes the process independently of the application that is mapped with the
industry standard.
There is exactly one process integration scenario for each CIDX transaction in
software component CIDX.
Naming convention:
<Transaction Name>
Example
OrderCreate
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Service Interface
External definition
Describes the data structure. The external definition contains the uploaded CIDX
schema.
Naming convention:
<Name of the root element in the schema>
Example
CustomerSpecificCatalogUpdate
Communication channel template
Example
Buyer_Send_ OrderCreate
Describes the process depending on the application that is mapped with the
industry standard, and depending on the role (Buyer or Seller).
Note
There are two role-specific process integration scenarios for each CIDX
transaction in software component CIDX ERP. The role refers to the application
component that the application represents.
Naming convention:
<Transaction Name>_<Role Name>
Example
OrderCreate_Buyer
Operation mapping
Example
DesadvDelvry03_ShipNotice
In this case, the source interface is the IDoc DESADV.DELVRY03 and the target
interface is the industry standard interface ShipNotice.
Message mapping
Mapping template
Describes part of a mapping that can be used for defining a message mapping
Naming convention:
<Outbound Service Interface>_<IDoc Segment>_<Target Service
Interface>_<CIDX-Segment>
More information:
Configuring the CIDX Adapter in the Integration Directory
Using Conventions for Communication Component Names
Describes the process independently of the application that is mapped with the
industry standard. The role of the application component corresponds to the role in
the business operational view (see Business Operational View in the PIP
specification).
There is exactly one process integration scenario for each RosettaNet PIP in
software component ROSETTANET.
Naming convention:
<PIP Name>
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Example
PIP0A1
Action
Example
Distribute Notification of Failure
Service Interface
External definition
Example
Pip0A1FailureNotification
Communication channel template
Example
Buyer_Receive_PurchaseOrderConfirmationAction
Describes the process depending on the application that is mapped with the
industry standard, and depending on the role (Buyer or Seller).
Note
There are two role-specific process integration scenarios for each RosettaNet
PIP in software component ROSETTANET. The role refers to the application
component that the application represents.
Action
Operation mapping
Example
OrdersOrders05_PurchaseOrderRequestAction
Message mapping
More information:
Configuring the RNIF Adapter
Service Interface Naming, RNIF 1.1
Service Interface Naming, RNIF 2.0
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Storing receiver names in an external data source allows to update of the receiver list without the need of a cache refresh.
Storing receiver names outside the Integration Directory allows non-integration experts to maintain receivers.
Note
This section applies to the use case when configuring message processing using the Advanced Adapter Engine only.
Procedure
1. Define a suitable mapping in the ES Repository.
More information: Mapping Messages to Each Other Using Mapping Objects
In particular, do the following:
Define an operation mapping and assign the abstract service interface ReceiverDetermination as the target interface. The service interface
ReceiverDetermination is in the Enterprise Services Repository in the software component SAP BASIS (namespace
http://sap.com/xi/XI/System).
Define the message mapping or mapping program that is to determine the receivers at runtime. Assign this message mapping or mapping program
to the operation mapping specified before.
Note
The service interface uses the message type Receivers and the data type Receivers. The data type Receivers describes a list of
receivers and has the following structure:
The following instance of the data type Receivers contains two receivers. The first receiver comprises a party (element Party) and
communication component (element Service) and is identified by a DUNS number; the second receiver comprises a communication
component without a party.
<Receivers>
<Receiver>
<Party agency="016" scheme="DUNS"></Party>
<Service>"MyService"</Service>
</Receiver>
<Receiver>
<Party agency="http://sap.com/xi/XI" scheme="XIParty"></Party>
<Service>"ABC_200"</Service>
</Receiver>
</Receivers>
You can specify party and communication component for each receiver.
2. Define an integrated configuration in the Integration Directory
Enter the outbound interface of the operation mapping from above in the key of the receiver determination as the outbound interface. Assign this
operation mapping to the receiver determination. Furthermore, define outbound processing (sender adapters) for all configured possible receivers.
More information on the steps to be performed in Integration Directory:
Defining the Integrated Configuration
Define Extended Receiver Determination
Note
As for AEX no wildcards ( *) can be used to mask the key of configuration objects, you need to specify the name of the potential receivers when
defining the integrated configuration.
Note
If the mapping program returns an XML file with empty or missing <Service></Service> tag, the message is routed to the default receiver (that is
configured in the integrated configuration, Receiver tab, under If No Receiver Is Found, Proceed as Follows , option Select the Following Receiver: ).
7 Administrative Tasks
Use
Operating SAP PI covers both the technical operation of an SAP PI installation and the administration of all its technical components, as well as the execution
and monitoring of integration scenarios that you have set up based on SAP PI.
Procedure
Administering and Maintaining SAP PI
More information: Administering and Maintaining SAP Process IntegrationSAP Process Integration
Monitoring Integration Processes
SAP provides various tools for monitoring the Advanced Adapter Engine, the Integration Engine, and other components in SAP PI.
More information: Monitoring Integration Processes .
Saving Message Versions
You can store messages at runtime in the Advanced Adapter Engine (AAE) and the Integration Engine (IE) for administrative purposes.
More information: Saving Message Versions
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
Objects are not shipped from the Integration Directory because they reflect the configuration settings in a specific system landscape. However, you can
have different Integration Directories installed in your landscape when you differentiate between test landscapes and productive landscapes, for example.
In this case, you can transport from the test Integration Directory to the productive Integration Directory.
Change Management for Design and Configuration Objects
You can create different versions of design objects in the ES Repository and configuration objects in the Integration Directory. When you save an object for
the first time, you create its first version. The object (still in edit mode) is stored in a user-specific change list (tab Change List in ES Repository or
Integration Directory). The version ID is only closed when you activate the object. A new version is created when you start editing the object that is already
activated. The ES Repository and the Integration Directory provide different options for version conflict management.
Note
Object versions are treated in the same way in both the ES Repository and the Integration Directory.
More information:
Change Lists
(ES Repository)
Working with Change Lists (Integration Directory)
Administering Back-End Systems
To administer the back-end systems involved in an integration scenario as well as the AS ABAP or AS Java part of the Integration Server, you can use the
SOA Manager or SAP NetWeaver Administrator, respectively.
Using these tools, you can perform the following administrative tasks:
Monitoring services locally in the back-end system
Publishing services from the back-end system into the Services Registry (for more information: Services Registry)
SOA Manager is the administration tool for ABAP-based backends involved in integration scenarios.
You can access the SOA Manager by using the transaction code SOAMANAGER in the back-end system.
More information: Working with the SOA Manager
SAP NetWeaver Administrator is the administration tool for Java-based backends involved in integration scenarios.
You can access the SAP NetWeaver Administrator by entering the following data in a Web browser:
http://<host>:<port>/nwa
Here the following represents:
<host> the host where the Application Server Java is installed.
<port> the HTTP port of the Internet Communication Manager. It consists of 5<Java instance_number>00. For example, if the instance number
of the Java instance is 60, the HTTP port is 56000.
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
On AEX systems the Runtime Workbench cannot be used for monitoring purposes.
More Information
Monitoring the Advanced Adapter Engine
Monitoring the Integration Engine
Monitoring Integration Processes using SAP NetWeaverSAP NetWeaver Administrator
Procedure
You have the following options to store messages at runtime:
Staging
Versions of asynchronous messages can be stored after specific steps at runtime. An administrator can then edit the message, for example, in order to
correct faulty data in the payload, and then restart and process the message again.
This function is only available for messages processed by the AAE.
Message logging
Versions of synchronous and asynchronous messages can be stored after specific steps at runtime to make them available for logging purposes at a
later point in time. Logged messages are only available in display mode and cannot be restarted any more.
Global Configuration of Staging
Find below more information on how to configure staging globally, that means, for all scenarios running in a PI landscape.
This function is available for asynchronous messages processed by the AAE.
Configuring Staging on the Advanced Adapter Engine
When you use the dual usage type implementation option of SAP PI, you can configure staging on the AAE for two different kinds of message processing
scenarios:
Dual usage type type message processing (including the IE)
In scenarios of this type, both AS ABAP and AS Java are involved for message processing at runtime.
This kind of message processing has been available in the very first releases of SAP PI. It is configured using the configuration objects receiver
determination , interface determination , and sender/receiver agreement in Integration Directory.
More information: Saving Message Versions in the Advanced Adapter Engine (Dual Usage Type Message Processing)
Local message processing on the AAE
This kind of message processing involves only the Advanced Adapter Engine at runtime, the ABAP stack is not involved at all.
Scenarios of this type are configured using the integrated configuration in Integration Directory.
This kind of staging is also the only available option in case you use the Advanced Adapter Engine Extended.
More information: Saving Message Versions in the Advanced Adapter Engine (Local Message Processing)
Global Configuration of Logging
Find below more information on how to configure this function globally, that means, for all scenarios running in a PI landscape.
This function is only supported for synchronous messages.
Configuring Logging on the Integration Engine
More information: Logging and Tracing (Integration Engine).
Configuring Logging on the Advanced Adapter Engine
You can log messages either in the pipeline of the Advanced Adapter Engine or within the processing of a chain of modules of an adapter.
Configuring Message Logging (Within AAE Pipeline)
Configuring Message Logging (Within Adapter Module Chain)
Scenario-Specific Configuration of Staging and Logging
You can configure staging and logging of messages for specific scenarios that are covered by an integrated configuration.
Note
This option is only available for AAE-only message processing.
To perform scenario-specific configuration of staging and logging, open the corresponding integrated configuration in Integration Directory and choose tab
Advanced Settings .
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
Note
For more information on how to display logged messages on the AAE, see: Monitoring Messages
Displaying Message Versions on the Integration Engine
You can display versions of messages processed by the IE. You can compare message versions in order to analyze what changes to the message were
made by the individual processing steps of the pipeline.
More information: Displaying Message Versions (Integration Engine).
Prerequisites
You have set up a system landscape with several ES Repositories and Integration Directories. The system landscape usually consists of development
systems, consolidation systems and production systems.
Note
The system terminates the process in certain cases with an error message when you import or transport large object sets. For more information about
solving this problem, refer to SAP Note 1004684.
Procedure
1. On the basis of your system landscape consider a transport landscape with which you set out between which systems ESR content or configuration
objects are to be transported.
2. Transport the ESR content.
More information: Transporting ESR Content
3. Transporting configuration object.
More information: Transporting Configuration Objects of the Integration Directory
Note
Note
Objects in the Integration Directory reference objects in the ES Repository. We therefore recommend that you first transport the required ES
Repository objects followed by the Integration Directory objects. The configuration is not complete if the Integration Directory references objects in
the ES Repository that have not yet been imported. You can also import the missing objects into the ES Repository at a later date.
Further Information
Process Integration Transports
PI Transports Using the Change Management Service (CMS)
Transporting Objects using CTS
Procedure
1. To transport configuration scenarios, define groups of business systems in the System Landscape Directory in which the business systems that have
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.
been pre-defined for different areas of use (for example, testing and production operation) are grouped together.
For more information, see: Tasks in the System Landscape Directory
2. To ensure configuration content can be imported and exported without any problems, in the System Landscape Directory, you must define (prior to
import) which business systems correspond to each other in the various business system groups.
For more information, see: Configuring Groups and Transport Targets
3. You can now transport the configuration scenario.
Additional Information Transporting ESR Content and Objects of Integration Directory
PUBLIC
2014 SAP SE or an SAP affiliate company. All rights reserved.