Intro SAP PI
Intro SAP PI
Applies to: SAP NetWeaver Process Integration 7.1 including SAP enhancement package 1 Summary This document provides both an introduction to the key concepts of SAP NetWeaver Process Integration and an overview of the tasks and tools that come into play in integration projects. It is targeted at beginners wanting to get involved in the topic and experts already involved in real-life integration projects and who need a handbook to help them stay ahead.
Author:
Peter Gutsche
Table of Contents 1 2 Introduction........................................................................................................................................................... 4 1.1 2.1 2.2 2.3 2.4 2.5 2.6 3 4 What You can Expect from this Document................................................................................................... 4 Integration of Processes ............................................................................................................................. 4 Mediation................................................................................................................................................... 5 Decoupling Business Semantics from Implementation Details...................................................................... 6 Phases of an Integration Project ................................................................................................................. 6 Overview of Tasks and Tools...................................................................................................................... 9 Mediation Capabilities of SAP NetWeaver PI............................................................................................. 10 Basic Concepts..................................................................................................................................................... 4
Installing and Configuring the Software................................................................................................................ 14 Designing Integration Content ............................................................................................................................. 16 4.1 4.2 4.3 4.4 4.5 4.6 4.7 Introduction.............................................................................................................................................. 16 Defining Software Component Versions .................................................................................................... 17 Defining a Process Model ......................................................................................................................... 21 Defining Interface Objects......................................................................................................................... 27 Proxy Generation ..................................................................................................................................... 31 Defining Mappings.................................................................................................................................... 32 Using Predefined Integration Content........................................................................................................ 32 Introduction.............................................................................................................................................. 35 Overview of Tasks and Tools.................................................................................................................... 38 Describing the System Landscape in the System Landscape Directory ...................................................... 41 Defining the Communication Components and Channels (Adapters).......................................................... 42 Configuring Integration Server-based Communication ............................................................................... 43 Configuring Local Message Processing on the Advanced Adapter Engine.................................................. 48 Model-based Configuration....................................................................................................................... 49 Integration Directory Programming Interface.............................................................................................. 52 Overview of Administrative Tasks ............................................................................................................. 52 Overview of Administrative Tools .............................................................................................................. 52 Software Logistics .................................................................................................................................... 55 System Management................................................................................................................................ 56 Troubleshooting ....................................................................................................................................... 56 Mapping Programs ................................................................................................................................... 56 Overview of Mapping Objects in the ES Repository ................................................................................... 58 Operation Mapping................................................................................................................................... 59 Message Mapping (Graphical Mapping Editor) .......................................................................................... 60 Advanced Mapping Techniques ................................................................................................................ 62 Mapping Examples................................................................................................................................... 66 Introduction.............................................................................................................................................. 66 Designing Integration Processes............................................................................................................... 67 Configuring Integration Processes ............................................................................................................ 71
Configuring Integration Content ........................................................................................................................... 35 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8
8.4 9 9.1 9.2 9.3 10 10.1 10.2 10.3 11 11.1 11.2 11.3 11.4 11.5 12 12.1 12.2 12.3 12.4 12.5 13 13.1 13.2 14 14.1 14.2 14.3 14.4 14.5 14.6
Best Practices and Examples ................................................................................................................... 71 Content-Based Routing ............................................................................................................................ 73 Dynamic Routing...................................................................................................................................... 76 Message Split .......................................................................................................................................... 76 B2B Integration ............................................................................................................................................... 79 B2B Integration Design............................................................................................................................. 79 B2B Configuration .................................................................................................................................... 80 B2B Integration Based on Industry Standards ........................................................................................... 83 Security .......................................................................................................................................................... 86 Secure and Reliable Technical Landscape of SAP NetWeaver PI .............................................................. 86 Secure and Reliable Messaging................................................................................................................ 86 Security Standards for Web Services ........................................................................................................ 87 Restricting Access to Runtime Environment to Specific (Service) Users ..................................................... 88 Configuration Examples for Back-End Settings.......................................................................................... 89 Services Registry ............................................................................................................................................ 89 Introduction.............................................................................................................................................. 89 Publishing Service Definitions into the Services Registry ........................................................................... 90 Discovering Services in the Services Registry ........................................................................................... 92 Additional Tasks....................................................................................................................................... 93 SAP Enterprise Services Explorer tool for Microsoft .NET.......................................................................... 93 Web Services Reliable Messaging................................................................................................................... 93 Connecting the Integration Server to WSRM-Enabled Systems.................................................................. 94 Setting Up Direct Communication between WSRM-Enabled Systems ........................................................ 94 Appendix ........................................................................................................................................................ 96 SAP NetWeaver PI Architecture and Tools................................................................................................ 96 Service Provisioning................................................................................................................................. 96 Setting Up High-Volume Scenarios ........................................................................................................... 97 Additional Connectivity Options................................................................................................................. 98 Glossary .................................................................................................................................................. 99 Further Reading and Training ................................................................................................................. 105
Routing............................................................................................................................................................... 73
1 Introduction
1.1 What You can Expect from this Document
This document provides both an introduction to the key concepts of SAP NetWeaver Process Integration (SAP NetWeaver PI) and an overview of the tasks and tools that come into play in integration projects. It is targeted at both beginners wanting to get involved in the topic and see their first example scenario running, and experts already involved in real-life integration projects and who need a handbook to help them keep their orientation not lose the central theme. The document is organized in such a way that, if printed out, it can be used as a self-contained reference for getting a basic understanding of SAP NetWeaver PI. In addition to this, when used online the handbook serves as the first point of entry to those parts of the SAP Library documentation that cover the key concepts in detail, as well as the procedures for performing the necessary tasks end-to-end. Links to key documentation chapters in each section point you to those parts of the documentation where you can dig deeper into the topic touched on in the section. In detail: Chapter 2 covers the basic concepts in short. Chapters 3 6 cover the basic concepts in detail and provide a description of the most important tasks that come into play in an integration project. Chapters 7 - 13 cover specific concepts in more detail than in the preceding chapters.
Note: The concepts and tasks described in this document correspond to release SAP NetWeaver PI 7.1 including SAP enhancement package 1. It is stated explicitly if a specific feature is not available before SAP enhancement package 1 for SAP NetWeaver PI 7.1.
Corresponding notes are added in blue boxes to give an impression of customer scenarios that use a specific concept of SAP NetWeaver PI.
2 Basic Concepts
This chapter introduces the key principles and basic concepts that form the three main phases of SAP NetWeaver PI. These phases constitute the main framework along which all concepts are explained in more detail throughout this document.
Department A
Department B
Department C
Figure 1: Integration scenario showing the interaction of process components The focus of SAP NetWeaver PI is not on the inner life of the individual process components or how the business logic is implemented within a process component but rather on how the process components exchange data with each other. Process integration is all about the choreography of data exchange between process components.
2.2 Mediation
Technically, the business logic of different process 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 process 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 interconnects the systems as a communication hub or data hub. We call this type of communication mediated communication and refer to the data hub as the integration broker. 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:
Integration Broker
Mediated communication based on an integration broker is executed by exchanging XML messages. Accordingly, in the context of SAP NetWeaver 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 NetWeaver PI (which the integration broker can process) is based on the W3C standard SOAP Messages with Attachments (see also Messages).
Note: While we do cover direct or point-to-point communication (see Setting Up Direct Communication between WSRMEnabled Systems), the main focus of this handbook is on mediated communication.
1a 1b
Integration Broker
2c 2b 2a
Process Component
Systems
Figure 3: Integration scenario (design time view; left) and assignment of process components to systems of the actual system landscape (configuration time view; right) As an example, the figure shows the systems of the actual system landscape where the business logic of process components 1 and 2 is implemented: Process component 1 is deployed on systems 1a and 1b, whereas process component 2 is deployed on systems 2a, 2b, and 2c. Resulting from this, the communication between two process components is broken down to communication between the systems mentioned above at runtime, whereas the communication is mediated by an integration broker. The three phases introduced here can be considered to be phases of an integration project: They form the basic framework for the detailed description of the concepts in this handbook.
Integration Scenario
Process Component 1
Message
Process Component 2
Interface
Mapping
Figure 4: Integration-relevant aspects of a business process that can be specified already at design time We will explain in detail the design time-relevant concepts and procedures in the chapter Designing Integration Content.
Relationship Between Process Components (Design Time) and Systems (Configuration Time)
1a 1b
Integration Broker
2c 2b 2a
Systems
Message Flow
Figure 5: Relationship between design time and configuration time entities Based on this assignment, an integration expert specifies further details at configuration time on how the messages are to be exchanged between the systems: How the messages are routed by the integration broker 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 integration broker (connectivity and adapters) Which security-relevant settings apply to the data exchange (for example, if messages are secured using digital signatures) The configuration time-relevant concepts and procedures are explained in detail in the chapter Configuring Integration Content.
2.4.3 Runtime
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. An administrator can monitor the individual systems and the message flow. The runtime-relevant concepts and procedures are explained in detail in the chapter Operating SAP NetWeaver PI.
Note: Integration projects in real life might only cover a subset of the steps covered in this chapter. For example, a typical development project might only cover tasks that are related to the development of interfaces and mappings in the ES Repository (as related to the design time introduced before). On the other hand, you can also think of a project where an already designed integration scenario is set up for a customer-specific system landscape. In the latter project, you will mainly have to perform tasks related to the configuration time.
The following figure shows the phases and key tools that play the most important role in each phase:
Installing & Configuring Designing the Software Integration Content Configuring the Integration Publishing Service Endpoints Runtime/ Operation
ES Repository
Specifying design objects
Integration Directory
Configuring message flow
Services Registry
Publishing/discovering service endpoints
Figure 6: Phases of an integration project and the corresponding key tools that come into play
2.6.1 Mapping
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. Since data structures are merely based on business-relevant considerations, mappings between them can be defined at design time. Transformations at the level of the technical transport protocol are handled by adapters (as described under Connectivity).
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.
Mapping
Sender
Integration Broker
Receiver
Message
Figure 7: Simple mapping concatenating two fields of a source structure into one single target structure field The concepts and tools related to mapping are explained in detail under Mapping.
2.6.2 Routing
Routing covers all rules that define the flow of messages between different systems at runtime. SAP NetWeaver 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 integration broker 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:
Routing
Receiver
Sender
Integration Broker
Receiver
Receiver
Figure 8: Routing of a message to three different receiver systems The concept of routing and more sophisticated routing options are explained in detail in the chapter Routing.
2.6.3 Connectivity
Connectivity is the capability to connect the integration broker to systems or applications that have different technical communication capabilities. 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 integration broker are performed by adapters. SAP provides a variety of adapters to connect the integration broker to sender and receiver applications that are based on completely different technical or application-specific protocols. The integration broker 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 message format into the format or protocol the receiver can handle.
Note: Do not mix connectivity with mapping: connectivity implies transformations between the technical or industryspecific protocols of the connected applications. A technical protocol can be, for example, 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 include, for example, the transformation of one data field format (YYYYMMDD) into another (YYYY-MM-DD).
In particular, SAP NetWeaver PI provides connectivity to: Technical protocols such as JDBC, JMS, HTTP, and many more Industry-specific protocols, for example, RosettaNet or CIDX SAP applications that send or expect their data with IDoc and RFC To ensure greatest possible spectrum of connectivity options, SAP provides a large set of own-developed adapters, and also accepts adapters developed by partners. Additionally, you can develop your own adapters with SAP NetWeaver PI in case you do not find the adapter to fit your needs.
SAP System
(RFC, IDoc, Proxy)
JMS
Figure 9: Connectivity options of SAP NetWeaver PI For an overview of the adapters available for use with SAP NetWeaver PI (either provided by SAP or partners) check the SAP Community Network (SDN) at https://www.sdn.sap.com/irj/sdn/soa-servicebus Mediation, Reliable Transport, and Connectivity.
Customer Experience SAP NetWeaver PI is used extensively to integrate processes in heterogeneous system landscapes making use of the widespread connectivity capabilities. For example, Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company that develops computer processors and related technologies for commercial and consumer markets that uses SAP NetWeaver PI 7.1 to integrate non-SAP systems: For this and more examples, see Customer Scenarios with SAP NetWeaver PI 7.1.
Receiver
Sender
Integration Broker
Receiver
Receiver
Integration Process
Figure 10: Message processing using an integration process The concept is explained in detail in the chapter Integration Processes (ccBPM).
3.1.2 Updating from SAP NetWeaver PI 7.1 to EHP 1 for NetWeaver PI 7.1
If you have already installed SAP NetWeaver PI 7.1, you can update to SAP enhancement package 1 (EHP 1) for SAP NetWeaver PI 7.1. The following documents show how this works for a typical database and operating system: Update Guide to EHP 1 for SAP NetWeaver PI 7.1 (SMP login required)
This guide explains how to update your system from PI 7.1 to EHP 1 for PI 7.1. It also describes how to configure and run a simple process integration scenario. Update Demo to EHP 1 for SAP NetWeaver PI 7.1 (SMP login required) This demo shows how to update your system from PI 7.1 to EHP 1 for PI 7.1. It also shows you how to configure and run a simple process integration scenario. For the complete information on updating an SAP NetWeaver PI 7.1 installation to EHP 1 for SAP NetWeaver PI 7.1, see the enhancement package installation guides.
3.1.3 Upgrading from SAP NetWeaver PI 7.0/XI 3.0 to SAP NetWeaver PI 7.1
If you have installed an earlier release of SAP NetWeaver PI, namely, SAP NetWeaver XI 3.0 or SAP NetWeaver PI 7.0, you can upgrade directly to SAP NetWeaver PI 7.1. For the detailed upgrade procedure, check the upgrade guides for SAP NetWeaver PI 7.1. These guides are structured as checklists for the upgrade and guide you step-by-step through the procedure. You can find the upgrade guides on the following page on SAP Service Marketplace: Upgrade Information (SAP NetWeaver PI 7.1). Select the guide that covers your combination of operating system and database. The Decision-making Factors when Moving to SAP NetWeaver PI 7.1 - Upgrade or New Installation with Phaseout how-to guide discusses in detail the options available to you if you have an earlier version of SAP NetWeaver PI installed and want to move from the productive SAP NetWeaver PI 7.0/XI 3.0 landscape to SAP NetWeaver PI 7.1.
The screenshot shows how the SAP NetWeaver PI start page looks like.
Figure 11: SAP NetWeaver PI start page More information on required user roles to access the tools: Tool Access
Note that 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.
Note: Both of these approaches normally come into play in real-life projects. A typical scenario would, for example, be that you use pre-defined 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, read the section Using Predefined Integration Content.
Depending on the size of the company and the volume and complexity of the related business process, the development tasks might be distributed among different persons in a company in the following for the sake of simplicity summarized as the integration developer.
4.1 Introduction
In this chapter, we assume that you use the top-down or model-driven design approach.
communication channel templates (see below)). Specifying how a process component exchanges messages with another Interface Objects There are different interface object types available that describe these aspects from the communication mode of a message exchange down to the detailed data structure of a message. Mapping Objects
Specifying how data structures are transformed into each other Pre-configuring connectivity
Communication channel templates You use communication channel templates to specify those adapter settings for connectivity that are already known at design time,.
3. Proxy generation 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: All subsequent tasks related to the programming of the business logic in the back-end systems, are out of scope of this handbook.
In the following sections, we cover each of these tasks and the related concepts in detail.
Note: If you have just installed and configured SAP NetWeaver PI but did nothing else, you will only see the SAP BASIS software component.
Procedure
To define a software component version in the SLD, proceed as described under Configuring, Working with and Administering System Landscape Directory. The following figure shows the SLD start page:
Figure 12: SLD start page To import the SLD-based software component version into the ES Repository, do the following: Start the ES Repository from the PI start page. Enter user name and password and choose Process Integration as Application Profile. The application profile defines the set of ES Repository object types you can access during the session that have you logged into. Choosing application profile Process Integration ensures that you have access to all ES Repository object types that are relevant to perform design tasks in the context of integration projects.
Note: Application profile Service Definition is a filter to be used when working with SAP NetWeaver Composition Environment.
The following figure shows the user interface of the ES Repository with an ESR object (data type) opened in software component version SAP BASIS 7.10.
Figure 13: User interface of the ES Repository To import the software component version from SLD, proceed as described under Importing SLD-Based Software Component Versions.
Note: To develop objects for productive use, you have to use a software component version imported from the SLD (SLD-based). For test developments, you can also use local software component versions that do not have any counterpart in the SLD.
In the Edit Software Component Version dialog, you specify the attributes of the software component version according to your particular purposes. For more details, see Editing Software Component Versions. The following figure shows the software component version editor:
Figure 14: Edit software component version dialog These are typical settings for starting a development from scratch: Objects are Original Objects/Objects are Modifiable If you will only have one ES Repository in your landscape and want to create and change the original versions of your ESR objects in this software component version, leave both attributes checked. More information on how to use these attributes in more complex use cases: Software Component Versions Use of Interface Objects This setting influences the attributes available for the service interfaces developed in this software component version. Since service interface attributes have been changed with release SAP NetWeaver PI 7.1, it became necessary to separate developments based on earlier interfaces (developed with SAP NetWeaver PI 7.0 or SAP NetWeaver Exchange Infrastructure 3.0) and developments based on SAP NetWeaver PI 7.1. If you select SAP NetWeaver 7.0, the development of service interfaces is subject to the restriction that you can only define service interfaces that are compatible with SAP NetWeaver XI 3.0 or PI 7.0. This means that all new attributes invented with SAP NetWeaver PI 7.1 can no longer be used as service interfaces with more than one operation, or using interface patterns other than Stateless (XI 3.0-Compatible).
Note: This setting has direct impact on the development of service interfaces for this software component version and cannot be changed later-on.
More information: Usability of Interface Objects Connection Data for Import from SAP System
Should you want to import RFCs or IDocs from an SAP system, specify the details of the SAP system. Uses External Documentation Leave this attribute unchecked. This attribute enables ESR object documentation developed with SAP Solution Composer to be linked to the ESR object in the ES Repository. For the sake of simplicity, we do not cover this feature. To subdivide the software component version further into semantic units (to structure your design objects), create namespaces as described under Creating a Namespace.
Note: You can also use classic process integration scenarios to design the integration of components. This model type was already available in earlier releases of SAP NetWeaver PI, namely, SAP NetWeaver Exchange Infrastructure 3.0 and SAP NetWeaver PI 7.0, and is still supported in SAP NetWeaver PI 7.1. We will not cover this model type in this chapter; however, there is extensive documentation available about example scenarios based on this model type.
Note: You need to use this model type when designing scenarios using cross-component Business Process Management. Therefore, this model type is explained in the chapter Integration Processes (ccBPM). More information: Defining Process Integration Scenarios
Defining the connections between process components Now the integration comes into play: You specify which process components interact with each other. A connection can be specified further later-on with regard to whether it will be realized using mediation. But a connection on this level of detail can also represent a point-to-point interaction where no integration broker is involved. An integration scenario model can contain all the interactions of a large business process that spans your whole enterprise, including communication with external business partners. The following figure shows an integration scenario model and its elements:
Figure 15: Integration scenario model More information: Integration Scenario Model
Figure 16: Relation of integration scenario model and process components interaction model You can specify the following entities in particular in a process components interaction model: What are the interfaces for the message exchange and which operations are defined? How a process component transmits data to another process component is determined by a service interface. In a service interface, for example, the communication mode is defined (synchronous or asynchronous communication) and the direction: if the interface is responsible for a message to be sent out by the corresponding process component, it is an outbound interface. In contrast, if the interface determines how a message can be received by the process component, then it is an inbound interface. A service interface can contain one or more operations. Each operation represents a message that is either to be sent (in an outbound interface) or to be expected (in an inbound interface) by the process component. Which messages are exchanged between the process components (message type) and how are these messages structured (data types)? How are data structures transformed between different process components (mappings)? The interfaces for a data exchange between process components that belong to different organizations often differ from each other. In this case, specify a transformation of the data structures. The corresponding object is the operation mapping. Pre-configuration of adapters (connectivity) If at design time you already know some details about the connectivity of a process component with regard to the connection to another process component, you can specify these details in a communication channel template.
Note: A communication channel (as will be explained in detail in the section Defining the Communication Components and Channels (Adapters)) contains the configuration data for an adapter. The complete adapter configuration cannot be anticipated already at design time because it usually contains information such as the addresses and host names of systems. However, the type of adapter can in some cases already be anticipated at design time (for example, if a process component uses IDocs for communication). In these cases, you can create a communication channel template and assign it to the corresponding process component. Configuration of the integration will then be accelerated at configuration time.
The key feature of the modeling environment is that you can link a modeled entity (for example, for a service interface) with the corresponding editor where you can edit the service interface object.
Note: We also refer to this linking as an object reference. Object references are a general concept of the ES Repository: You can link from process models to interface objects, for example. Additionally, interface objects of different types can also refer to each other in a specific way.
The following figure shows which entities you can specify in a process components interaction model and which of these entities can be linked to corresponding ESR objects. For the highlighted elements, corresponding ESR objects can be defined (assignments), which means that the corresponding editors in the ES Repository can be opened (for example, the service interface editor and the mapping editor are shown below in the figure):
Communication Channel templates
Process Component
Process Component
Message Type
Interface Editor
Mapping Editor
Figure 17: Assignable elements of a process components interaction model For example, you can navigate from a modeled service interface in a process components interaction model to the corresponding interface editor. From the interface editor, you can then navigate to a message type editor and from there to a data type editor (top-down approach). More information: Process Components Interaction Model
Procedure
We show how to start working with a process components interaction model using the modeling environment of the ES Repository. For more details, read the SAP Library documentation under: Modeling the Interaction Between Two Process Components.
These are the basic steps for creating a process components interaction model from scratch: 1. In the ES Repository navigation area, choose the software component version where you want to locate the process model, open the node Modeling, position the cursor on the Models folder, and choose New in the context menu. 2. To create a process components interaction model, select SAP ProComp interaction model as Model Type. 3. On the right-hand side of the graphical work area, you can select between different graphical entities to specify the process. Start by dragging an element for a process component into the work area.
Figure 18: Adding a process component as modeled entity in the graphical modeling editor 4. You continue adding additional elements for the different entities that describe the process flow and the integration. The modeling entities available have already been introduced. For more modeling guidelines, see Modeling the Integration of Process Components. 5. Create the relevant assignments to ESR objects (for example, for the modeled service interfaces). You can assign an ESR object that already exists, however, if you start from scratch, we assume that the relevant ESR objects have to be created. You can create the relevant ESR object based on the model by positioning the cursor on the graphical element and choosing <ESR object type> Assignment Create Assignment in the context menu. This is shown in the following figure:
Figure 19: Creating an assignment for a service interface. 6. The editor for the ESR object opens: You can now continue creating the corresponding ESR object. Based on the process components interaction model, you have now created a set of ESR objects (for example, service interfaces, mappings, and so on) that are necessary to specify the integration. But these objects are still empty: That is, only the object name, namespace, and software component version is specified. All other attributes still need to be specified.
Models
Integration Scenario Model
Interface Objects
Service Interface (Operation)
Mapping Objects
Operation Mapping
Adapter Objects
Channel Template
Message Type
Figure 20: Object references between model types and other ESR objects In the following sections, we explain how to specify these ESR objects, starting with the interface objects.
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 and will be explained in detail below:
Service Interface
Operation Context Object (Fault) Message Type Imported Object (IDoc, RFC)
External Definition
A service interface groups one or multiple operations. An operation represents the smallest, separatelycallable 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 as designed based on the process model (above); the example shows an asynchronous message exchange where a request message is sent from the service consumer to the service provider. As these terms will be used frequently in this document, the relationship of an outbound interface as a description of a consumer service and of an inbound interface as a description of a provider service is also shown:
Service Consumer
Request Message
Service Provider
Operation
Operation
Figure 22: 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:
Outbound Service Interface Service Consumer Request Message Inbound Service Interface Service Provider
Operation
Response Message
Operation
Figure 23: 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 SAP NetWeaver PI 7.1, the attribute interface pattern was introduced to make it possible to 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 backend system (task of application developer). For mediated communication using an integration broker, the interface patterns that fit most use cases are Stateless or Stateless (XI 3.0-compatible).
Note: The interface pattern Stateless (XI 3.0-compatible) is used by default for all interfaces migrated from earlier releases of SAP NetWeaver PI (namely, SAP NetWeaver 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. The following figure shows a screenshot of the service interface editor.
Figure 24: Service interface editor More information: How-to Guide - Best Practices for ES Repository Design Objects (provides best practices on which interface pattern to select) SAP NetWeaver Process Integration 7.1: ES Repository Service Interfaces (presentation; provides an overview of and introduction into interface pattern)
Procedure
To define interface objects, proceed as described in the following documentation chapters: Defining the Service Structure with Interface Objects Service Interface Developing Data Types Service Enabling with SAP NetWeaver Process Integration 7.1 (article)
Developing freely-modeled data types You can model a data type freely using the XSD Editor. For recommendations on which way to design data types, see the how-to guide SAP NetWeaver Process Integration Best Practices: Design.
Note: The programming of the application is not within the scope of this handbook.
Depending on the direction of the service (outbound or inbound interface), you generate a consumer or a provider proxy. For ABAP and Java, proxy generation is performed by special transactions in the connected systems. ABAP proxy generation: AS ABAP, Enterprise Services Repository Browser (transaction SPROXY) Java proxy generation: SAP NetWeaver Developer Studio
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 Download Support Packages and Patches Entry by Application Group 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.
Customer Experience SAP NetWeaver PI 7.1 customers that have made extensive use of the predefined integration content provided by SAP are Energie Baden-Wrttemberg AG (EnBW) and Advanced Micro Devices, Inc. (AMD). For more information, see Customer Scenarios with SAP NetWeaver PI 7.1.
Procedure
To browse for and download integration content, perform the following steps: 1. Access the ES Workplace at https://www.sdn.sap.com/irj/sdn/explore-es. Under Enterprise Services Index Integration Scenarios, you find a list of available integration scenario models. 2. Browse for the required integration scenario and by clicking a connection navigate to the required process components interaction model. From there, you can navigate to the underlying ESR objects (service interfaces, data types) you are interested in. 3. Make a note of the software component version for the ESR content objects you are interested in (as displayed in the Technical Data table). 4. Use the details of the software component versions to find the content package in SAP Software Distribution Center at http://service.sap.com/swdc. Select the Downloads tab. In the navigation area, choose Download Support Packages and Patches Support Packages and Patches - Entry by Application Group. On the Support Packages and Patches page, choose SAP Content, and on the following page choose ESR Content (XI Content), and select the content package (for example, XI CONTENT ROSETTANET).
Figure 25: ESR content packages available in SAP Software Distribution Center
Note: ESR objects (preferably interface objects) assigned to different process components within a model, are usually located in different software component versions. Mappings that describe the transformation between data types assigned to different process components are typically stored in a software component version that differs from the software components where the data types reside.
5. Download the content package and save it as .tpz files on your hard drive. 6. To import the content into the ES Repository into your landscape, proceed as described under Importing ESR Content. To define a based-on relationship between software components in the System Landscape Directory, perform the following steps: 1. Open the new software component (which you have created for your own development) and choose the Dependencies tab. 2. Select the software component the new software component is based on and choose Define Prerequisite Software Component Versions. 3. As Context, select MetaDataRequest.
Figure 26: Defining a based-on relationship between two software component versions in the SLD The detailed procedure is described under Defining and Removing Software Dependencies.
5.1 Introduction
Basically, at configuration time you have to perform the following tasks: 1. Determining the system landscape You identify the systems that are involved in the integration scenario.
Note: At configuration time, the interaction of abstract process components is broken down into system-tosystem interactions.
2. Determining how messages are exchanged between the systems You specify how messages should be exchanged between the systems in accordance with the integration specified at design time. Task 2 is broken down into the configuration of individual system-to-system interactions. As you have to provide all the information necessary for the integration broker to handle the exchange of messages during configuration time, it is most natural to take up the position of the integration broker. This means, for each incoming message (which arrives at the integration broker), you have 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. The following figure illustrates this by highlighting the possible communication paths for a message sent from system 1a to the integration broker (in an interaction between process component 1 and process component 2). You can consider it as showing a subset of the communication illustrated in figure 3:
1a 1b
Integration Broker
2c 2b 2a
Process Component
Systems
Figure 27: Message is sent from system 1a to the integration broker and forwarded from there to systems 2a-c
The following figure illustrates in more detail what happens with an incoming message:
Sender System Receiver Systems
Incoming Message
Integration Broker
2a
1a
2b
2c
Processing of Incoming Message
Inbound Processing
Outbound Processing
Figure 28: Configuration settings for an incoming message In particular, for an incoming message the following aspects have to be specified: Inbound processing Defines how the incoming message is to be transformed technically to the XML message format that the integration broker (or, in other words, the PI runtime) understands. Inbound processing might also include additional security-relevant aspects, for example, how to handle the signature of the incoming message, or how to decrypt the incoming message, if these special security standards have been applied by the sender of the message. Routing Defines which receivers the incoming message is to be forwarded to. 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 integration broker 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.
By default (and also in earlier releases of SAP NetWeaver PI), mediated communication means that messages are exchanged using the Integration Server which is based on AS ABAP and AS Java (doublestack). This means the following: The Integration Server contains an Integration Engine that is based on AS ABAP and that provides the mediation services to process messages at runtime (mapping and routing).
Note: All SAP systems based on Application Server release 6.20 or higher contain a local Integration Engine that allows you to connect the system to the Integration Server. An application running on those systems can use a proxy to connect to the Integration Server. In this context, we also speak of connectivity based on the proxy runtime. All other systems either SAP or third-party connect to the integration broker using adapters. In this case, we speak of connectivity based on the adapter runtime.
Additionally, the Integration Server contains an AS Java-based Advanced Adapter Engine (AAE). If the AAE is also involved in the communication, it depends on the adapters used for inbound and outbound processing.
Note: Adapters run either on the Integration Engine or the AAE. The following adapters run the Integration Engine: IDoc, XI, HTTP, RNIF, CIDX, as well as the connectivity to WSRM-enabled systems (WS channel). All other adapters run on the AAE.
For example, if a JDBC (sender) adapter is used for inbound processing, the AAE is also involved in the communication to provide the required connectivity. 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):
Integration Broker Integration Server Sender System AAE Integration Engine Receiver System
Sender Adapter
Routing Mapping
Figure 29: Integration Server-based communication (including the AAE at sender side)
Figure 30: Local message processing on the AAE, bypassing the Integration Engine At configuration time, you have to decide on which option you choose.
Process Component
Process Component
Outbound Interface
Inbound Interface
Configuration Time
Sender System
Message
Integration Broker
Receiver System
Inbound Processing
Outbound Processing
Figure 31: Usage of the terms outbound and inbound at design time and configuration time
a) Describing the system landscape in the SLD b) Specifying which parties or systems communicate with each other and what their technical communication capabilities are (in the Integration Directory) To do this, you define Communication party Represents a company unit that is to be involved and addressed in message exchange.
Note: Communication parties will be explained in chapter B2B Integration.
Communication component Represents an entity that can be used to address a sender or receiver of messages (typically a system). Communication channel Defines the rules of how to handle messages during inbound or outbound processing. In particular, you use a communication channel to define the type and configuration of the adapter used during inbound or outbound processing. The following procedure for specifying the details of the message exchange in the given system landscape is dependent on the integration broker that is used. Specifying the message processing for Integration Server-based communication The following table lists the configuration objects used to specify the corresponding settings: Configuration Task Defining Inbound processing Configuration Objects Sender agreement Defines the technical details for the inbound processing of a message for a particular sender/receiver pair, that is, how the Integration Server behaves towards the sender of a message. A sender agreement contains a reference to a (sender) communication channel. Defining routing and mapping Receiver determination Specifies the receiver communication components (typically systems) and the corresponding routing conditions. Interface determination Specifies the corresponding inbound interfaces and may refer to a mapping (as specified in the ES Repository). Defining outbound processing Receiver agreement Defines the technical details for outbound processing of a message for a specific sender-receiver pair, in other words, how the Integration Server reacts with regard to the receiver of a message. A receiver agreement contains a reference to a
(receiver) communication channel. Specifying local message processing on the Advanced Adapter Engine You use one single object to specify all steps from inbound processing using routing and mapping right up to outbound processing: The integrated configuration. As an additional option, you can also configure direct communication between systems based on the Web services runtime. We explain this concept in detail under Web Services Reliable Messaging. For the sake of completeness, we mention the relevant configuration object here, which is the direct connection. To summarize: Communication parties, communication components, and communication channels represent the entities that communicate with each other and specify their communication capabilities. Receiver and interface determinations, and receiver and sender agreements (if the message is processed locally on the Advanced Adapter Engine: The integrated configuration) define the details of the message exchange between these entities. For more information, see Configuration Objects
Communication Party
Integrated Configuration
Channel Template
Figure 32: Configuration objects and how they relate to each other
The following figure shows a screenshot of the list of technical systems as maintained in the SLD (SLD start page Technical Systems):
For each business system, select the technical system that should be used as basis for the business system. Select the role of the business system (Application System for a system that acts as sender or receiver of messages in an SAP NetWeaver PI landscape) and assign the related Integration Server. More information: Tasks in the System Landscape Directory
Additionally, you specify for a communication component how this component (or the system it represents) can communicate from a technical perspective, for example, if the system communicates by sending remote function calls or by sending an HTTP request. You use communication channels to define the technical communication capabilities of a communication component. The adapter type (which is one attribute to be specified when creating a channel) determines exactly the type of connectivity: You choose adapter type RFC for connectivity based on remote function calls, for example. The remaining attributes of a communication channel contain the configuration settings for the corresponding adapter. The following figure shows a simple system landscape represented in the Integration Directory as four communication components interacting with each other using an integration broker:
Sender System Receiver Systems
2a
Message Integration Broker
1a
2b
2c
Configuration Objects in Integration Directory
Figure 34: Communication components represent the entities that communicate with each other, communication channels their technical communication capabilities
Note that the communication components identified can act as both senders and receivers of messages. Further configuration then consists of breaking down the picture to individual communication steps between senders and receivers of messages. To define communication components and communication channels, proceed as described under Defining Communication Components and Defining Communication Channels.
Figure 35: Object key of receiver determinations We explain an example object key for the receiver determination. To understand the object key structure in general, you need to know that an incoming message carries address information of the sender in its header. For a receiver determination, the object key has the following structure:
<sender communication component> <outbound interface operation>
Note: In the examples shown in the figure above, the communication components are SAP systems with a specific client specified, and therefore have the form: <SAP system ID>_<client>, for example, QAE_100.
These entities identify the incoming message exactly: The name of the sender system identifies the origin of the incoming message, and the outbound interface operation defines details of the message, for example, the communication mode and the structure of the message. That means the key of a receiver determination is constructed in a way that it definitely identifies a specific message coming from a specific sender system. At runtime, when the message arrives at the Integration Server, exactly that receiver determination will be evaluated whose key fits to the incoming message. For this message, the receiver determination attributes are applied and it is evaluated which receivers this message has to be sent to and which routing conditions apply. For example, a receiver determination with the key ABC I PurchaseOrderRequest_Out.Create contains the configuration data for the Create message sent by the system ABC (using the interface operation PurchaseOrderRequest_Out). The key of interface determinations, sender agreements, and receiver agreements is in principle structured according to the same logic. Therefore, when you create a configuration object in the Integration Directory, you first have to specify the key, and the key can no longer be changed.
Note: You also have the option to use wildcard characters to define a configuration object generically, that means, for all values of a specific key attribute. Generic definition of configuration objects enables you to minimize the work effort required when creating and changing configuration data. We will not go into the details of this here and but refer to the corresponding chapter in the documentation: Defining Configuration Objects Generically/Specifically.
Incoming Message
2a
Integration Broker
1a
Inbound Processing
2b
2c
Figure 36: Defining the inbound processing of a message coming in a sender agreement 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).
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.
Incoming Message
2a
Integration Broker
1a
2b
2c
Figure 37: Routing of an incoming message to three receiver systems 2a-c The role of an interface determination is illustrated in the following figure:
Receiver Systems Sender System
2a
Incoming Message Integration Broker
2b
Inbound Interface Mapping
1a
2c
Configuration Objects in Integration Directory
Interface Determination
Figure 38: Routing of an incoming message to a particular inbound interface of a receiver system
You can also combine receiver and interface determinations with conditions. We explain this in detail under Routing.
Procedure
For each incoming message of a specific sender system (which is the key of the receiver determination), you define a receiver determination.
Note: You can either define the receiver determination for all operations of the outbound interface or for each operation separately (operation-dependently).
In the receiver determination (standard receiver determination to be explained first), you provide a list of receiver systems. For each receiver, you can then assign a routing condition. The following figure shows a receiver determination with two specified receiver systems SID_107 and SID _108; for the message to be sent to SID_108, a routing condition is defined:
Figure 39: Receiver determination An interface determination is defined for a sender, an incoming message, and a specific receiver system. You can understand this structure of the interface determination key when you realize that at runtime first the receiver systems are determined (in the receiver determination step) and afterwards, the corresponding inbound interfaces are calculated for each of the determined receivers (in the interface determination step). The following figure shows an interface determination for the SendPurchaseOrderRequest message sent from sender system SID_105 to receiver system SID_106:
You specify the inbound interface at receiver side in an interface determination by default and assign a mapping (chosen in field Operation Mapping) from the ES Repository. More information: Defining Receiver Determinations Defining Interface Determinations
Sender System
Receiver Systems
Incoming Message
2a
Integration Broker
1a
Outbound Processing
2b
2c
Figure 41: Defining the outbound processing of a message in a receiver agreement In contrast to the definition of a sender agreement, the definition of a receiver agreement is mandatory in all cases. You can understand this by keeping in mind that for an outbound message (sent from the Integration Server to a receiver system) you have to provide information on how the Integration Server can communicate with the receiver system in any case. For many inbound communication cases it is implicitly known how the Integration Server can be reached by the incoming message. More information: Defining Receiver Agreements
Keep in mind that local message processing on the Advanced Adapter Engine implies limited mediation capabilities compared to message processing using the Integration Server. The following adapter types cannot be used: IDoc XI HTTP RNIF CIDX WS Additionally, the Advanced Adapter Engine only supports elementary communication scenarios for which the message receiver is already defined at the time of configuration and where message processing only requires a simple mapping (multiplicity 1:1). Last but not least, when using the Advanced Adapter Engine, you can only set up scenarios where the message is only to be transferred within one Adapter Engine from a sender to a receiver adapter. Content-based routing on the Advanced Adapter Engine is only available as of SAP enhancement package 1 for SAP NetWeaver PI 7.1.
If you set up a scenario based on local message processing on the Advanced Adapter Engine, all considerations regarding inbound processing, routing, mapping, and outbound processing apply in exactly the same way as discussed in the preceding sections. However, in this case you can only define all these configuration settings in one single configuration object. In this object, the integrated configuration, you can then specify inbound processing, routing, mapping, and outbound processing on different tabs.
Note: As a prerequisite for configuring message exchange, you rely in the same way on communication components and channels as explained under Defining the Communication Components and Channels (Adapters).
Figure 42: Integrated configuration object in the Integration Directory The detailed procedure for configuring message exchange is described under: Executing Integrated Configuration.
However, assume that at configuration time you use a process components interaction model as configuration template and first assign the involved process components to communication components (systems). Then you have all the information you need to derive all sender system/receiver system relations that are relevant for the interaction between the process components. In other words, you know the object keys of all the relevant receiver determinations, interface determinations, and sender and receiver agreements as explained in the section Configuring Integration Server-based Communication. At this point, the model configurator comes into play: Based on assignments between process components and communication components (systems) for a specific model, the relevant receiver determinations, interface determinations, and sender and receiver agreements 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):
Design Time
Enterprise Services Repository ES Repository
Configuration Time
Integration Directory
Integration Server
2c 2b
Model Configurator
1a
Receiver Determination Party Communication Component Process Component Communication Components (Systems) Interaction Assignment Interface 1a SI_Out
Condition
Party
Communication Component 2c 2b
Figure 43: 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.
Note: In the preceding sections, we have shown how to configure communication manually, that is, by creating each configuration object separately. We did this to explain the concepts behind each object type. However, we recommend you use the model configurator wherever it applies. Using the model configurator, you will be able to perform the configuration in a fraction of the time you would need to create all the objects manually.
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) Classic process integration scenario
Note: The model configurator currently does not support scenarios including local message processing on the Advanced Adapter Engine. However, if you use the Advanced Adapter Engine, the configuration is required anyway due to the fact that you only need to define an integrated configuration object - this is not a serious restriction.
For more information, see Using the Process Model as a Configuration Template
Procedure
You start the model configurator from the Integration Directory menu (Tools Repository). Apply Model from ES
You have to decide which model type you would like to use as template and then select the model from ES Repository using input help. If you choose SAP Integration Scenario Model as type, all process components interaction models used by the integration scenario are taken into account. The following figure shows the model configurator opened for a process components interaction model:
Figure 44: Process components interaction model opened in the model configurator
The graphical interface of the model configurator shows the process components of a process components interaction model as vertical lanes.
Note: For technical reasons, the support of process components interaction models is only available as of SAP enhancement package 1 (SP3) for SAP NetWeaver PI 7.1.
Integration Server
Runtime Workbench
Monitoring Messages Monitoring Components and Adapters
SOA Manager
Configuring ABAP-based services and groups of services Monitoring ABAP-based services (locally on back-end) Publishing ABAP-based services into the Servcies Registry
HTTP port is 56000. SOA Manager is the administration tool for ABAP-based back-ends involved in integration scenarios. You can access the SOA Manager by using the transaction code SOAMANAGER in the back-end system. 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 (more information
Services Registry)
Note: You can also use to configure services or groups of services locally in the back-end system.
Procedure
To monitor messages from the Runtime Workbench, perform the following steps: 1. From the PI start page. Choose Runtime Workbench and log in with user and password. 2. Choose Message Monitoring. 3. Choose the component that mediates the messages (for example Integration Engine <name of SAP system of Integration Server>) choose Display. 4. Under Filter, specify filter criteria for the messages to be displayed (for example, an interval for the processing time) and choose Start. 5. Select a message and choose Message Versions. The different versions of the message during message processing are shown (as shown in the following figure):
Figure 46: Different versions of a message shown in a table 6. Select a message version and choose Details. Displaying the details of different message versions, you can see, for example, how a message is transformed through mapping (as shown in the next figure):
Figure 47: Message monitoring shows message payload before and after mapping
Therefore, each design object is created in the context of a software component version. In contrast to that, configuration objects have no versioning corresponding to that at design phase, because configuration objects are not shipped. For more information, see Organizing and Managing Content in ES Repository You can transfer objects within the same ES Repository to another software component version. For more information, see Transferring Design Objects
6.5 Troubleshooting
In case of any problems during the operation of SAP NetWeaver PI, consult the very detailed Process Integration Troubleshooting Guide (SAP NetWeaver PI 7.1) (SMP login required). In addition to that, check the SAP notes for the component BC-XI on a regular basis, in particular SAP Note 1060264 (SMP login required).
7 Mapping
Typically, a process component interacting with another process component in an integration scenario (in a mediated communication step) sends the business data in a different structure and format from that expected by the receiving process component. Therefore, the sent data structure has to be transformed or mapped to the structure the receiver can handle. From the integration brokers perspective, the incoming message (sent from a sender system) has to be transformed into an outbound message that is sent to a specific receiver.
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 (see Connectivity).
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).
Basically, you use a mapping program to define: How structure nodes (or elements) in the source structure are assigned to structure nodes in the target structure Usually, elements with the same semantic meaning are assigned to each other. This part of the mapping is usually referred to as structure mapping. How the source element is transformed into a value target element The following figure shows a simple mapping, where two fields in the source structure are merged into one field in the target structure (concatenation).
<PurchaseOrder no="1811"> <ShipToParty> <FirstName>Steve</FirstName> <LastName>Miller</LastName> </ShipToParty> </PurchaseOrder> <PurchaseOrder no="1811"> <ShipToParty> <FullName>Steve Miller</FullName> </ShipToParty> </PurchaseOrder>
Figure 48: Mapping merging two fields in the source structure into one field in the target structure More information: Mapping Messages to Each Other Using Mapping Objects SAP NetWeaver Process Integration supports the use of different kinds of mapping programs: Message mapping With a message mapping, you map one message type to another by using a graphical editor in the ES Repository. A mapping program is generated from the graphical design. Java program and XSLT (Java) program These mapping programs are developed in Java and XSLT (eXtensible Stylesheet Language Transformations) respectively, and imported into the ES Repository as an archive.
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. More information: XSLT Mapping More information: Java Mapping
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 customers site.
More information: Mapping Development with the ABAP Workbench There are several criteria that influence the decision about the most suitable mapping program type. These criteria include the programming skills of the mapping developers, as well as performance and software logistics. You can find recommendations and best practices for choosing the right mapping program type in the how-to guide SAP NetWeaver Process Integration Best Practices: Design. For usability reasons, the design of message mappings is a good choice, because you can use the graphical editor.
The following object types are available in the ES Repository for designing mappings: Object Type Operation mapping Description Assigns a mapping program for a pair of service interface operations. An operation mapping encapsulates the mapping program that has to be executed at runtime. Message mapping Mapping object created when you use the graphical mapping editor. A message mapping has to be referred to by an operation mapping. Encapsulates an externally developed Java or XSLT (Java) mapping program. An imported archive has to be referred to by an operation mapping. Contains parts of a message mapping that can be used as a copy template to create new message mappings. Mapping templates can refer to other mapping templates, thus enabling maximum reuse in mapping development. A value mapping transforms values of message elements. A value mapping group is a configuration object (Integration Directory) that contains mappings between different representations of one and the same object. Mapping programs (developed at design time) can refer to a value mapping table; however, since the actual values in many scenarios are not known at design time, the value mapping table content is maintained in the Integration Directory (see also Value Mappings). The following figure shows the most important object references between mapping objects (also including the object references to interface objects):
Imported archive
Mapping template
Interface Objects
Operation Mapping Operation
Imported Object
Data Type
Figure 49: Mapping objects and possible object references (also including those to interface objects)
Outbound Interface
Operation
Operation Mapping
Operation
Inbound Interface
Figure 50: Assigning service interface operations with an operation mapping For each operation mapping, you assign one or multiple mapping programs. 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. The following figure shows the operation mapping editor and the dropdown list box where you determine which type of mapping program to assign to the operation mapping:
Figure 51: Operation mapping editor An operation mapping encapsulates the used mapping program (either defined graphically by a message mapping or contained in an imported archive). At configuration time, you have to select an operation mapping from the ES Repository for a specific communication step. You do this in an interface determination (for integration using the Integration Server) or in the integrated configuration object (see Specifying Inbound Interfaces and Mappings; for local message processing using the Advanced Adapter Engine).
The graphical mapping editor is composed of three main areas, as shown in the next figure:
Source Structure
Target Structure
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.
Note: In the example illustrated in the figure above, the two source fields Surname and FirstName are merged into the field PassengerName in the target structure using the standard (text conversion) Concat function.
User-defined functions
You can define your own functions if standard functions do not fulfill your requirements. More information: Data Flow Editor
7.5.1 Multi-Mappings
In the preceding sections, we only considered mappings where a single source message is transformed into a single target message. This kind of mapping is also referred to as a 1:1 transformation. A multi-mapping allows you to override this restriction. In particular, a multi-mapping gives you the following options: Designing a 1:n transformation for a message split Designing 1:n, n:1, and n:m transformations to be used in integration processes (cross-component Business Process Management)
More information: Developing Multi-Mappings for Integration Processes ES Repository: Create an integration process and enter the operation mapping in a transformation step in an integration process More information: Transformation Step For more information on integration processes, read section Integration Processes (ccBPM).
Procedure
To define a multi-mapping using a message mapping, perform the following steps: 1. Create a message mapping, select the source and target message (on the Definition tab). 2. On the Signature tab, set the occurrence for each message type (for example, 1... unbounded). 3. On the Definition tab, continue designing the message mapping using the graphical mapping editor explained above.
There are several options for performing value mappings: Using standard function FixValues Using standard function Value mapping
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, as shown in the screenshot below:
Figure 53: Defining a value mapping at design time in the mapping editor
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.
More information: Value Mapping (Integration Directory) 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.
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. 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).
Note: 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 (see also Mapping Lookups).
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
2. At configuration time (in the Integration Directory), you have to perform the following steps: a) Configure the corresponding adapter in a (receiver) communication channel b) 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: Adding Lookups to Mapping Programs
8.1 Introduction
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.
An integration process is designed as a separate design 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 contrast to the top-down procedure described under Designing Integration Content, when using integration processes 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.
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. 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. More information: Defining Process Integration Scenarios More information: Defining and Managing Integration Processes
For messages (to be used in receive or send steps) described by corresponding abstract service interfaces. o Simple XSD Data Type For process control elements, such as counters. o Receiver Used in a receiver determination step (see below). The actual list of receivers is determined at runtime based on a receiver determination in the Integration Directory. You need appropriate container elements to specify the corresponding process steps. Configurable parameters You can define parameters whose values you can specify later, at configuration time. This gives you greater flexibility in handling the integration process. Process steps You construct the integration process out of different process steps. You can use different step types. For example, you use a send step to send a message to another integration process or to a business system. When specifying a process step, you choose the corresponding container elements. For example, when you define a receiver determination step, you need a container element of the type Receiver to assign to the step. For detailed information, see Step Types. However, note the following: o Transformation steps are used to transform messages. Therefore, these steps refer to an operation mapping. You can use 1:n multi-mappings to split a message into multiple messages, n:1 multi-mappings to bundle multiple messages into a single message, or 1:1 mappings for message transformations (see also Multi-Mappings). In receive steps and send steps, you refer to the container elements for the corresponding abstract service interfaces. In a receiver determination step, you refer to the corresponding Receiver container element. In switch steps, fork steps, and loop steps, you can define conditions. User decision steps enable users to make decisions that influence the processing of the integration process. The intended user receives a dialog work item in the workflow inbox at runtime.
o o o o
Message correlations You use a correlation to join messages that belong together to the same process instance. In a correlation you define the message elements (for example, a customer number) by which messages are to be correlated. Exception Handling Deadline Monitoring Defining Sync/Async Communication You can define a sync/async bridge to enable the communication between a synchronously calling business system and an asynchronously called business system. You define these elements using the graphical process editor. The following figure shows a screenshot of the process editor:
For the integration process (to be specified later in a separate editor), 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.
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. The following figure shows how an integration process is embedded into a process integration scenario:
Process Integration Scenario
Application Component Application Component Application Component
Integration Process
Action
Models
Process Integration Scenario
Integration Process
Interface Objects
Service Interface (Operation)
Mapping Objects
Operation Mapping
Message Type
The subsequent configuration of the message exchange including the integration process component is then performed using basically the same procedure as already described under Configuring Integration Content and Configuring Communication Using the Integration Server.
Note: You cannot use integration processes when you configure local message processing on the Advanced Adapter Engine.
Since you need to assign the integration process to a process integration scenario, we recommend that you use the process integration scenario as a configuration template (model configurator).
Describes simple example integration processes that are also part of SAP standard shipment (delivered in software component SAP BASIS).
Customer Experience Energie Baden-Wrttemberg AG (EnBW) and Arla Foods are examples of customers that extensively use integration processes with SAP NetWeaver PI 7.1. As additional examples: A supplier for the automotive industry uses an integration process to collect messages sent from different systems (using a receive step). The messages are collected until a particular number is reached; the messages are then merged into a new message, which is sent to a receiver. An online retail customer uses an integration process to receive web orders and to transform then into IDocs. In this customer scenario, a multi-mapping is also used to split the orders into individual IDocs. For these and more examples, see Customer Scenarios with SAP NetWeaver PI 7.1.
9 Routing
This section provides more insight into the concept of routing and introduces advanced routing concepts. The basics of routing have been described under Configuring Integration Content.
Lufthansa
<AirlineID>LH</>
American Airlines
Receiver Determination
Figure 57: Basic example for content-based routing (from the PI Demo Examples) The example illustrated in the figure above is described in detail for the SAP NetWeaver PI Demo Examples. In the example, a flight availability check request is sent from a travel agency to an airline. To ensure that the request is forwarded to the correct airline system, the routing condition is formulated as airline-dependent. The airline ID is contained 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.
To configure this behavior, you add a routing condition to a receiver determination. Generally, a routing condition 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. However, using the condition editor (see below), 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.
Procedure
To define a routing condition, in the receiver determination editor, call the input help for the Condition field for the corresponding receiver. The condition editor opens as shown in the following figure:
Figure 58: Condition editor for a configured receiver in a receiver determination 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. To specify the left operand (the payload element), you can use an expression editor as shown in the following figure:
Figure 59: Expression editor to specify a payload element You can specify the payload element by choosing either an XPath expression or a context object. With the XPath 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). Using a context object, you can select from the context objects that have 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.
A routing condition for a specific receiver or a set of receivers is called a routing rule. When you define a routing rule within a specific receiver determination, this condition is only valid for the given key (that means, for the specific incoming message of the given sender system). This kind of routing rule cannot be reused for other incoming messages or other sender systems. Therefore, it is called a local rule (as also shown in the screenshot above). You can define a local routing rule by first defining a reusable receiver rule independently of any combination of incoming message and sender system and, in a second step, assigning this receiver rule to a specific receiver determination. You define a receiver rule like a local routing rule as explained above, as shown in the figure:
To clarify the options, we briefly explain the basic scenarios that you can configure with an interface determination: Interface split
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. The runtime behavior is illustrated in the figure below:
Receiver Inbound-Interface 1 Integration Broker Inbound-Interface 2
Sender
Inbound-Interface 3
Sender
Inbound-Interface 3
Figure 62: Message split based on a 1:n multi-mapping 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 multi-mapping 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.
Sender
1:1 mapping a
1:1 mapping b
Split message 2
1:1 mapping c
Split message 3
Receiver B
10 B2B Integration
In the preceding chapters (in particular Designing Integration Content and Configuring Integration Content) we explained how to set up the basic communication with SAP NetWeaver PI. In particular, when we explained the configuration concepts, we assumed that all the details of a system landscape are known to the expert performing the configuration tasks. 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. In this section, we explain how business-to-business (B2B) scenarios can be managed with SAP NetWeaver 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: SAP Press Book: B2B Integration Using SAP NetWeaver PI
B2B Communication
Figure 64: Integration scenario model including a B2B interaction with the process component of an external business partner (grey) The process components interaction model showing the interaction with the external process component could look like this:
Figure 65: Process components interaction model showing a B2B interaction with the process component of an external business partner SAP provides predefined integration content where B2B communication is anticipated in integration scenarios or process components interaction models like the one shown above.
?
Firewall
Integration Broker
Process Component
Systems
Figure 66: Modified version of figure 3, including B2B communication 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, 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).
10.2.1
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. 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.
10.2.2
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.
10.2.3
As we have seen in the section Configuring Integration Content, 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 in a receiver agreement (in other words: when you specify the outbound processing). The following figure illustrates how header mapping works:
Business Partner 1 Firewall External Business Partner 2
Sender System
Integration Broker
ABC
Outbound Processing
Header Mapping
Figure 67: Masking internal system names in an outbound message targeted at an external business partner
ABC
Receiver Determination
Figure 68: 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
10.2.5
As far as you have already designed a process model in the ES Repository, you can also use the model configurator to automate the configuration. In this case, those entities which have been designed as B2B-specific will also be handled accordingly by the model configurator. For example, for a process component that is labeled as process component at business partner in a process components interaction model, you can only assign a communication party (rather than a communication component based on a business system). More information about the B2B-specific configuration concepts: Configuring B2B Processes
10.2.6
You can restrict the access of sender communication components of type business component or business system to particular service users. For more information, see Restricting Access to Runtime Environment to Specific (Service) Users.
10.3.1
SAP provides industry-specific business packages to support the B2B integration of industry standards, such as RosettaNet for the high tech industry.
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 electronic 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).
10.3.2
SAP NetWeaver 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 NetWeaver 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.
Customer Experience SAP NetWeaver PI is widely used to integrate existing EDI landscapes. For example, a large consumer products supplier with 45,000 employees uses SAP NetWeaver PI in conjunction with SEEBURGER EDI adapters to integrate 4 different EDI system solutions in the enterprise, covering 2.5 million sales EDI transactions per year. Another example is Danfoss, an international leading manufacturer of valves and fluid handling components for heating, ventilating, and air conditioning, with about 21,200 employees worldwide (see Danfoss customer success story).
10.3.3
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 SAP 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. More information: SAP Business Packages
10.3.4
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. Select the Downloads tab. In the navigation area, choose Download Support Packages and Patches Support Packages and Patches - Entry by Application Group. On the Support Packages and Patches page, choose SAP Content, and on the following page 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 SAP standard interfaces to CIDX interfaces. 2. Define a new software component version in the System Landscape Directory for your development 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 classical process integration scenarios.
5. Configure the integration We do not recommend using the model configurator to configure the integration. As the industryspecific content is designed based on process integration scenarios, make sure that you select the right process integration scenario for the industry-specific interface from the ES Repository. Consider the B2B-specific configuration concepts as described in this chapter and under Configuring B2B Processes. For more information, read the configuration guide for the business package. You can find the guide in SAP Software Distribution Center at http://service.sap.com/swdc on the info page for the corresponding download package.
Customer Experience Advanced Micro Devices, Inc. (AMD) is an American multinational semiconductor company that uses SAP NetWeaver PI 7.1 and benefits from out-of-the-box process templates based on SAP business package for RosettaNet. More information: Customer Scenarios with SAP NetWeaver PI 7.1
11 Security
In the preceding chapters, we focused on the concepts and tasks relevant to setting up the basic communication between the involved communication components. However, secure communication is a must for most productive scenarios, particularly in B2B scenarios. In this chapter, we provide an overview of the basic security settings that are supported with SAP NetWeaver PI. With SAP NetWeaver PI, you can apply security on the following levels: Ensuring a secure and reliable setup of the technical SAP NetWeaver PI landscape Ensuring a secure and reliable messaging when executing integration scenarios based on an SAP NetWeaver PI installation As of SAP NetWeaver PI 7.1, the support of the standard Web Services Reliable Messaging (WS-RM) is considerably enhanced. We focus on this in the following chapter, but this chapter summarizes the most important security-related aspects. More information: SAP NetWeaver Process Integration Security Guide
The configuration of the technical components as well as the communication between the components has to comply with security standards. These technical components are, for example, messaging components like the Integration Server or the Advanced Adapter Engine, or tools for design and configuration like the ES Repository or the Integration Directory.
Note: You can find more information on the technical components of SAP NetWeaver PI on SAP Service Marketplace at http://service.sap.com/instguidesnwpi71 Installation Planning Master Guide - SAP NetWeaver PI 7.1/Technical Infrastructure Guide - SAP NetWeaver PI 7.1.
Depending on the transport security, you can apply certain authentication mechanisms on the transport level. These are authentication mechanisms such as the use of users/passwords, client certificates, or SAP assertion tickets.
Note: Keep in mind that we mainly deal with system-to-system interactions. Therefore, users in this context are typically service users for logging on to a system.
You configure these settings in the communication channel for the corresponding adapter. An additional option for increasing communication security is to build up several network zones by introducing firewalls and application gateways. More information: Network and Communication Security Message-level security Security on this level covers all security aspects with regard to protecting the content of a message against malicious use. For example, you can digitally sign or encrypt documents exchanged between business partners. SAP NetWeaver PI supports message-level security for the XI message protocol, for the RosettaNet protocol, for the CIDX protocol, for the SOAP adapter, for the Mail adapter, and for connectivity with WSRM-enabled systems (based on Web Services Reliable Messaging). To configure message-level security settings, you have to perform the following tasks: Security configuration in the connected back-end systems These settings include, for example, the setup of certificate stores and trust relationships between systems (using AS Java keystore or Trust Manager of AS ABAP). Security configuration for the communication step in the Integration Directory These settings are made in the communication channel. More information: Message-Level Security You can find detailed information on the supported security settings for the various adapter types in the description of the adapter under Adapters. It is not possible to provide general recommendations as to which security settings are the best. When you configure scenarios using interactions with WSRM-enabled systems (see Web Services Reliable Messaging), the Recommended WS Security Scenarios serve as a good starting point for planning your security strategy. The actual configuration procedure depends on the protocol used and the applied security scenario.
SAML uses WS Security and is built upon a number of existing standards: Extensible Markup Language (XML) Most SAML exchanges are expressed in a standardized dialect of XML, which is the root of the name SAML (Security Assertion Markup Language). XML Schema SAML assertions and protocols are specified (in part) using XML Schema. XML Signature Both SAML 1.1 and SAML 2.0 use digital signatures (based on the XML Signature standard) for authentication and message integrity. XML Encryption Using XML Encryption, SAML 2.0 provides elements for encrypted name identifiers, encrypted attributes, and encrypted assertions (SAML 1.1 does not have encryption capabilities). Hypertext Transfer Protocol (HTTP) SAML relies heavily on HTTP as its communications protocol. SOAP SAML specifies the use of SOAP, specifically SOAP 1.1. More information: Security Guide Web Services As of SAP NetWeaver 7.1, the use of SAML tokens is possible.
11.3.1
One use case for Web services security standards is principal propagation based on Security Assertion Markup Language (SAML). You can use principal propagation to pass the security credentials of a user from a sender to a receiver application (even spanning several intermediate components). This security setting is supported for interactions with WSRM-enabled systems. For end-to-end descriptions of the configuration steps, see the following sources: How To Configure SAML Authentication for SAP NetWeaver Process Integration 7.1 (how-to guide) Principal Propagation with SAP NetWeaver Process Integration 7.1 (SCN blog)
Note: For interactions based on the XI adapter, the RFC adapter, and the SOAP adapter, you can configure principal propagation based on SAP assertion ticket, an SAP-specific logon ticket. More information: Configuring Principal Propagation (Authentication Assertion Ticket)
For an overview of Web service security settings and procedures, see the guide Configuring Web Service Scenarios.
12 Services Registry
As explained in the chapter Designing Integration Content, a service interface is an implementationindependent description of a function or a service. In this sense, a service interface in the ES Repository (or its WSDL representation) represents only the metadata of a service that is already known at design time. However, to call, invocate, or consume a service, information about the location of the service is necessary, for example, the address and host name of the server the service is implemented on. The Services Registry is a central registry in a landscape that contains service metadata enriched with the location information.
Note: The Services Registry is available together with SAP NetWeaver PI 7.1 and SAP NetWeaver Composition Environment 7.1.
In this chapter, we introduce the Services Registry, its basic concepts, and use cases. More information: Publishing Service Definitions Using the Services Registry
12.1 Introduction
An important aspect of service-oriented architecture (SOA) is the facilitation of service consumption, either where the service is invocated by a mediated communication step, or directly by a consumer application (point-to-point communication). To make the invocation of services more convenient, the Services Registry was introduced. It is a UDDI 3.0-conformant registry containing information about the services provided in a landscape, with references to the relevant metadata (WSDL) and to the callable service endpoints. A service endpoint contains a single configuration for a service. An endpoint contains the server address (location of the service) and additional security settings, for example, authentication methods to call the service. Multiple endpoints can be defined for one service, each endpoint representing a different runtime behavior. The content of this chapter is structured according to the following basic use cases of the Services Registry: Service providers can publish their service information to the Services Registry and thus make the service accessible to any consumer.
Service consumers can browse the Services Registry for the service they need and discover and consume the service.
The following figure illustrates how these different kinds of service publications relate to each other:
ES Repository
Inbound Service Interface
Publish (1)
Generate (Proxy)
Consumer
Consumer tbd Application
Service Implementation
Service Endpoint
12.2.1
In this option, the published service definition contains the description of the inbound service interface without any endpoint information (a modeled service). To call the service, the endpoint information has to be added later on. More information: Publishing Service Interfaces
12.2.2 Publishing Sender Agreements or Integrated Configurations from the Integration Directory
If you have configured mediated communication, you can regard the sender application as a service consumer that calls a service provider (the receiver application) using the integration broker that is interconnected between consumer and provider. The integration broker can either be the Integration Server or the local Advanced Adapter Engine. However, from the consumers perspective, the integration broker acts as an intermediate service provider, and the configured inbound message processing implicitly contains the service endpoint information for calling the integration broker. To make it easy for any consumer to call the integration broker (based on a specific configuration), you have the option to publish the configured inbound processing into the Services Registry. Depending on whether you have configured Integration Server-based messaging or local messaging using the Advanced Adapter Engine), you have the option to publish either of the following Integration Directory objects: Sender agreements (with WS channels or SOAP channels assigned to them) for Integration Server-based communication Integrated configurations (with SOAP channels assigned to them) - for local message processing based on the Advanced Adapter Engine
Note: The system information for published sender agreements or integrated configurations contains the addition _XPI.
Discover
Receiver System
Figure 70: Publishing a sender agreement/integrated configuration into the Services Registry More information: Publishing Sender Agreements into the Services Registry Publishing Integrated Configurations to the Services Registry
12.2.3
You can publish a configured service implemented on a back-end provider system directly into the Services Registry. Using this option, you facilitate the consumption of the provider service for any consumers. More information: Publishing Services (ABAP) Publishing to the Services Registry (Java)
12.3.1 12.3.2
Service Consumption with the Services Registry Browsing and Searching for Services
Service consumers can search in the Services Registry for services or service groups. More information:
Searching and Browsing Service Definitions Searching and Browsing Service Groups
12.3.3
Classifying Services
To structure the data accessible in the Services Registry, service definitions can be categorized based on a classification system. SAP provides a set of classification systems which allow you to group services, for example, according to ES Repository metadata, like software component, process component, or service interface. More information: Structuring of Services in the Registry Classifying Services Managing Classification Systems How-to guide: Services Registry: Classification Services
In addition to this, you can also configure the direct (point-to-point) connection between WSRM-enabled systems. You can configure a communication channel with adapter type WS for this purpose in the Integration Directory. Interface design In the ES Repository, you can define certain interface patterns for service interfaces that help to implement WSRM-enabled applications. These are the interface patterns Stateless and TU&C/C.
Note: For example, a TU&C/C scenario (Tentative Update and Compensate or Confirm) 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 (more information: Interface Patterns).
In this chapter, we provide an overview of the configuration options for connecting to WSRM-enabled systems. Basically, you have the following options: Connecting the Integration Server to Web service consumers and providers Setting up direct communication between Web service consumers and providers
Note: If it is necessary to distinguish between the roles of a service provider and a service consumer, in the context of WSRM-enabled systems we also speak of Web service consumer (WS consumer) and Web service provider (WS provider).
The end-to-end configuration process for scenarios includes both tasks in the Integration Directory and tasks in the connected back-end systems, and depends strongly on the kind of back-end system. You can find detailed information on the configuration of scenarios including Web service consumers and providers for different combinations of back-end system types in the following guide: Configuring Web Service Scenarios.
For systems based on AS Java, you generally use the SAP NetWeaver Administrator. The different procedures for different kinds of back-end systems are described under Configuring Web Service Scenarios. If the WS 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). The configuration settings are propagated into the back-end systems by a caching mechanism, therefore making local configuration unnecessary. More information: Configuring Direct Communication
14 Appendix
14.1 SAP NetWeaver PI Architecture and Tools 14.1.1 Technical Components of SAP NetWeaver PI
The following figure provides an overview of the technical components of SAP NetWeaver PI:
Design Time
Configuration Time
Runtime
ES Builder
Integration Builder
SAP Application
ES Repository
Integration Directory
Business Partner
Figure 71: Technical components of SAP NetWeaver PI More information: Technical System Landscape
3. Publishing service endpoints into the Services Registry The subsequent step, the service discovery, is not covered in this handbook. For more information, see: Service Enabling with SAP NetWeaver Process Integration 7.1
14.3.1
Processing messages locally using the Advanced Adapter Engine can increase performance considerably, since the Integration Server is bypassed. However, other decision criteria must be taken into account, since the mediation capabilities of local message processing are not congruent with those offered by the Integration Server. More information on how to configure such scenarios: Configuring Communication Using the Advanced Adapter Engine Section Configuring Local Message Processing on the Advanced Adapter Engine
14.3.2
Message Packaging
You use message packaging to group together asynchronous messages in packages and then process each message package in one logical unit of work. More information: Message Packaging SAP Note 1037176
Customer Experience Customers benefit from performance enhancements for high volume scenarios when upgrading to SAP NetWeaver PI 7.1. For example, Swiss Post , a Switzerland-based logistics company that deals with postal, logistics, and transportation services (around 58,000 employees) uses SAP NetWeaver PI 7.1 to implement business-critical high-volume processes. These are some performance numbers from Swiss Post: about 1.2 million messages are processed overnight; response times of 200ms for an end-to-end B2B interaction have been measured. Energie Baden-Wrttemberg AG (EnBW), the third-largest energy company in Germany, benefits from performance improvements by using local processing on the Advanced Adapter Engine and the message packaging functionality. Another SAP NetWeaver PI 7.1 customer benefitting from the performance improvements in the new release is Swisscom IT Services AG. More information: Customer Scenarios with SAP NetWeaver PI 7.1 High Volume Messaging with SAP NetWeaver PI - Real Life Customer Examples
14.4 Additional Connectivity Options 14.4.1 Using SAP Conversion Agent by Informatica
An additional connectivity option is provided by SAP Conversion Agent by Informatica. This tool, developed in partnership with Informatica, enables efficient development of data transformations for incoming and outgoing unstructured and semi-structured data and messages into XML. More information: SAP Conversion Agent by Informatica
14.5 Glossary
adapter Defines the technical transformation of a message necessary to connect a system or another kind of communication partner to the integration broker. A sender adapter transforms the message from the format a sender system uses into the message format of the integration broker. A receiver adapter transforms the message from the message format of the integration broker into the format a receiver system can handle. Adapters are configured in the Integration Directory using a communication channel. aggregated data type Comprises other aggregated data types or core data types or both. asynchronous communication Communication mode where a request message is sent out but no response is expected. business-to-business (B2B) communication Communication with an external business partner. business system Entity in the System Landscape Directory that represents a logical system. Each business system must be assigned a technical system. category Attribute of a service interface that determines whether the service interface is an outbound, an inbound, or an abstract service interface. communication channel Configuration object that is used to configure an adapter. communication party Represents a company unit that is to be involved and addressed in message exchange. communication component Represents an entity that can be used to address a sender or receiver of messages (typically, a system). communication channel template Contains the preconfiguration of a communication channel that can be specified at design time in the ES Repository. communication mode Attribute of a service interface operation that determines whether the communication has to be performed synchronously or asynchronously. configuration object Object created and maintained at configuration time in the Integration Directory. configuration time Phase of an integration project during which the integration content that has been created at design time is configured to run in a specific system landscape. connectivity Capability to connect systems or business partners based on different protocols or standards to the integration broker. content-based routing
Routing that depends on the content of a message. context object Design object that can be used as an abbreviated expression for an XPath expression to address a specific payload element. core data type XSD-based type that does not yet have any business-specific semantics. data type Design object that describes the structure of data. Data types contain elements and properties for the type definition. Data types are saved as XML Schema Definition. deployment unit Groups all process components that need to be installed together on one system. design object Object created and maintained at design time in the ES Repository. design time Phase of an integration project during which those parts of a business process are specified that are independent of any implementation- or system-landscape-relevant technical details. The content created and maintained at design time is referred to as integration content. direct communication Communication type where systems interact directly with each other without an integration broker interconnected between them. This kind of communication is also referred to as point-to-point communication. direct connection Configuration object used to configure direct communication between a sender and receiver system. enterprise service Term used to emphasize the fact that a service has been designed according to SAPs SOA design principles. Technically, this term summarizes interface objects. Enterprise Services Repository (ES Repository) Central repository within SAP NetWeaver for design objects for service development and their metadata. Enterprise Services Workplace (ES Workplace) The ES Workplace is the central place to view consolidated information about all available enterprise services delivered by SAP. You can access the ES Workplace in SAP Community Network at https://www.sdn.sap.com/irj/sdn/explore-es. external definition Object used to import an existing data structure description into the ES Repository. fault message type Message type used to describe the expected message if an error occurs. global data type (GDT) Data type that describes a basic business entity such as an address. GDTs are the basis for application-specific data types SAP-wide and can be used by customers to build their own data types. imported object XML definitions of existing functions (RFCs or IDocs) that can be imported into the ES Repository.
imported archive Encapsulates an externally developed Java or XSLT (Java) mapping program. An imported archive has to be referred to by an operation mapping. inbound processing Defines how a message should be transformed technically to the XML message format of the integration broker. inbound service interface Service interface that receives a message. integration broker Term used to indicate the instance that processes messages in mediated scenarios. The integration broker can either be the Integration Engine (as part of the Integration Server) or the local Advanced Adapter Engine. integration content Those parts of the Enterprise Services Repository content (ESR content) that are used for the design of the integration-specific aspects of business processes. integration engine Runtime environment based on AS ABAP that has the task of receiving and forwarding messages on the Integration Server or in SAP Business systems. integration process Executable cross-system process for processing messages. In an integration process you define all the process steps to be executed and the parameters relevant for controlling the process. An integration process is a design object in the ES Repository. interface determination Configuration object used to specify the inbound interface that receives the message for a specific receiver system as well as to choose the mapping that has to be applied. interface pattern Describes the type of communication that is to be executed on the message when the interface is used. integrated configuration Configuration object for scenarios where messages are processed locally using the Advanced Adapter Engine. integration content As the design-time-relevant aspects are specified and stored in the Enterprise Services Repository (ES Repository), the corresponding design-time entities are referred to as integration content or (denoting the tool) ESR content. Therefore, we also speak of integration content predefined by SAP in this context. integration scenario (integration scenario model) Model type in the ES Repository that shows the graphical representation of the deployment units and process components involved in a cross-component business process, as well as the connections between the process components. mapping template Design object that contains parts of a message mapping that can be used as a copy template to create new message mappings. Mapping templates can reference other mapping templates, thus enabling maximum reuse in mapping development.
mediated communication Communication between systems or other kinds of communication partners where a central instance is interconnected between the communication partners and acts as a communication hub or data hub. The data hub is referred to as integration broker. message mapping Mapping object created when you use the graphical mapping editor. A message mapping has to be referred to by an operation mapping. message type Defines the root element of a message. You use a message to exchange data between systems. A message type has exactly one data type that defines the structure of this data. object key Set of attributes that is necessary to identify an object (ES Repository and Integration Directory). operation Represents the smallest, separately-callable function, described by a set of data types used as input, output, and fault parameters serving as a signature. Operations are grouped by a service interface. operation mapping Mapping object that assigns a mapping program for a pair of service interface operations. An operation mapping encapsulates the mapping program that has to be executed at runtime. At configuration time, you only have to choose the required operation mapping (in an interface determination or an integrated configuration); the assigned mapping program will then automatically be evaluated at runtime. outbound processing Defines how a message should be transformed technically from the message format of the integration broker into the format a receiver can process. outbound service interface Service interface by which a message is sent out to another process component. process component Part of the value chain of a business application or a business process. Assuming the business application spans different departments of one company, a process component typically represents one part of the process that is performed in one department. process components interaction model Model type in the ES Repository that shows in detail the interaction between two process components. process component at business partner (external process component) Process component that is connected by B2B communication with a process component in your own business and in this way enhances an intra-enterprise value chain. process components interaction model Shows in detail the interaction between two process components. You can consider a process components interaction model as a detailed view of one single connection in an integration scenario model. This model type is available as of SAP NetWeaver PI 7.1. process integration scenario Model type in the ES Repository that describes a cross-component process that is based on the exchange of messages. Process integration scenarios were already available in the earlier releases of SAP NetWeaver PI prior to SAP NetWeaver PI 7.1.
product Represents a unit that is delivered, visible to the customer, and is installable and renewable. In an SAP environment, a product corresponds to an SAP technical component. principal propagation Passing the security credentials of a user from a sender to a receiver proxy Platform-specific, executable service derived from a service description in the ES Repository. receiver determination Configuration object that defines which receiver systems an incoming message has to be forwarded to by the integration broker. receiver rule Configuration object used to specify the conditions under which messages are forwarded to particular receivers. You can reuse a receiver rule in different receiver determinations. routing Defines which receiver systems and receiver interfaces a message is forwarded to by the integration broker. Routing is configured in the Integration Directory using receiver determinations and interface determinations or integrated configurations. SAP NetWeaver Exchange Infrastructure Name of SAP NetWeaver Process Integration in releases including and prior to SAP NetWeaver 2004. SAP NetWeaver Process Integration (SAP NetWeaver PI) SAPs solution for the integration of applications, business partners, and services in complex and heterogeneous system landscapes. SAP NetWeaver PI provides an integrated tool infrastructure to model and design the integration-relevant aspects of business processes, to specify the integrationrelevant details for a concrete system landscape, as well as to execute and monitor the business processes executed at runtime. In former releases, SAP NetWeaver PI also is referred to as usage type Process Integration of SAP NetWeaver 7.0, respectively SAP NetWeaver Exchange Infrastructure 3.0. service Coherent set of callable operations clearly described by one service interface, behavioral information, and endpoint information (such as the address where the service is provided). An operation is described by its input, output, and fault parameters, which in turn are defined by data types. service endpoint Contains a configuration for a service, including the service location and security settings. service interface Design object representing a set of functions that is either provided by an application (inbound service interface) or used by an application (outbound service interface). software component Represents the reusable modules of a product. You can upgrade them or install patches on them. software component version Version of a software component. synchronous communication Communication mode where a response is expected for each call or request message sent out.
target field mapping Describes how one or more source fields are mapped to a target field. A message mapping is constructed out of individual target field mappings. technical system Entity in the System Landscape Directory that contains the technical details of a system (for example, the server address). top-down approach Model-based design of integration content. value mapping Transforms values of message elements. value mapping group Configuration object in the Integration Directory that contains mappings between different representations of one and the same object. Mapping programs can refer to a value mapping group. Web Services Description Language (WSDL) XML-based language for describing Web services and how to access them. Web Services Reliable Messaging (WS-RM) This WS-ReliableMessaging specification describes a protocol that allows messages to be transferred reliably between nodes implementing this protocol in the presence of software component, system, or network failures. (OASIS definition)
Demo Examples Exercise Cancel Flight Booking For more demo examples, see SAP Community Network Integration Use Cases and Examples. Getting Started With Service Bus-Based
Additional Sources
How SAP NetWeaver PI 7.1 is Used in Customer Landscapes SAP NetWeaver PI 7.1 Overview SAP NetWeaver PI 7.1 - Detailed Overview SAP Enhancement Package 1 for SAP NetWeaver PI 7.1 Enterprise Services Workplace Enterprise Services Wiki
Copyright
Copyright 2009 SAP AG. 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 AG. The information contained herein may be changed without prior notice. Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors. Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation. IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries, eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+, POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex, MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation. Linux is the registered trademark of Linus Torvalds in the U.S. and other countries. Adobe, the Adobe logo, Acrobat, PostScript, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Oracle is a registered trademark of Oracle Corporation. UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc. HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C, World Wide Web Consortium, Massachusetts Institute of Technology. Java is a registered trademark of Sun Microsystems, Inc. JavaScript is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape. SAP, R/3, SAP NetWeaver, Duet, PartnerEdge, ByDesign, SAP Business ByDesign, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and other countries. Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects S.A. in the United States and in other countries. Business Objects is an SAP company. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary. These materials are subject to change without notice. These materials are provided by SAP AG 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.