You are on page 1of 43

SAP NetWeaver Know-How Network Conference Call

Tips & Tricks for


FOX Formulas in BW-BPS

Marc F. Bernard
Platinum Consultant
SAP NetWeaver RIG Americas
SAP Labs, LLC

Thursday, March 10, 2005


Learning Objectives

 Determine the correct design for a planning function

 Understand how BPS formulas work

 Design formulas the right way

 Resolve performance problems or avoid them in the first place

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 2
How to Design a Planning Function

The following holds for EVERY planning function:


 Define the business scenario for the planning function.
 Determine the proper level i.e. the level of aggregation in the
InfoCube that is needed for the business scenario. You have to
identify the proper characteristics and key figures.
 Write down some sample records in that level.
 Write down how the data records should look like after
executing the planning function.
 Identify the fields in the data records that are changed or used
for calculation by the planning function. These are the fields
to be changed in the planning function.
 Identify the type of planning function (predefined type, formula
(FOX), exit) and configure the planning function.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 3
Example for a Planning Function

Business scenario: You want to copy the amount for each


product from the current year to the next year.

Level: We use an InfoCube with 0PRODUCT and 0FISCYEAR as


characteristics and 0AMOUNT as key figure.

0PRODUCT 0FISCYEAR 0AMOUNT

0001 2010 100 Before


0002 2010 200

0PRODUCT 0FISCYEAR 0AMOUNT

0001 2010 100


0001 2011 100
After
0002 2010 200
0002 2011 200

Field(s) to be changed
SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 4
Planning Functions Subsets: Example

Sample data

records: 0PRODUCT 0FISCYEAR 0AMOUNT

0001 2010 100

0001 2011 100


0002 2010 200
0002 2011 200

Fields to be changed Fields for grouping Number of calls/records


Empty All 4 calls,
one record per call
Year Product 2 calls,
records (1+2) and (3+4)
Product Year 2 calls,
records (1+3) and (2+4)
All Empty 1 call,
all records

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 5
Flowchart for Planning Functions

Start of Execution

Data Selection

Build Subsets from Selected Data

Phase 1 Reference Data

Initialize Function (Add Subsets)

FOREACH Subset.

Phase 2 Execute Function

ENDFOR.

End of Execution

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 6
Types of Generic Functions

BW-BPS provides the following generic planning functions:

Copy Distribute
 Copy  By Key
 Copy to Several Target Objects  By Key from Sender to Receiver
 By Reference Data
 By Reference Data from Sender to
Delete Receiver
 Delete Based on Values
 Delete Invalid Combinations Currency Translation

Unit of Measure Conversion


Revaluation
Forecast

Formulas (FOX)
Repost
 Repost Based on Values
 Repost Characteristic Relationships
Exit Function

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 7
Complexity vs. Functionality

Predefined
Formulas (FOX) Exits
Functions

Complexity, Functionality

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 8
When to Use Formulas (FOX)

 There is no predefined planning function that does the job.

 The task cannot be done in one standard planning function but


several planning functions/sequence are needed.

 The customizing of a standard planning function becomes to


complicated.

Performance:

 Most of the time it is faster to have one fox formula doing the
job than a number of planning functions.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 9
How to Implement Formulas (FOX)

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 10
FOX Formulas Definition

Definition:

Formulas define how transaction data is to be processed in order


to generate plan data. Formula functions enable you to use
extended mathematical functions to calculate plan data.

In addition to different calculation functions, which you can use


for value assignment in formulas, there is also the possibility to
model complex flow structures with the formula language FOX
(FOrmula eXtensions).

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 11
FOX Formulas Basics

How to specify a record in a formula:


 You use { }-operands to access transaction data. Syntax:
{field to be changed 1, field to be changed 2, , field t.b.c. n}
 If "key figure name" is a field to be changed, then each key figure in
a record can be addressed individually.
 If "key figure name" is not in the fields to be changed, then all key
figures of the data record will be changed according to the formula.
 Use F4-help for entering { }-operands.

How to read and write data:


 To read data, put the { }-operand on the right hand side of equations.
 To write data, put the { }-operand on the left hand side of equations.

Do not forget the "." at the end of each statement.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 12
FOX Formulas Help (F1 and F4)

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 13
FOX Formulas Basic Examples

Example 1:

Calculate sales amount from sales quantity and a fixed price


 Field(s) to be changed: Key figure name
 Formula: {0AMOUNT} = {0QUANTITY} * 100.
 Note: If key figure is the only field to be changed, you do not need
the { } brackets: 0AMOUNT = 0QUANTITY * 100.

Example 2:

For each product copy data from the current year (2005) to the
next year (2006)
 Field(s) to be changed: Fiscal Year
 Formula: {2006} = {2005}.
 Note: You do not have to care about the product because of the
subsets ("automatic FOREACH")!

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 14
Some Elements of FOX Formulas

* Comments Working with Local Variables:


 start in the first column of a row and
only have a length of a row DATA varname TYPE typename.
 typename I (Integer) or F (Floating Point) or name of an InfoObject
Using Time Characteristics Using Planning Area Variables:

TMLV( Characteristic, DATA LocalVariable TYPE InfoObject.


Offset ) LocalVariable = VARV('name of global variable').

 offset: to add for example one year Conditional Statements


you would select 1 as offset
IF ELSEIF ENDIF.
 ELSEIF if you want to integrate
All elements are several alternatives
Loop Constructs explained in
documentation IF ELSE ENDIF.
DO ENDDO.  ELSE if no condition mentioned before works

 Needs explicit EXIT Condition Error and Information Messages


MESSAGE Tnnn(class)
FOREACH ENDFOR.
 T = E (Error) or I (Information)
 Ending, if last selected characteristic value or key figure  nnn = Number of message in message class
is reached  class = Customer defined message class

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 15
FOX Formulas Foreach Statement

You have to define a local variable:


DATA year TYPE 0fiscyear.

Use this variable in the Foreach Statement:


FOREACH year.
{year} = {2004} * 1.05.
ENDFOR.

The values for YEAR are taken from the records in the selection of
the planning package.

Assume we have data records for year 2005 and 2006.


First loop: YEAR is replaced with 2005, system calculates
{2005} = {2004} * 1.05.
Second loop: YEAR is replaced with 2006, system calculates
{2006} = {2004} * 1.05.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 16
FOX Formulas Variables
Example of formula using one planning area variable and three local
variables:
DATA ZCURPER TYPE 0FISCPER.
DATA ZFCPER TYPE 0FISCPER.
DATA COUNTER TYPE I.
* Copy current period to the next 5 forecast periods
ZCURPER = VARV('PERCUR').
DO.
COUNTER = COUNTER + 1.
ZFCPER = TMVL(ZCURPER,COUNTER).
{0COPASLQTY,ZFCPER,RFC} = {0COPASLQTY,ZCURPER,ACT}.
IF COUNTER = 5.
EXIT.
ENDIF.
ENDDO.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 17
FOX Formulas How to test

 Create small packages (e.g. 2 records).

 Create layouts for all packages: Put the fields to be changed in


the key columns, the key figures in the data columns, and the
remaining characteristics in the header. The layout looks like a
data record.

 Execute the planning function using the trace ("execute with


trace").

 Send messages with the relevant values.

 Have a look at the details in the system messages.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 18
Execute a Planning Function

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 19
Execute a Planning Function with Trace

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 20
FOX Formulas How to Optimize

The idea is to reduce the complexity of the formula, without


changing the result of the calculation.

Less FOX coding leads to less ABAP coding that the system has
to process and therefore faster execution times.

There are two main targets for optimization:


1. Formula Operands
2. Foreach Loops

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 21
Real-world Example

Fields to be changed:

{ Key figure, Cost Element, Version, Planning Item, Planning Area }

Parameter group:

* Cash Discount = (Base Revenue - Price Adjustment) * 2%

DATA C TYPE 0COSTELMNT.

DATA V TYPE 0VERSION.

DATA P TYPE ZPLANITEM.

FOREACH C,V,P.

{0AMOUNT,0000415001,V,CASHDISC,PA000004} =

( {0AMOUNT,0000400001,V,CUSTSALES,PA000004} -

{0AMOUNT,0000410001,V,PRICADJDIS,PA000004} +

{0AMOUNT,0000405002,V,PRICADJBKT,PA000004} ) * 0.02.

ENDFOR.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 22
Optimization 1: "Fields to be changed"

Find all characteristics that are restricted to only one value in the
formula. This means that the characteristic is NOT being changed
and therefore should be removed from the "fields to be changed".

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 23
Optimization 1: Example

Optimization 1: "Fields to be changed" that are not changed

Remove from "Fields to be changed": Key figure = 0AMOUNT


Remove from "Fields to be changed": Version = V
Remove from "Fields to be changed": Planning Area = 'PA000004'

Fields to be changed:
{ Cost Element, Planning Item }

Parameter group:
* Cash Discount = (Base Revenue - Price Adjustment) * 2%
DATA C TYPE 0COSTELMNT.
DATA P TYPE ZPLANITEM.
FOREACH C,P.
{0000415001,CASHDISC} =
( {0000400001,CUSTSALES} -
{0000410001,PRICADJDIS} +
{0000405002,PRICADJBKT} ) * 0.02.
ENDFOR.
SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 24
Optimization 2: "Formula selection"

Determine the selections i.e. the characteristic combinations that


are changed by the formula and compare it against the planning
level.

There can be several cases:


 Perfect match (best case)
Level selection is equal to the formula selection. The system will
read only data that is actually being changed.
 Level selection is bigger (worst case)
The system will read more data than required by the function.
 Level selection is smaller (error)
The formula potentially generates records that are not part of the
package, which could lead to an error message.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 25
Optimization 2: Example

Optimization 2 A: "Formula selections (excl. reference data)" that are different than
level

Restrict level to formula selection: Key figure


Level:
= 0AMOUNT, ZPRICEADJ, ZUNCOLLAR
Level contains more key
Formula: figures than necessary
= 0AMOUNT

Restrict level to formula selection: Cost Element


Level:
No restriction
Level is not restricted on Cost
Formula: Element but formula changes
= '0000415001' only one Cost Element

Optimization 2 B: "Formula selections (incl. reference data)" that are different than
level
Optimization works same way as 2A but tries to combine two database selections.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 26
Optimization 3: "Conditions"

Optimization 3 A:

If the condition is equal to the level restriction, then the condition


can be removed.

Optimization 3 B:

If there's only one condition it can be merged with the level


selection.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 27
Optimization 4: "Formula operands"

It is not necessary to write to the same result operand several


times. It's also not necessary to read the same reference operand
several times. Instead, the operands should be stored temporarily
using local variables (DATA).

Optimization 4 A:

Based on result data only

Optimization 4 B:

Based on reference data only

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 28
Optimization 4: Example

Fields to be changed:

{ Material, Planning Item }

Parameter group (BEFORE): If there are 1.000 materials,


then TOTALSALES has to be
DATA M TYPE 0MATERIAL.
read and updated 1.000 times
{#,TOTALSALES} = 0.

FOREACH M.

{#,TOTALSALES} = {#,TOTALSALES} + {M,CUSTSALES}.

ENDFOR.

Parameter group (AFTER):

DATA M TYPE 0MATERIAL.


There's only one update of
TOTALSALES independed of
DATA TOTAL TYPE F.
the number of materials
TOTAL = 0.

FOREACH M.

TOTAL = TOTAL + {M,CUSTSALES}.

ENDFOR.

{#,TOTALSALES} = TOTAL.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 29
Optimization 5: "Operands in Foreach Loops"

If an operand is used in an foreach loop but does not depend on


any foreach variable, then the operand is being processed too
often and therefore should be moved before (reference data) or
after (result data) the foreach loop.

Optimization 5 A:

Based on result data only

Optimization 5 B:

Based on reference data only

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 30
Optimization 5: Example
Fields to be changed:
{ Cost Element, Planning Item }

Parameter group (BEFORE):


* Cash Discount = (Base Revenue - Price Adjustment) * 2%
DATA C TYPE 0COSTELMNT. CASHDISC is updated inside
DATA P TYPE ZPLANITEM. the loop although it does not
FOREACH C,P. depend on C or P.
{0000415001,CASHDISC} =
( {0000400001,CUSTSALES} -
The other operands are read
{0000410001,PRICADJDIS} + inside the loop although they
{0000405002,PRICADJBKT} ) * 0.02. don't depend on C or P.
ENDFOR.

Parameter group (AFTER):


{0000415001,CASHDISC} =
( {0000400001,CUSTSALES} -
Ultimately the complete
{0000410001,PRICADJDIS} +
Foreach loop can be
{0000405002,PRICADJBKT} ) * 0.02. removed.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 31
Optimization 6: "Formulas on Multi Planning Areas"

If the formulas is using data of only one planning area but is


defined on a multi area, then the complete formula should be
moved to the single basis planning area.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 32
Optimization 7: "Nested Loops"

Use nested FOREACH statements only if necessary.

Use FOREACH VAR1,VAR2, ..., VARn wherever it is possible.

Example: Records

0PRODUCT 0FISCYEAR 0AMOUNT


0001 2010 10

0002 2011 20
FOREACH product.
FOREACH year.
...
FOREACH product, year.
ENDFOR.
ENDFOR.
ENDFOR.

0PRODUCT 0FISCYEAR 0AMOUNT

0001 2010 10
0PRODUCT 0FISCYEAR 0AMOUNT
0001 2011 0
0002 2010 0 0001 2010 10

0002 2011 20 0002 2011 20

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 33
Optimization 8: "If Statements"

If Statements versus Conditions - when to use which:


 When the logic depends on variables with ranges, several values or
hierarchy nodes (defined on the planning area), then use conditions.
 When using if-statements you only have one parameter group and
thus only one formula. Therefore the formula is easier to understand.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 34
Tip 9: "Naming Conventions"

Use naming conventions for local FOX variables, e.g.:


 CHA_ for characteristics,
 KYF_ for key figure values,
 VAR_ for global (BPS) variables,
 ATR_... for attributes,
 INT_ for integer numbers,
 DAT_... for dates,
 TIM_... for times.

Add comments to the formula.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 35
Tip 9: Example
Fields to be changed:
{ Key figure name, Posting period, Version }

* Posting period and total amount


DATA CHA_0FISCPER3 TYPE 0FISCPER3.
DATA KYF_TOTAL TYPE F.
* BPS version (via variable)
DATA VAR_ZBPSVER TYPE 0VERSION.
* Actual period (attribute of BPS version)
DATA ATR_ZACTPER TYPE 0FISCPER3.
* Get actual period from BPS version (via variable)
VAR_ZBPSVER = VARV( 'ZBPSVER' ).
ATR_ZACTPER = ATRV( 'ZACTPER', VAR_ZBPSVER ).
* Get total to be distributed greater than actual period
KYF_TOTAL = 0.
FOREACH CHA_0FISCPER3.
IF CHA_0FISCPER3 > ATR_ZACTPER.
KYF_TOTAL = KYF_TOTAL + {0AMOUNT,CHA_0FISCPER3,VAR_ZBPSVER}.
ENDIF.
ENDFOR.
SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 36
Tip 10: "Reference Data"

If you set a local variable for a characteristic using TMVL, ATRV,


or ATRVT and use this variable in a reference data operand (right
side of formula), then the system ignores any restrictions for this
characteristic when reading the reference data form the database.

This can lead to major performance problems! Check the BPS


statistics for very long database selection for reference data.

Check that SAP note 729362 is implemented (or BW 3.5 SP 2).


However, there's no easy workaround.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 37
Tip 10: Example
Fields to be changed:

{ Company, Version }

* Company Business Case: Copy data


into a target version and each
DATA CHA_0COMPANY TYPE 0COMPANY.
company potentially has a
* Source version (attribute of company) different source version.
DATA ATR_SVERSION TYPE SVERSION.

* Target version (variable)

DATA VAR_TVERSION TYPE 0VERSION.


Source version is set via attribute
(ATRV) and then used in operand
* Get target version from variable to read reference data.
VAR_TVERSION = VARV( 'TVERSION' ).  System will read ALL
versions since it can't know
which ones would be required!
* Copy data from source to target version

FOREACH CHA_0COMPANY.

ATR_SVERSION = ATRV( 'SVERSION', CHA_0COMPANY ).

{CHA_0COMPANY,VAR_TVERSION} = {CHA_0COMPANY,ATR_SVERSION} .

ENDFOR.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 38
Tip 11: "Endless Loops"

Save the formula before testing! Otherwise you loose your work if
the program goes into an endless loop and you have to stop the
program.

To stop a session after having programmed an "endless loop" (for


example a do loop without exit statement), select "Stop Session"
from the SAPGUI system menu or go to transaction SM50 and
choose Program/Mode  Program  Cancel.

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 39
Tip 12: "Performance Analysis"

Always do a performance analysis before you start optimizing.

Use various statistics to determine the cause of performance


issues:
 BPS Statistics (transaction BPS_STAT0)
 BW Statistics (table RSDDSTAT)
 SQL Trace (transaction ST05)
 ABAP Performance Trace (transaction SE30)
 Workload Statistic (transaction STAD)

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 40
Key Learnings

 Follow the steps on "how to design a planning function"

 Use subsets to your advantage

 Remember the tips for implementing and optimizing FOX


formulas

 Always determine the root cause first before starting to


optimize

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 41
Copyright 2005 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, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.
 IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP,
Intelligent Miner, WebSphere, Netfinity, Tivoli, and Informix are trademarks or registered trademarks of IBM Corporation 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.
 MaxDB is a trademark of MySQL AB, Sweden.
 SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver 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 in several other countries all over the world. 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.

 The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose
without the express prior written permission of SAP AG.
 This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended
strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product
strategy, and/or development. Please note that this document is subject to change and may be changed by SAP at any time without notice.
 SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics,
links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited
to the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
 SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of
these materials. This limitation shall not apply in cases of intent or gross negligence.
 The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of
hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web
pages

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 42
Copyright 2005 SAP AG. Alle Rechte vorbehalten
 Weitergabe und Vervielfltigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher Form auch immer, ohne die ausdrckliche
schriftliche Genehmigung durch SAP AG nicht gestattet. In dieser Publikation enthaltene Informationen knnen ohne vorherige Ankndigung gendert werden.
 Die von SAP AG oder deren Vertriebsfirmen angebotenen Softwareprodukte knnen Softwarekomponenten auch anderer Softwarehersteller enthalten.
 Microsoft, Windows, Outlook, und PowerPoint sind eingetragene Marken der Microsoft Corporation.
 IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP,
Intelligent Miner, WebSphere, Netfinity, Tivoli, und Informix sind Marken oder eingetragene Marken der IBM Corporation in den USA und/oder anderen Lndern.
 Oracle ist eine eingetragene Marke der Oracle Corporation.
 UNIX, X/Open, OSF/1, und Motif sind eingetragene Marken der Open Group.
 Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, und MultiWin sind Marken oder eingetragene Marken von Citrix Systems, Inc.
 HTML, XML, XHTML und W3C sind Marken oder eingetragene Marken des W3C, World Wide Web Consortium, Massachusetts Institute of Technology.
 Java ist eine eingetragene Marke von Sun Microsystems, Inc.
 JavaScript ist eine eingetragene Marke der Sun Microsystems, Inc., verwendet unter der Lizenz der von Netscape entwickelten und implementierten
Technologie.
 MaxDB ist eine Marke von MySQL AB, Schweden.
 SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver und weitere im Text erwhnte SAP-Produkte und -Dienstleistungen sowie die entsprechenden
Logos sind Marken oder eingetragene Marken der SAP AG in Deutschland und anderen Lndern weltweit. Alle anderen Namen von Produkten und
Dienstleistungen sind Marken der jeweiligen Firmen. Die Angaben im Text sind unverbindlich und dienen lediglich zu Informationszwecken. Produkte knnen
lnderspezifische Unterschiede aufweisen.

 The information in this document is proprietary to SAP. No part of this document may be reproduced, copied, or transmitted in any form or for any purpose
without the express prior written permission of SAP AG.
 This document is a preliminary version and not subject to your license agreement or any other agreement with SAP. This document contains only intended
strategies, developments, and functionalities of the SAP product and is not intended to be binding upon SAP to any particular course of business, product
strategy, and/or development. Please note that this document is subject to change and may be changed by SAP at any time without notice.
 SAP assumes no responsibility for errors or omissions in this document. SAP does not warrant the accuracy or completeness of the information, text, graphics,
links, or other items contained within this material. This document is provided without a warranty of any kind, either express or implied, including but not limited to
the implied warranties of merchantability, fitness for a particular purpose, or non-infringement.
 SAP shall have no liability for damages of any kind including without limitation direct, special, indirect, or consequential damages that may result from the use of
these materials. This limitation shall not apply in cases of intent or gross negligence.
 The statutory liability for personal injury and defective products is not affected. SAP has no control over the information that you may access through the use of
hot links contained in these materials and does not endorse your use of third-party Web pages nor provide any warranty whatsoever relating to third-party Web
pages

SAP AG 2005, Tips & Tricks for FOX Formulas in BW-BPS, Marc F. Bernard / 43

You might also like