Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for...

14
SAP COMMUNITY NETWORK SDN - sdn.sap.com | BPX - bpx.sap.com | BA - boc.sap.com | UAC - uac.sap.com © 2011 SAP AG 1 Verify on First Refresh for Crystal Report for Enterprise explained Applies to: Crystal Report for Enterprise 4.0 Summary This document describes the Verify on First Refresh feature and including updates made for Crystal Reports for Enterprise. The intended audience is the Crystal Reports expert user. The design and implementation is mostly new in 2010. This document describes the customer value; workflow details; workflow variations. A common use case is also included. The document‟s goal is to educate the reader on the complexities of this feature. Author: Godfrey Hobbs Company: SAP Canada Created on: June 27, 2011 Author Bio Godfrey Hobbs has been involved in Internet and enterprise software development for over 11 years. He is Software Developer for SAP Canada (http://www.sap.com). His primary areas of expertise include Usability, Web Applications, Software Engineering, Project Management, and Component-based Software Development Methodologies. Past experience includes Technical Leadership and Senior Software Developer positions at www.amazon.com and www.etrade.com.

Transcript of Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for...

Page 1: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

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

© 2011 SAP AG 1

Verify on First Refresh for Crystal

Report for Enterprise explained

Applies to:

Crystal Report for Enterprise 4.0

Summary

This document describes the Verify on First Refresh feature and including updates made for Crystal Reports for Enterprise. The intended audience is the Crystal Reports expert user. The design and implementation is mostly new in 2010. This document describes the customer value; workflow details; workflow variations. A common use case is also included. The document‟s goal is to educate the reader on the complexities of this feature.

Author: Godfrey Hobbs

Company: SAP Canada

Created on: June 27, 2011

Author Bio

Godfrey Hobbs has been involved in Internet and enterprise software development for over 11 years. He is Software Developer for SAP Canada (http://www.sap.com). His primary areas of expertise include Usability, Web Applications, Software Engineering, Project Management, and Component-based Software Development Methodologies. Past experience includes Technical Leadership and Senior Software Developer positions at www.amazon.com and www.etrade.com.

Page 2: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 2

Table of Contents

Summary of Customer Benefits… ...................................................................................................................... 3

Intro… 3

A two step process… ...................................................................................................................................... 3

Cases the Workflow can handle… .................................................................................................................. 3

Three workflow variations: Processing Server; Job Server/Scheduling Service; Designer… ........................... 4

A few words on Data Parameters and Data Parameter Dependencies… ......................................................... 4

What is so special about Data parameters?... ................................................................................................ 4

Dependencies… .............................................................................................................................................. 5

Fix-up with Mapping Objects/fields… ................................................................................................................. 6

A quick review… ................................................................................................................................................. 7

Preconditions, Postconditions, Outcomes … ..................................................................................................... 8

Preconditions: ................................................................................................................................................. 8

Postconditions: ................................................................................................................................................ 8

Outcomes: ....................................................................................................................................................... 8 Success Outcomes ...................................................................................................................................................... 8

Failure Outcomes ......................................................................................................................................................... 8

Changes in the Crystal Reports for Enterprise… ............................................................................................... 9

Use case in Detail… ......................................................................................................................................... 10

Insights into Design and Implementation .......................................................................................................... 12

Related Content ................................................................................................................................................ 13

Copyright........................................................................................................................................................... 14

Page 3: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 3

Summary of Customer Benefits…

Note: Please read the following for a basic understanding of the Verify on First Refresh feature:

Pre Reading: Page 481-498 The Complete Reference Crystal Report 2008 by Peck

The Verify on First Refresh Workflow „to the rescue‟ - saving customer reports when our stable datasources are not so stable. The Verify on First Refresh Workflow provides customer value by allowing the user to fix-up the report's Data Foundation after the underlying datasources appear updated or secured via query-time security. This is helpful to the user because the investment made in creating past reports is better future-proofed. The report design is preserved even when the datasource is updated. Without this workflow, minor database updates or query-time security restrictions would result in datasource exceptions and the report failing to refresh. The only other way a customer could deal with these changes in the underlying datasource was to update reports in the designer. This “Verify on First Refresh Workflow” is designed to solve this problem by allowing many fix-ups to occur automatically. The designer-based Verify on First Refresh fix-up has also been made more powerful.

Intro…

The Verify on First Refresh Workflow provides customer value by allowing a fix-up of the report's Data Foundation after the underlying datasources appear updated. The datasource update could occur if the datasource has been normalized for example, or if a field was simply removed. In addition, query-time security may hide some fields from specific users. To these users, it will appear as if a datasource update has removed these „hidden‟ fields. The report viewing experience for users with limited query-time security authorization is therefore greatly improved by these fix-ups. With this workflow, reports that would otherwise fail can now be refreshed and successfully viewed by users. The Verify on First Refresh Workflow will be a „no-op‟ when the underlying data source is unchanged

Note: The term „Fields‟ has been generalized to the new term „Result Objects’. In this document the terms have been used interchangeably. The term Data Foundation is a term specific to the report. This term does NOT refer to the

CSL Data Foundation.

A two step process…

First, let us take a look at the big picture. From a high level, the Verify on First Refresh Workflow has two distinct steps:

1. The Check Datasource Step: Sync the datasource; calculate updates; and generate feedback based on the updates; and

2. The Fix-up Step: Use the feedback from The Check Datasource Step to update the Report Definition and Data Foundation

The Fix-up Step makes the Workflow not „undoable‟ (and there are no plans to make it „undoable‟). The most common use case is “Result objects being removed from the underlying datasource.” This use case will be described in detail (see below - Use case in Detail… ).

Cases the Workflow can handle…

No solution is perfect and this workflow has its limits. The Workflow is not designed to handle all cases flawlessly; some situations are difficult to resolve, rarely encountered, or both.

At a minimum, the Workflow can handle the following:

1. Result objects being removed from the underlying datasource due to query-time security 2. Result objects being removed from the underlying datasource for other reasons 3. Data parameters being removed from the underlying datasource 4. Result objects‟ changing type 5. Result objects‟ display name changing or 6. Result objects‟ display name changing due to change in PVL change

Page 4: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 4

A result object‟s type may change in two ways. First if the new data type is compatible (e.g., Number type changed to Currency) with the previous type, then the field will be automatically updated. Otherwise if the data types are incompatible (e.g., String changed to Blob), then this field will not be automatically mapped. (The field will be added to THE SET OF FIELDS TO-BE-DROPPED - see below).

Three workflow variations: Processing Server; Job Server/Scheduling Service; Designer…

From a user perspective there are three important workflow variations. The Crystal Reports for Enterprise Designer supports a more powerful variation of Verify in first refresh. For instance, the Verify on First Refresh Workflow in the Designer, allows manual field mapping and users have more control. Other variations of the Workflow do not involve user interaction. In total, there are three variations of Verify on First Refresh Workflow. The variations in order of increasing power are listed as follows:

1. The Verify on First Refresh Workflow in the Crystal Reports Processing Server 2. The Verify on First Refresh Workflow in the Crystal Reports Job Server/Scheduling Service 3. The Verify on First Refresh Workflow in the Crystal Reports Designer

Note: In the designer variation, the result objects are not automatically dropped; rather the user is prompted to map the result objects in this set.

The Processing Server Variation is the most limited. The Verify on First Refresh Workflow in the Crystal Reports Processing Server is optimized for performance. Thus parameters are not fixed-up: only the minimum fix-up, which is listed above, is handled by this Workflow variation. Report objects based on missing result objects will be deleted from the report. Formula exceptions will occur when formulas based on this missing result objects are compiled.

The Verify on First Refresh Workflow in the Crystal Reports Job Server/Scheduling Service variation does not have any UI for users to map result objects. The following additional fix-ups can be handled by this variation:

1. Data parameters being updated or removed in the underlying datasource 2. New Data parameters which do not require prompting being added to the underlying datasource 3. Data parameters dependencies being updated in the underlying datasource 4. New Data parameters dependencies are added to the underlying datasource

A few words on Data Parameters and Data Parameter Dependencies…

What is so special about Data parameters?...

Compared with other datasource metadata items, new data parameters are treated in a special way. This treatment is necessary because each data parameter automatically becomes part of the report as a new report parameter. These visible report parameters are of type „Data‟ and cannot be deleted by the report designer. In the Designer, we never see the „real‟ data parameters which are hidden. In the Report Definition and Data Foundation, these hidden Data Parameters, which are part of the Data Foundation, are each paired with visible Report Parameters, which are part of the Report Definition.

C S

L

Country Parameter based on @prompt D

ata

Fou

nd

atio

n

Country Data Parameter

Rep

ort

Def

init

ion

Country report Parameter

type=data

Page 5: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 5

In other words, most Data Foundation items (Result Objects, Tables) are shown in the Designer‟s Data Explorer. The Data Explorer is not part of the Report Definition and is not displayed in the Crystal Reports viewers. Adding a new data field only requires updating the Data Explorer: adding the new data field does not require an update to the Report Definition. However data parameters are not shown in the Data Explorer Result Objects area. Data Parameters are shown as Report Parameters and ARE part of the Report Definition. Adding a new Data Parameter therefore requires updating the Report Definition.

Dependencies…

Data Parameter Dependencies are new for Crystal Reports for Enterprise. For Crystal Report for Enterprise, all Data parameters are based on underlying Common Semantic Layer, CSL. These CSL parameters are not always independent and often have dependency relationship with other CSL parameters. For example, a query may have a CSL “Country” Parameter that must be answered before a dependent CSL “City” parameter. In this common case, “City” depends on “Country”. An update to the “Country->City” data parameter dependency would be to introduce a new CSL “Region” parameter. This update will result with a new dependency graph: “Country->Region->City.” Parameter dependency updates will NOT be correctly handled by the Processing Server Variation. However the other two variations will handle these updates correctly.

Page 6: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 6

Fix-up with Mapping Objects/fields…

Field mapping is the heart of Verify on First Refresh feature. The Report Definition is updated to match changes made in the Data Foundation. The following Venn diagram shows the essences of field mapping:

Fields in updated

datasource

(empty)

In-use report fields

Fields to

be dropped

(or manually .

mapped)

Automatically

mapped fields

Fields in old

Datasource

The following two sets of report fields are of most interest:

1. The Set of Automatically Mapped Fields 2. The Set of Fields to-be-dropped (or manually mapped)

In all Workflow variations, the Set of Automatically Mapped Fields is handled without user input. However the second set, the Set of to-be-dropped Fields, is handled differently in the Verify on First Refresh Workflow in the Crystal Reports Designer variation. In the designer variation, the fields are not automatically dropped; rather the user is prompted to map the fields in this set. The above Venn diagram and its sets are unique for the main report and each sub-report: each subreport will have a different Map Objects dialog.

Page 7: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 7

An example of mapping objects is provided to help understanding. In figure 2, the Set of Fields to-be-dropped consist of a single field: Customer\XRegion. Customer\XRegion is shown mapped to the Right Hand Side Target Table field Customer\Region. After clicking OK, all report objects referencing Customer\XRegion will be updated to reference the Customer\Region. Potentially affected report objects include: Field Objects; some Subreport Link related Objects; Dynamic LOV Objects; Summaries Objects; etc. Formulas will be updated via query-and-replace to use the new field name “Customer\Region.”

Note: The result object can only be mapped to a result object with a compatible type (e.g. Number type mapped to a

Currency type).

The following are the limits to the manual field mapping done in the designer:

1. Data Parameters cannot be mapped 2. Report objects Charts and Cross Tabs updates may not be correctly handled

What if no mapping is provided? If the user were not to provide a mapping to Customer\XRegion, then the field will be „dropped.‟ The report objects based on Customer\XRegion would be deleted from the report. Any formula based on Customer\XRegion would now result in Formula Exceptions.

Hey what about the result objects which are new? New result objects may be added to the datasource. These new field have not yet been added to the report but do now need to be displayed in the Data Explorer. Note: The Data explorer is unique to the designer and the designer Workflow variation. Whenever Verify on First Refresh detects any new result objects in the datasource these objects will be added to the Data Explorer. Updates to result object type or result object display name will automatic occur for all result objects which are not „in-use‟.

A quick review…

The following is a quick review of what we have covered so far in point form:

1. The Check Datasource Step: a. Check for differences between report‟s Data Foundation and „real‟ datasource

i. Check if any result objects have changed or deleted ii. The datasource id is also checked iii. The datasource query spec is also checked iv. The set of datasource parameters/filters is also checked

b. Create The Set of Fields to-be-dropped i. Parameters/filters will NOT be mapped

c. The Check Datasource Step is repeated for each subreport 2. The Fix-up Step:

a. Handle the Set of Fields to-be-dropped i. The Crystal Reports Processing Server Workflow Variation & The Crystal Reports

Job Server/Scheduling Service Workflow Variation 1. All fields in the Set of Fields to-be-dropped are dropped 2. New or Updated Data Parameter/filters will not be added 3. Changed Parameters/filters will be dropped

a. If there are new or changed DSL Query Data Parameters/filter viewing on BOE will fail

ii. The Crystal Reports Designer Workflow Variation is Interactive 1. Show the User the Set of Fields to-be-dropped in the Mapping Objects

Dialog 2. The user decides what to do in this case 3. New Data Parameter/filters will be automatically added

b. The fix-up step is repeated for each subreport

Page 8: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 8

Preconditions, Postconditions, Outcomes …

Preconditions:

1. There must be at least one „in-use‟ Field and one Datasource in the report 2. The User must be able to connect to the Datasource

Postconditions:

1. There will be a equal or fewer number of datasource tables in report after Verify 2. There will be a equal or fewer number of fields in the report after Verify 3. There must be at least one datasource table in the report 4. All report objects and formulas are now based on valid datasource result objects 5. For each parameter in the datasource there will be exactly one Data Parameters in the report. 6. The Query Spec is now correctly reflected in the report‟s Data Foundation

Outcomes:

Success Outcomes

1. The fixed-up query runs successfully and report is refreshed without error 2. If the CSL datasource, the universe, has been deleted from the CMS, then the report data source no

longer exists: error prompts. In the designer workflow the user is taken to the Set Datasource Location Workflow.

Failure Outcomes

1. The fixed-up may result in invalidqueryexceptions. e.g. The query may become multiflow when the dropped result objects no longer provide the linking required for query generation and execution.

2. The fixed-up may result in formula exceptions e.g. The field XRegion, used by formula count({simpleXtreme.Customer\XRegion}),may be dropped resulting in a “This field is not known” formula exception

3. The fixed-up report is not longer useful to the customer. e.g. too many columns have been dropped

Page 9: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 9

Changes in the Crystal Reports for Enterprise…

Let us go over what is new. There are two important changes to the Verify on First Refresh Workflow when compared with previous releases of Crystal Reports, such as Crystal Reports 2008. First the Workflow is no longer a report option. Verify on First Refresh is no longer optional: it cannot be turned off and the report option is no longer a valid option.

Page 10: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 10

Second, the Designer‟s “Verify Database” Button, the explicit Verify Datasource Workflow, has been removed.

Another change is the handling of data parameters which are missing from the underlying data source. In the new release, the missing data parameters are kept in the report and are converted to report parameters. Previously these missing data parameters were deleted from the report as a side-effect of the Verify on First Refresh Workflow.

Use case in Detail…

The following is a detail technical discussion of how the Workflow handles this change.

Use Case: Result object removed from the underlying datasource due to query-time security.

Step 1. Bob has his favorite end-of-quarter Crystal Report, BobsBest.rpt, which is based on the Sales.unx

Step 2. Bob opens BobsBest.rpt. He last viewed it three months ago.

Step 3. Unknown to Bob, George the Universe Designer has done some updates to the Sales.unx. George has restricted query-time access to the super_bonus result object. Bob is no longer authorized to view this object.

Step 4. Bob opens BobsBest.rpt and hits refresh.

Step 5. Bob is surprised by the following popup.

Step 6. Bob clicks OK as he has no other options

Step 7. Next the Map Objects Dialog is displayed to Bob

Step 8. At this point Bob searches his email and finds a „Sorry Bob‟, note from George and about the super_bonus security changes Bob clicks around for a while in the Map Objects Dialog. He ends up NOT mapping the super bonus field. Finally he clicks OK.

Page 11: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 11

Step 9. Bob clicks OK and is next prompted with the following

Step 10. Bob clicks OK on the popup. Bob now see the super_bonus column has been removed from his report. Bob clicks OK. The updated report is refreshed.

Step 11. Bob reviews the numbers on the refreshed report. The numbers look good.

Step 12. Bob is happy with his repot. Bob saves the report.

Page 12: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 12

Insights into Design and Implementation

Here are some more insights into field mapping. Field mapping is a complex process which relies on a specific ordering of events.

Data FoundationReport Definition

Start update

Clone tableA creating a new tableA_1

Resync the table with the datasource

Map report fields to the new tableA_1

Delete original tableA

Modify table alias: update report

objects to use tableA

Update table alias: tableA_1 à tableA

Page 13: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 13

Related Content

SAP Crystal Reports Design

CRYSTAL REPORTS FOR ENTERPRISE 4.X: REFRESH THE DATA IN A REPORT

From Crystal Reports 2008 to SAP Crystal Reports 2011 or SAP Crystal Reports for Enterprise

Page 14: Verify on First Refresh for Crystal Report for Enterprise ... · Verify on First Refresh for Crystal Report for ... in the Crystal Reports Processing Server is ... for Crystal Report

Verify on First Refresh for Crystal Report for Enterprise explained

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

© 2011 SAP AG 14

Copyright

© Copyright 2011 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 Oracle Corporation.

JavaScript is a registered trademark of Oracle Corporation, 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.