AP 7.00. Integration with BRFplus VERSION V1.00 22 APRIL 2011 - SAP AG



Similar documents
Enterprise Software - Applications, Technologies and Programming

Understanding HR Schema and PCR with an Example

Table of Contents. How to Find Database Index usage per ABAP Report and Creating an Index

Business One in Action - How can we post bank fees and charges while posting Incoming or Outgoing Payment transactions?

K in Identify the differences between the universe design tool and the information design tool

SAP Master Data Governance- Hiding fields in the change request User Interface

SAPFIN. Overview of SAP ERP Financials COURSE OUTLINE. Course Version: 15 Course Duration: 2 Day(s)

Third Party Digital Asset Management Integration

HR400 SAP ERP HCM Payroll Configuration

Budget Control by Cost Center

Process Archiving using NetWeaver Business Process Management

AC200. Basics of Customizing for Financial Accounting: General Ledger, Accounts Receivable, Accounts Payable COURSE OUTLINE

R/3 and J2EE Setup for Digital Signature on Form 16 in HR Systems

Maintaining Different Addresses and Ids for a Business Partner via CRM Web UI

Alert Notification in SAP Supply Network Collaboration. SNC Extension Guide

Integrating Easy Document Management System in SAP DMS

How to Create a Support Message in SAP Service Marketplace

UI Framework Simple Search in CRM WebClient based on NetWeaver Enterprise Search (ABAP) SAP Enhancement Package 1 for SAP CRM 7.0

Portfolio and Project Management 5.0: Excel Integration for Financial and Capacity Planning

Data Archiving in CRM: a Brief Overview

TM111. ERP Integration for Order Management (Shipper Specific) COURSE OUTLINE. Course Version: 15 Course Duration: 2 Day(s)

UI Framework Task Based User Interface. SAP Enhancement Package 1 for SAP CRM 7.0

ERP Quotation and Sales Order in CRM WebClient UI Detailed View. SAP Enhancement Package 1 for SAP CRM 7.0 CRM Sales - SFA

SAP NetWeaver BRM 7.3

Integration of SAP Netweaver User Management with LDAP

USDL XG WP3 SAP use case. Kay Kadner

Integration of Universal Worklist into Microsoft Office SharePoint

User Experience in Custom Apps

Consume an External Web Service in a Nutshell with good old ABAP

NetWeaver Business Client (NWBC) for Incentives and Commissions Management (ICM)

SAP DSM/BRFPlus System Architecture Considerations

Log Analysis Tool for SAP NetWeaver AS Java

Compliant, Business-Driven Identity Management using. SAP NetWeaver Identity Management and SBOP Access Control. February 2010

UI Framework Logo exchange without skin copy. SAP Enhancement Package 1 for SAP CRM 7.0

How-to-Guide: Middleware Settings for Download of IPC Configuration (KB) Data from R/3 to CRM System

Data Source Enhancement Using User Exit

How To Use the BPC Mass User Management Tool in BPC 10.0 NW

BW Workspaces Use Cases

Variable Exit in Sap BI How to Start

SAP Sustainability Solutions: Achieving Customer Strategies

Business Requirements... 3 Analytics... 3 Typical Use Cases... 8 Related Content... 9 Copyright... 10

Secure MobiLink Synchronization using Microsoft IIS and the MobiLink Redirector

Sending Additional Files from SAP Netweaver PI to third Party System

Application Lifecycle Management

Quick Guide EDI/IDoc Interfacing to SAP ECC from External System

How To Use the ESR Eclipse Tool with the Enterprise Service Repository

Sales Planning Detailed View. SAP Enhancement Package 1 for SAP CRM 7.0 CRM Sales - SFA

Accounts Receivable. SAP Best Practices

How to Add an Attribute to a Case, Record and a Document in NW Folder Management (ex-records Management)

SAP Business ByDesign Reference Systems. Scenario Outline. SAP ERP Integration Scenarios

How to Schedule Report Execution and Mailing

Intelligent Business Operations Chapter 1: Overview & Strategy

SAP How-To Guide: Develop a Custom Master Data Object in SAP MDG (Master Data Governance)

OData in a Nutshell. August 2011 INTERNAL

Project Governance The Role Of The Business Process Owner

SAP Service Tools for Performance Analysis

Configuring Single Sign-on for SAP HANA

Single Sign-On between SAP Portal and SuccessFactors

SAP Cloud Strategy - Timeless Software. Frank Stienhans on behalf of Kaj van de Loo SAP

Fixed Asset in SAP Business One 9.0

Query, Read, Create and Update CLOUD FOR CUSTOMER ODATA SERVICE QUERY, READ, CREATE AND UPDATE

SOP through Long Term Planning Transfer to LIS/PIS/Capacity. SAP Best Practices

SAP Portfolio and Project Management

Using User Exit for Variables in BEx Reporting

Mass Maintenance of Procurement Data in SAP

Xcelsius Dashboards on SAP NetWaver BW Implementation Best Practices

Sample Universe on Microsoft OLAP Cube

Installation Guide Customized Installation of SQL Server 2008 for an SAP System with SQL4SAP.VBS

If you have additional questions regarding these name changes, please contact your SAP Account Executive.

Certificate SAP INTEGRATION CERTIFICATION

SAP HANA Cloud Integration Document Version: Template Guide for SAP Sales and Operations Planning

Configuring Distribution List in Compliant User Provisioning

Companies with roads, rails, pipelines, electricity transmission

Download and Install Crystal Reports for Eclipse via the Eclipse Software Update Manager

Run SAP like a Factory

Ariba Network Integration to SAP ECC

Learning Series: SAP NetWeaver Process Orchestration, business to business add-on EDI Separator Adapter

Finding the Leak Access Logging for Sensitive Data. SAP Product Management Security

Delta Queue Demystification

Learning Series: SAP NetWeaver Process Orchestration, secure connectivity add-on 1c SFTP Adapter

RUN BETTER Become a Best-Run Business with Remote Support Platform for SAP Business One

How to Configure Access Control for Exchange using PowerShell Cmdlets A Step-by-Step guide

Business Process Change Analyzer in SAP Solution Manager 7.1

Next Generation Digital Banking with SAP

SAP Central Process Scheduling (CPS) 8.0 by Redwood

LO Extraction Part 1: SD Application Short Overview

Duet Enterprise Add SAP ERP Reports and SAP BI Queries/Workbooks to Duet Enterprise Configuration

BICS Connectivity for Web Intelligence in SAP BI 4.0. John Mrozek / AGS December 01, 2011

BUSINESS STRUCTURE: FUNCTIONS AND PROCESSES

An Up-to-Date Guide to SAP Business Workflow and Its Role Within Your SAP Infrastructure

How To Configure MDM to Work with Oracle ASM-Based Products

SAP Best Practices for Subsidiary Integration in One Client Production with Intercompany Replenishment

AC 10.0 Customizing Workflows for Access Management

BUSINESS PROCESS MANAGEMENT

How to Set Up an Authorization for a Business Partner in Customer Relationship Management (CRM) Internet Sales: Sample Case

Supplier Master Data Governance

Developing Applications for Integration between PI and SAP ERP in Different Network Domains or Landscapes

Introducing the SAP Business One starter package. A Great Start to help you to Streamline Your Small Business

Supporting SAP POS Best Practices Setting Log File Sizes and Retention

How To Improve Your Business Process With Sap

Transcription:

AP 7.00 Integration with BRFplus VERSION V1.00 22 APRIL 2011 - SAP AG

Table of Contents 1. Introduction... 3 1.1 Time based prices... 3 1.2 Usage of BRFplus... 3 1.3 About this document... 3 1.4 Target group... 3 2. Solution via external data source... 4 2.1 Timestamps... 4 2.2 Set up of BRFplus... 4 2.3 Condition type... 7 2.4 Pricing procedure... 7 2.5 BAdI PRC_DATA_SOURCES... 8 2.6 Result... 10 3. Solution with passing an additional attribute... 12 3.1 About this solution approach... 12 3.2 Set up of the customizing and master data... 12 3.3 Set up of BRFplus... 15 3.4 BAdI CRM_COND_COM_BADI... 18 3.5 Result... 20 2/20

1. Introduction 1.1 Time based prices You are using the IPC Pricing Engine (for example in CRM for Sales Orders) and you want to support business cases for which time based prices are required. Examples: Happy Hour: The price of a product is 50 EUR, but between 14:00 and 16:00 it is only the half price (25 EUR) Time based rates, e.g. mobile phone tariffs: o 0:00-7:00: 30 cents/min o 7:00-18:00: 50 cents/min o 18:00-0:00: 40 cents/min Unfortunately, these scenarios are not supported within the IPC Pricing Engine. The reason is that the condition technique (which is used by the IPC) allows only selecting condition records by day, but no by time. 1.2 Usage of BRFplus For these special business requirements, you can use SAP BRFplus as an alternative to the condition technique. The Business Rule Framework plus (BRFplus) is an ABAP based rule engine which allows to create business rules. BRFplus offers an API (application programming interface) that allows to call these business rules from external (e.g. local ABAP call or web service). So the IPC Pricing Engine can use these business rules. For more information regarding BRFplus, please refer to the official documentation, e.g. BRFplus Knowledge Center in SAP Developer Network (SDN): https://www.sdn.sap.com/irj/sdn/index?rid=/webcontent/uuid/90754865-f283-2b10-6d9fb10f3c28c3a0. We would like to point out that BRFplus should not be a replacement for the condition technique but can be an enhancement and alternative for special business requirements as the in two examples above. 1.3 About this document The next chapters will show you how you can realize an integration between the IPC Pricing Engine and BRFplus. These are two different solution approaches and we will use the examples of chapter 1.1 (Happy Hour and Time based rates). 1.4 Target group This document is mainly addressed to consultants and developers of the IPC area. 3/20

2. Solution via external data source In this first solution approach, we want to implement the Happy Hour example via external data source. 2.1 Timestamps As the condition technique supports selecting condition records only by date, the CRM passes to the IPC the timestamps as dates. So if you want to uses real timestamps (date with time), then you have to create them on your own. You can create these timestamps by using the CRM BAdI s like CRM_COND_COM_BADI. Or you can create the timestamps in the BAdI PRC_DATA_SOURCES in method DETERMINE_ATTRIBUTES. Here you can use for example the current system time with sy-uzeit (HH:MM:SS). 2.2 Set up of BRFplus 1) Open the BRFplus workbench with the transaction brfplus. 2) Create an application, e.g. ZBY_APPL_HAPPY_HOUR. An application is the top-level container for all kinds of different BRFplus objects. All BRFplus objects are assigned to an application. 3) Add the required elements that are needed by the business rule. In our case it is: Import: Condition type (DDIC Element: PRCT_COND_TYPE) Product Guid (DDIC Element: COMT_PRODUCT_GUID) Time (DDIC Element: SYUZEIT) Export: Amount (BRFplus data type) You need to define only the three import parameters. The export parameter Amount is already available as BRFplus data type. When creating the elements for the import parameters, then you can refer to the Data Dictionary as shown in the screenshot below for COMT_PRODUCT_GUID. 4/20

This should look like this: 4) Add a BRFplus function with the proper interface, e.g. ZBYA_FUNC_TREE_HAPPY_HOUR. The function is the interface between the application code (IPC) and the business rules. 5/20

5) Now we need to define our business rules. For a certain product the price should be 50 EUR normally, but between 14:00 and 16:00 it should be only the half price (25 EUR). Here we use a decision tree to realize this business rules, e.g. ZBYA_DEC_TREE_HAPPY_HOUR (see picture below). After done this, please assign the decision tree to the function ZBYA_FUNC_TREE_HAPPY_HOUR. 6) At the end you will have this setup in BRFplus: 6/20

For testing purpose, you can test your business rule by running a simulation of the function ZBYA_FUNC_TREE_HAPPY_HOUR within the BRFplus workbench. 2.3 Condition type Now you need to create condition type with an external data source. This external data source will call our BRFplus function. Go to SPRO Customer Relationship Management Basic Functions Pricing Create Condition Types. In the screenshot below, an example is shown. The condition type ZHPY (Happy Hour) is a price (condition class "B - Price"). Further, it uses the external data source "X - Customer Reserve 1". This is a filter for our BAdI implementation that will call the BRFplus function. For more details regarding external data sources, please refer to the SAP Note 1328953. 2.4 Pricing procedure Create a Pricing Procedure and add the condition type ZHPY. Go to SPRO Customer Relationship Management Basic Functions Pricing Create Pricing Procedure.. 7/20

2.5 BAdI PRC_DATA_SOURCES Now you need to create a proper implementation for the BAdI PRC_DATA_SOURCES. The BAdI PRC_DATA_SOURCES is used to retrieve a condition rate from another data source than the condition technique. For more details regarding external data sources, please refer to the SAP Note 1328953. Go to transaction SE18 and create a BAdI implementation for PRC_DATA_SOURCES: Here we create the BAdI implementation ZBRF_PRC_DATA_SOURCE. You can see that this BAdI implementation has the filter value 'X'. As the condition type ZHPY is using the external data source "X - Customer Reserve 1", it will call this BAdI implementation. For our example, we implement the BAdI method GET_DATA as shown at the next page. Here we call our BRFplus function ZBYA_FUNC_TREE_HAPPY_HOUR and we pass here the condition type, the product id and the time. For the time we just use the current system time. After the BRFplus call, we assign the returned price and the currency to the condition record structure. 8/20

You will see that the BRFplus function ZBYA_FUNC_TREE_HAPPY_HOUR is called via an ID instead of its name. In general, a BRFplus function can be called only by its ID. You can find this ID in the "General" area of the function definition, see screenshot below. method IF_EX_PRC_DATA_SOURCES~GET_DATA. DATA: lo_factory TYPE REF TO IF_FDT_FACTORY, lo_function TYPE REF TO if_fdt_function, lo_context TYPE REF TO if_fdt_context, lo_result TYPE REF TO if_fdt_result, lx_fdt TYPE REF TO cx_fdt, ls_cond_recs type prct_cond_recs, ls_price TYPE if_fdt_types=>element_amount, ls_attr_name_value type prct_attr_name_value, ls_time type syuzeit. FIELD-SYMBOLS: <ls_cond_list> type prct_cond_list, <ls_message> TYPE if_fdt_types=>s_message. * get data from name-value-table read table is_item_wrk-item_attributes with key attr_name = 'PRODUCT' into ls_attr_name_value. check: sy-subrc = 0. * init BRFplus (function ZBYA_FUNC_HAPPY_HOUR has ID B7F17C4D0355592AE10000000A4286AD) lo_factory = cl_fdt_factory=>if_fdt_factory~get_instance( ). lo_function = lo_factory->get_function( iv_id = 'B7F17C4D0355592AE10000000A4286AD' ). * get system time ls_time = sy-uzeit. loop at it_cond_list assigning <ls_cond_list>. move-corresponding <ls_cond_list> to ls_cond_recs. TRY. * call BRFplus function ZBYA_FUNC_HAPPY_HOUR lo_context = lo_function->get_process_context( ). lo_context->set_value( iv_name = 'COND_TYPE' ia_value = ls_cond_recs-kschl ). lo_context->set_value( iv_name = 'TIME' ia_value = ls_time ). lo_context->set_value( iv_name = 'PRODUCT' ia_value = ls_attr_name_valueattr_value ). lo_function->process( EXPORTING io_context = lo_context IMPORTING eo_result = lo_result ). lo_result->get_value( IMPORTING ea_value = ls_price ). CATCH cx_fdt INTO lx_fdt. LOOP AT lx_fdt->mt_message ASSIGNING <ls_message>. WRITE / <ls_message>-text. ENDLOOP. 9/20

ENDTRY. * assign returned price and currency to condition record structure ls_cond_recs-kbetr = ls_price-number. ls_cond_recs-konwa = ls_price-currency. 2.6 Result Now we can test our BRFplus integration. For this purpose, we create a pricing document (e.g. CRM Sales Order) which is using our pricing procedure. Then we add the product for which we created the BRFplus business rule for the happy hour price. In the screenshot below, you can see the debugger and that the passed time is 9:42. In that case the normal price 50 EUR is returned by BRFplus. Now we call pricing again and modify in debugger the variable ls_time by adding a time between 14:00 and 16:00, for example 15:20. 10/20

In that case the happy hour price is returned: 25 EUR. So our Happy Hour example and the BRFplus integration via external data source is working as expected. 11/20

3. Solution with passing an additional attribute 3.1 About this solution approach This chapter wants to show you another solution approach as in the previous chapter. The main idea here is that BRFplus pass an attribute value to the IPC depending on the time. This attribute value is then used for the condition determination by the condition technique. For this solution approach, we want to focus on the other example regarding mobile phone tariffs: Time Costs Tariff 0:00-7:00 30 cents/min Tariff-1 7:00-18:00 50 cents/min Tariff-2 18:00-0:00 40 cents/min Tariff-3 The idea is here that BRFplus is returning the attribute TARIFF with the value 1, 2 or 3 (depending on the time). This attribute TARIFF with its value is passed to the condition technique. The corresponding conditions records could look like this: KSCHL SALES ORG TARIFF KBETR ZTAR SORG1 1 30.. ZTAR SORG1 2 50 ZTAR SORG1 3 40 For the integration between BRFplus and the calling application (e.g. CRM Order) you can use a BAdI, e.g. CRM_COND_COM_BADI. 3.2 Set up of the customizing and master data 1) Go to the Data Dictionary (transaction SE11) and create new data element ZTARIFF or TARIFF in the Data Dictionary (CHAR1): 12/20

2) Add a new field "TARIFF" to the field catalogue with the data type TARIFF: Go to the field catalog: SPRO Customer Relationship Management Basic Functions Pricing Maintain Field Catalog. 3) Create a new condition table with the standard key fields (e.g. sales organization) and add the field TARIFF: Go to SPRO Customer Relationship Management Basic Functions Pricing Create Condition Tables. 4) Create an Access Sequence (e.g. 1MOT) with an Access using this condition table: Go to SPRO Customer Relationship Management Basic Functions Pricing Create Access Sequences. 13/20

5) Create a condition type (e.g. 1MOT) and assign the Access Sequence to it: Go to SPRO Customer Relationship Management Basic Functions Pricing Create Condition Types. 6) Create a Pricing Procedure (e.g. ZMOBT) and add the condition type to it: Go to SPRO Customer Relationship Management Basic Functions Pricing Create Pricing Procedure. 7) Before adding the condition records, we need to create a BAdI implementation for the new data element TARIFF. Here we need an implementation for the BAdI /SAPCND/ROLLNAME. This is BAdI for Field Checks, Default Values, Input Help, etc: Go to SPRO Customer Relationship Management Master Data Conditions and Condition Technique Condition Technique: Basics BAdI for Field Checks, Default Values, Input Help, and so on. Create an BAdI implementation for the data element TARIFF. Further add to methods FIELD_CHECK, DEFAULT_VALUE_SUGGESTION and ATTRIBUTE_CONVERSION this minimum implementation: * by default everything was ok e_was_executed = 'X'. e_result = 0. 14/20

8) Now we can add the condition records. Call transaction /SAPCND/GCM and add three condition records for our condition type with Tariff 1: 30 cents /min Tariff 2: 50 cents /min Tariff 3: 40 cents /min 3.3 Set up of BRFplus 1) Open the BRFplus workbench with the transaction brfplus. 2) Create an application, e.g. ZAPPL_MOBILE_TARIFF. An application is the top-level container for all kinds of different BRFplus objects. All BRFplus objects are assigned to an application 3) Add the required elements needed by the business rule. In our case it is: TIME (DDIC Element: SYUZEIT ) TARIFF (DDIC Element: TARIFF) 4) Create the function ZBYA_FUNC_MOBILE_TARIFF: Mode: Functional Mode Import parameter: Element TIME Export parameter: Element TARIFF 15/20

5) Create the decision table ZBYA_DEC_TAB_MOBILE_TARIFF and add the rules as shown below. 6) Assign the decision table ZBYA_DEC_TAB_MOBILE_TARIFF to the function ZBYA_FUNC_MOBILE_TARIFF. 16/20

At the end, you should have this setup in BRFplus: For testing purpose, you can test your business rule by running a simulation of the function ZBYA_FUNC_MOBILE_TARIFF within the BRFplus workbench. For example if you enter the time 07:01, then the result will be Tariff 2: 17/20

3.4 BAdI CRM_COND_COM_BADI Until now we set up the pricing customizing as well as the condition records. Further we created in BRFplus our business rule regarding the mobile tariff. To bring this together we will create a implementation for BAdI CRM_COND_COM_BADI. This BAdI implementation will call our BRFplus function which will return tariff with value "1", "2" or "3" dependent on the time. This value will be added to the item attribute TARIFF that is passed to the IPC Pricing Engine. Add the following implementation to the method ITEM_NAME_VALUE: method IF_EX_CRM_COND_COM_BADI~ITEM_NAME_VALUE. DATA: ls_iten_name_value TYPE PRCT_ATTR_NAME_VALUE, ls_iten_name_value_new TYPE PRCT_ATTR_NAME_VALUE, ls_time type syuzeit, lo_factory TYPE REF TO IF_FDT_FACTORY, lo_function TYPE REF TO if_fdt_function, lo_context TYPE REF TO if_fdt_context, lo_result TYPE REF TO if_fdt_result, lx_fdt TYPE REF TO cx_fdt, ls_tariff TYPE TARIFF. FIELD-SYMBOLS: <ls_message> TYPE if_fdt_types=>s_message. * Get item attribute TARIFF READ TABLE CT_ITEM_NAME_VALUE INTO ls_iten_name_value WITH KEY ATTR_NAME = 'TARIF F'. check: sy-subrc = 0. ls_iten_name_value_new-attr_name = 'TARIFF'. ls_iten_name_value_new-seq_number = ls_iten_name_value-seq_number. * get system time ls_time = sy-uzeit. 18/20

* Call BRFplus (function ZBYA_FUNC_MOBILE_TARIFF has ID 815BB24D7BE07167E10000000A4 286AF) lo_factory = cl_fdt_factory=>if_fdt_factory~get_instance( ). lo_function = lo_factory- >get_function( iv_id = '815BB24D7BE07167E10000000A4286AF' ). TRY. lo_context = lo_function->get_process_context( ). lo_context->set_value( iv_name = 'TIME' ia_value = ls_time ). lo_function->process( EXPORTING io_context = lo_context IMPORTING eo_result = lo_result ). lo_result->get_value( IMPORTING ea_value = ls_tariff ). CATCH cx_fdt INTO lx_fdt. LOOP AT lx_fdt->mt_message ASSIGNING <ls_message>. WRITE / <ls_message>-text. ENDLOOP. ENDTRY. * Delete old attribute TARIFF and add new one with value from BRFplus DELETE TABLE ct_item_name_value FROM ls_iten_name_value. ls_iten_name_value_new-attr_value = ls_tariff. INSERT ls_iten_name_value_new INTO TABLE ct_item_name_value. endmethod. You can see that here the BRFplus function ZBYA_FUNC_MOBILE_TARIFF is called via an ID instead of its name. In general, a BRFplus function can be called only by its ID. You can find this ID in the "General" area of the function definition, see screenshot below. 19/20

3.5 Result At the end you will have the example as shown in the screenshot below. When creating a pricing document (e.g. CRM Sales Order), then your BAdI implementation ZMOBILE_TARIFF will be called which calls BRFplus and receives a tariff id. This tariff id is passed to the IPC Pricing Engine for the condition determination. 20/20

Enter Title Here: Do not exceed space provided - Title automatically appears in page header 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 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. SAP COMMUNITY NETWORK 2011 SAP AG SDN - sdn.sap.com BPX - bpx.sap.com BOC - boc.sap.com UAC - uac.sap.com