15
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com © 2010 SAP AG 1 Process Monitoring with SAP NetWeaver CE 7.20/7.30 Applies to: SAP NetWeaver CE 7.20/7.30. For more information, visit the Business Process Monitoring homepage . Summary This document considers the problem of monitoring a business process. A typical business process is complex and involves multiple parties. These parties interact with each other giving rise to various events. Many use cases require comprehensive observation of key performance indicators (KPIs) for the process measured in specific states of its execution. This article explains how to provide continuous monitoring of the business events in runtime across all instances of a process. It is based on an application developed by the SAP NetWeaver CE Integration Project team during the Summer-Autumn of 2010. For the attached files click here. Disclaimer: The solution provided here is not guaranteed to work well with large scale scenarios. It was tested only with small to average size processes with less than 10 simultaneous monitoring users and less than 100 incoming business events per second. Authors: Ilia Pchelarov and Hristo Borisov Company: SAP Labs, Bulgaria Created on: 25 November 2010 Authors Bio Ilia Pchelarov works for SAP Labs Bulgaria since December 2005. Since then he has been involved with development in the field of Business Process Management, starting with Guided Procedures, later with the first release of SAP NetWeaver BPM solution also known under the SAP internal project name “Galaxy. In 2009 he joined the Integration Project team where he is business process expert: He designs and implements customer scenarios for SAP NetWeaver CE platform integration. Hristo Borisov has been working for SAP Labs Bulgaria since 2008. Since that time he has been part of the Integration Project team where he is involved in developing various customer scenarios, including SAP NetWeaver CE/BPM integration with backend systems such as SAP ERP and SAP NetWeaver PI.

Process Monitoring with NetWeaver 7.20pdf

Embed Size (px)

Citation preview

Page 1: Process Monitoring with NetWeaver 7.20pdf

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 1

Process Monitoring with SAP

NetWeaver CE 7.20/7.30

Applies to:

SAP NetWeaver CE 7.20/7.30. For more information, visit the Business Process Monitoring homepage.

Summary

This document considers the problem of monitoring a business process. A typical business process is complex and involves multiple parties. These parties interact with each other giving rise to various events. Many use cases require comprehensive observation of key performance indicators (KPIs) for the process measured in specific states of its execution. This article explains how to provide continuous monitoring of the business events in runtime across all instances of a process. It is based on an application developed by the SAP NetWeaver CE Integration Project team during the Summer-Autumn of 2010. For the attached files click here.

Disclaimer: The solution provided here is not guaranteed to work well with large scale scenarios. It was tested only with

small to average size processes with less than 10 simultaneous monitoring users and less than 100 incoming

business events per second.

Authors: Ilia Pchelarov and Hristo Borisov

Company: SAP Labs, Bulgaria

Created on: 25 November 2010

Authors Bio

Ilia Pchelarov works for SAP Labs Bulgaria since December 2005. Since then he has been involved with development in the field of Business Process Management, starting with Guided Procedures, later with the first release of SAP NetWeaver BPM solution also known under the SAP internal project name “Galaxy”. In 2009 he joined the Integration Project team where he is business process expert: He designs and implements customer scenarios for SAP NetWeaver CE platform integration.

Hristo Borisov has been working for SAP Labs Bulgaria since 2008. Since that time he has been part of the Integration Project team where he is involved in developing various customer scenarios, including SAP NetWeaver CE/BPM integration with backend systems such as SAP ERP and SAP NetWeaver PI.

C5147082
Underline
Page 2: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 2

Table of Contents

Generic Monitoring Application ........................................................................................................................... 3

Event Processor .............................................................................................................................................. 3

Event Data ...................................................................................................................................................... 4

Monitoring Dashboard ..................................................................................................................................... 4

Simulation ....................................................................................................................................................... 6

Install the Demo Application ........................................................................................................................... 6

Capturing Events from Marketing Campaign Business Scenario....................................................................... 7

Process Model ................................................................................................................................................ 7

KPI Definition .................................................................................................................................................. 7

Event Definitions and Correlation ................................................................................................................... 8

Event Provisioning .......................................................................................................................................... 9 ABAP Provisioning ..................................................................................................................................................... 10

Related Content ................................................................................................................................................ 14

Copyright........................................................................................................................................................... 15

Page 3: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 3

Generic Monitoring Application

The following diagram shows the main components involved in process monitoring and the flow of information between them. We can see that the events are triggered by the business process and collected in a central component or system called Event Processor. After some transformations and calculation of KPIs, the data is stored in a repository, which might be part of the Event Processor or a different system with dedicated storage. The KPI values are visualized in a dashboard which is the frontend UI of the monitoring application.

In this section we will consider the part on the right hand-side to build a simple and generic monitoring application. In the next section we will see how to provide it with events in order to monitor a business process.

Event Processor

Event Processor is the key component of a monitoring application. In heterogeneous environments, events can originate from various systems in the internal company landscape or from the outside world (B2B communication or public services). We need a common way to establish asynchronous messaging and collect the events in a single place. Depending on the scenario, it can be:

Basic – event data is stored without any transformation, or

Complex – with various rules for composition, data transformations, or forwarding events.

The main characteristics of the Event Processor are:

Event Queue – to be able to receive events from various sources

Data Operations – to be able to aggregate and submit event data to a persistent storage Here we propose a simple pattern for basic Event Processor receiving and storing events, based on SAP NetWeaver BPM solution. This example project can be configured and started in just a few hours.

The process flow for this simple pattern contains an intermediate message event that serves as an endpoint for incoming SOA messages. The event data is stored in a data object and then transferred to a reporting activity. The workflow is then looped in order to wait for the next incoming event. In this case, the event data is recorded to a data source in the built-in Business Log, which plays the role of Event Repository. Depending on the scenario and data volume, the repository can be a standalone component, like SAP NetWeaver BW.

Page 4: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 4

Event Data

Events are containers of the data used in KPIs and therefore supply the input of a monitoring application. Defining the event data structure affects the entire data flow. There are two basic options:

Use a specific type definition for each event Advantage: Type safety, Drawback: Multiple definitions, interfaces, and data storage schemas;

Use generic type definition for all events in the application, with the Advantage: Common interface, Drawback: Loose data structure and no type safety.

In our case we have chosen a generic data structure to enable all-purpose event processing. It also determines the service interface of the “Receive Event” endpoint and the schema of the “Record” data source.

ID – Event identification, possibly to use for correlation (discussed later);

DATETIME – Date and time of event occurrence;

TYPE – Type of event, what state of the process it represents

APPLICATION – Application (process) from which the event originates

DATA – Collection of key value pairs, which represent the specific data from the process instance, delivered by the event

Monitoring Dashboard

A dashboard should be designed to be clear of technical details and rich in business content. It is the frontend of monitoring and ensures a single place to observe the process performance. For the purpose of our simple application, Visual Composer (VC) is the most straightforward technology. It has visual widgets and comes with a built-in integration with the Business Log where our data is stored. However you should remember that it is not intended for complex and high-volume data processing. The following example shows the design of a monitoring dashboard modeled with VC.

Page 5: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 5

In this step we have to read the data from the repository and aggregate it since there was no previous transformation done by the event processor. This is actually the part that is process-specific and which depends on the particular set of data collected in the Business Log. Here we outline the general steps to follow:

1. Make sure you have VC and VC BI KIT installed on your server 2. Create a VC model 3. Add the data source created by the Event Processor and, define filter and output fields using BI

provider 4. Add aggregation or other data processing node 5. Connect to a table, chart, or other visual representation 6. Layout the page 7. Deploy and test

The result model will look similar to this one:

In order to retrieve the correct information, we use the Event Type and ID to distinguish different events and various combinations of keys to extract the Event Data (key value pairs).

Page 6: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 6

Simulation

Simulation is useful while developing and testing the process monitor. In order to see the KPI definitions in action, it is normally necessary to run multiple process instances. It would be very time consuming to trigger many process instances manually for such a test case, therefore the alternative is to build a small simulator to replace the real business process and to simulate the triggering of events.

What is needed is a sequence of event triggers with the corresponding data, which can be implemented as a Web service client application or, even easier, as an SAP NetWeaver BPM process. In the following example there are two events triggered (and the second is invoked multiple times).

The service calls complement the VC model because triggering the events supplies data that is later consumed by the Dashboard. In the input mappings we supply metadata about the event (for example, the Event Type and ID), that will be recognized by the VC model as well as meaningful keys, and values for the Event Data. In the following section we will see how to actually do this.

Install the Demo Application

This article comes with a demo application in the form of attached archive ProcessMonitoring1.0.zip, which contains:

MONITORING_1_0.sca – a Software Component archive with the source projects of the Event Processor and Simulation processes

dashboard.zip – archive with the Visual Composer model of the monitoring dashboard

WSDL – folder with the Service Interfaces for Event Provisioning used in the application

simulation.xml – input data for simulation process

How to install this demo application:

1. Import the Software Component archive MONITORING_1_0.sca in your NetWeaver Developer Studio – LocalDevelopment

2. Open and explore the process models 3. Deploy the Software Component on your SAP NetWeaver BPM instance from NWDS 4. Configure the service reference from simulation process to the local system 5. Normally the services in a process get executed by the SAP_BPM_Service user, but in order to

trigger a BPM process event there is specific security Role needed: SAP_BPM_SuperAdmin. You might need to assign this role to the SAP_BPM_Service user to allow the Simulation process to trigger events on the Event Processor

6. Start the simulation process using the provided input data simulation.xml and verify that it triggers the events correctly (use event_collector process History, Advanced mode to examine the Business Log content)

7. Import the dashboard model dashboard.zip in SAP Visual Composer 8. Open and explore the VC model 9. Deploy the dashboard model on your SAP NetWeaver BPM instance from VC

Page 7: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 7

Capturing Events from Marketing Campaign Business Scenario

Process Model

For the purpose of this article we use a business process for the marketing campaign of a new product in the Utilities sector. This business process utilizes services provided by SAP CRM, ERP/IS-U, SAP Streamwork, and public provider ExactTarget.com. The services are orchestrated using SAP NetWeaver BPM. The following figure shows a simplified model of the process:

Based on this model we can identify the key events from which to collect data about the running process. It can be seen that the process consists of two phases:

1. Launching the campaign in SAP CRM and sending mass mails to customers,

2. Receiving purchases of the product and creating contracts in SAP ERP.

KPI Definition

The clearer we define KPIs, the easier it is to implement monitoring. A KPI is a single value calculated in real time and used to convey a positive or negative trait of the process. Usually one KPI is evaluated based on a formula from several data objects coming from several events. The definition of a KPI consists of:

Name

Description

Unit type – what is measured

Direction – what is the desired behavior – to maximize or to minimize the value

Margin – the upper or lower boundary

Formula – how to evaluate the KPI value based on collected data

Besides KPIs, in a monitoring application we can aggregate other measurements used for drawing charts or otherwise show statistics over the process.

Page 8: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 8

Two main KPIs were chosen for the process outlined above:

Conversion Rate: The percentage of people converted into customers out of the total population exposed to the campaign Formula: Acquired Customers / Target Group Size Unit type: Percentage Direction: Maximize

Revenue Rate: Actual generated revenue compared to the planned outcome Formula: Generated Revenue / Planned Revenue Unit type: Percentage Direction: Maximize

Process modeling and KPI definition are preliminary design steps typically performed by a Business Analyst.

Event Definitions and Correlation

According to the required data for KPI evaluation, we chose two key points from where to collect events:

1. Campaign Release, which happens once per campaign; we collect data such as: o Start Date o End Date o Planned Revenue o Target Group Size

2. Contract Creation, which happens for each new customer, we collect data such as: o Customer Name o Contract Price

When receiving multiple events from different sources and different process instances, it is important to decide how to correlate events that are used in a single KPI. The recommendation is to use a correlation ID that is bound to the process instance, or to the leading artifact in the process. In our case, the correlation is based on the Campaign ID.

For the above defined “Campaign Release” and “Contract Creation” events we have to send SOA messages with the following example contents:

<tns:event>

<tns:ID>C/0000-038-1</tns:ID>

<tns:APPLICATION>Campaign Management</tns:APPLICATION>

<tns:TYPE>CAMPAIGN_RELEASED</tns:TYPE>

<tns:DATETIME>2010-12-01T12:00:00</tns:DATETIME>

<tns:DATA>

<tns:key>startDate</tns:key>

<tns:val>2010-12-24T12:00:00</tns:val>

</tns:DATA>

<tns:DATA>

<tns:key>endDate</tns:key>

<tns:val>2011-01-10T12:00:00</tns:val>

</tns:DATA>

<tns:DATA>

<tns:key>plannedRevenue</tns:key>

<tns:val>500000</tns:val>

</tns:DATA>

<tns:DATA>

<tns:key>targetGroupSize</tns:key>

<tns:val>10000</tns:val>

</tns:DATA>

</tns:event>

<tns:event>

<tns:ID>C/0000-038-1</tns:ID>

Page 9: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 9

<tns:APPLICATION>Campaign Management</tns:APPLICATION>

<tns:TYPE>CONTRACT_CREATED</tns:TYPE>

<tns:DATETIME>2010-12-25T12:00:00</tns:DATETIME>

<tns:DATA>

<tns:key>customerName</tns:key>

<tns:val>Peter Adams</tns:val>

</tns:DATA>

<tns:DATA>

<tns:key>contractPrice</tns:key>

<tns:val>1000</tns:val>

</tns:DATA>

</tns:event>

We use the same campaign ID in order to correlate both events that originate from the same campaign.

Event Provisioning

The main technical challenge for event provisioning is to identify the point where an event is to be triggered and furthermore to install the actual means to transport the event (in our case, Web service). This is very scenario and landscape-specific. In heterogeneous environments, events can originate from various systems in the internal company landscape or from the outside world (B2B communication or public services).

Let us consider:

BPM provisioning

ABAP provisioning

BPM Provisioning

Let us imagine we have identified the points where our application will trigger events. We will create a simple business process which will supply our event processor with data - thus simulating a real application.

1. In a Process Composer Development Component import the two WSDL files named CaptureEventService.wsdl and Campaign.wsdl provided in the source archive.

2. Create a Message Event Trigger called Simulate and choose the Campaign service as the service of the trigger.

3. Create new mapping function named createData with two parameters of type string (http://www.w3.org/2001/XMLSchema) and KeyValuePair as return type. Create the mappings as shown in the diagram below.

4. We are now ready to create the actual process. Create a new process called simulation.

Page 10: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 10

5. Define input mappings of the service calls, which will provide the acual data for the events:

Campaign Released should send the following data:

Contract Created provides the value of the current element of the ContractPrice input list enumerated by the variable Data Object Contracts

key = "contractPrice"

value = get(CampaignData/ContractPrice, long(Contracts - 1)))

ABAP Provisioning

1. Go to the SLD (http://<host>:<port>/sld or call transaction SXMB_IFR and then choose System Landscape Directory) and create new Software Component and Version. 2. Go to the Enterprise Services Builder and import the newly created Software Component Version. 3. Create a new namespace inside the Software Component Version. Call it http://example.org/monitoring.

Note: Do not use a namespace that contains “sap.com” as this is reserved.

4. From the Tools menu, choose Import Service Interface... and import the wsdl CaptureEventService.wsdl provided in the source archive. Choose the option Outbound in the third step. Save and activate your changes.

Now when we have the service definition we are going to create a proxy for it so that we would be able to call the Web service.

1. Log on to your SAP ABAP system and call transaction SPROXY. 2. On the Enterprise Services Browser tab find the service that we have just imported. 3. Right-click on it and chose Create Proxy. A wizard opens. On the first page choose Local Object

and enter ZMON as prefix. Note: All customer objects names must start with letter Z or Y. 4. When you finish the wizard your proxy will be generated. Save and activate it.

(

createData("targetGroupSize", string(CampaignData/TargetGroupSize)),

createData("startDate", string(CampaignData/StartDate)),

createData("endDate", string(CampaignData/EndDate)),

createData("plannedCustomers", string(CampaignData/PlannedCustomers)),

createData("plannedRevenue", string(CampaignData/PlannedRevenue))

)

Page 11: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 11

Once the proxy is created, we need to create a function module which will hold the main logic and will make

use of the proxy generated previously.

1. Go to transaction SE80.

2. In the Repository Browser tab choose Function Group and enter a name for a new function group.

For example Z_MONITORING and click enter. A window appears asking you whether you want to

create it. Click yes, then save, and finally make the function group local by clicking on the Local

Object button.

3. Now search for the SWE_TEMPLATE function group. From the list of function modules choose

SWE_TEMPLATE_REC_FB, right-click it and choose copy. A dialog window appears asking you

where you want to copy the function module (FM). Name the new module Z_MONITORING_FM

and place it in the function group that we created earlier.

4. Open the Z_MONITORING_FM function module. You will find it in the Local Objects.

5. Copy and paste the code from Listing 1.

6. Save and activate your function module.

Page 12: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 12

FUNCTION z_monitoring_fm.

*"----------------------------------------------------------------------

*"*"Local Interface:

*" IMPORTING

*" VALUE(EVENT) LIKE SWETYPECOU-EVENT

*" VALUE(RECTYPE) LIKE SWETYPECOU-RECTYPE

*" VALUE(OBJTYPE) LIKE SWETYPECOU-OBJTYPE

*" VALUE(OBJKEY) LIKE SWEINSTCOU-OBJKEY

*" VALUE(EXCEPTIONS_ALLOWED) LIKE SWEFLAGS-EXC_OK DEFAULT SPACE

*" EXPORTING

*" VALUE(REC_ID) LIKE SWELOG-RECID

*" TABLES

*" EVENT_CONTAINER STRUCTURE SWCONT

*" EXCEPTIONS

*" TEMP_ERROR

*" ANY_ERROR

*"----------------------------------------------------------------------

DATA: capture_event_service_proxy TYPE REF TO zmonco_capture_event_service .

TRY.

CREATE OBJECT capture_event_service_proxy

* EXPORTING

* logical_port_name =

.

CATCH cx_ai_system_fault .

ENDTRY.

DATA: output TYPE zmoncapture_event_request.

* fill event data here

output-parameters-id = 'B/0000-123-1'.

output-parameters-application = 'PROCESS_MONITORING_DEMO'.

output-parameters-type = 'CAMPAIGN_RELEASED'.

DATA: data_field TYPE zmonkey_value_pair.

data_field-key = 'target_group_size'.

data_field-val = '3000'.

APPEND data_field TO output-parameters-data.

*

TRY.

CALL METHOD capture_event_service_proxy->capture_event

EXPORTING

output = output.

CATCH cx_ai_system_fault .

ENDTRY.

ENDFUNCTION.

Page 13: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 13

Listing 1

Now we are going to link our function module to a Business Object Repository (BOR) object event so

that it will get called every time the event rises.

1. Go to transaction SWE2. It lists the linkage between

events and receivers of events. Choose the one you

are interested in (for example, BUS2032 - Sales

Order or BUS2010020 - Marketing Campaign) and

copy it to create a new linkage.

2. On the screen that opens, enter your function

module in the Receiver Function Module field.

3. Check whether the Linkage Activated checkbox is

marked.

4. Save your entries.

The last step creates a logical port for the proxy we have generated.

1. Call transaction SOAMANAGER.

2. Go to Application and Scenario Communication -> Single Service Administration.

3. Find the CaptureEventService Consumer Proxy and click Apply Selection button.

4. On the Configuration tab click on Create Logical Port button.

5. Enter logical port name and tick the "Logical Port is Default" checkbox.

6. Enter the WSDL location of the service endpoint as well as login credentials for the remote

system.

7. Apply your settings.

Now everything is put together. Raise the event to which you have subscribed and see the data flowing

into the event processor on the SAP NetWeaver CE system.

Page 14: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 14

Related Content

For more information, visit the Business Process Monitoring homepage

Page 15: Process Monitoring with NetWeaver 7.20pdf

Process Monitoring with SAP NetWeaver CE 7.20/7.30

SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BOC - boc.sap.com | UAC - uac.sap.com

© 2010 SAP AG 15

Copyright

© Copyright 2010 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.