Skip to Content
Author's profile photo Former Member

Inner workings of currency conversion functionality in Spend Performance Management 2.1

Starting 2.1 release users can convert currency measures to other currencies at runtime.  Let’s dig a little deeper into this functionality.  In the application currency conversion is done in 2 locations:

  • At load time
  • During report execution

In both cases SPM application is using standard BW mechanism to perform currency conversion.


Currency conversion at load time

When data gets loaded into the inbound layer of the data model the application API’s convert the transaction (document) currency to global (reporting) currency.  Out of the box the SPM application is using the ‘M’ rate type.  But this can be customized to use other rate type.  More details of this are available in OSS note 1278988.

The second variable in currency conversion is the date that needs to be used for looking up the rate and in this case ‘Transaction date’ is used.  Every transaction record (Invoice, Contract, Purchase Order, Budgets & Forecast, External Factor, etc.) has transaction date and this date is mapped to different dates from source depending on the transaction data, to check what date is mapped to transaction date please check the excel sheet “Transaction Data for Spend Performance Management” on service marketplace ( -> Transaction Data for Spend Performance Management).

Data Type

R/3 Table

R/3 Field

Purchase Order







Currency conversion during report execution

Here users can choose their target currency of any measure in the report, once selected the conversion itself is handled by the BW query.  As an example out of the box BW query ‘Spend Analysis Final’ (0ASA_MP01_Q1002) the system uses currency translation type “0SSATGTCUR”.  The details of the currency translation type can be seen using transaction ‘RSCUR’.  Here you will notice that the system is expecting the target currency to be supplied from the application through the variable “SSA_TARGET_CURR”.

Date is the other key component of currency conversion; in this case the value from 0CALDAY is used for looking up the rate.  0CALDAY is mapped to transaction date from the inbound layer.  To display the converted measure in the report the BW system has to perform the currency conversion at the most detail record that is available (for standard reports at the cube level and detail reports at the DSO level) and values are then aggregated to the dimension in the report to display the final values.  As an example if a user executes a report for company code 100, the system has to first gather all the records that make up company code 100 perform the currency conversion for each record then aggregate the data and display it back at company code 100 level.

Below is the sequence of event that takes place for currency conversion.

1. The user executes a report with at least one measure of type currency and specifies a target currency.

2. The application passes this target currency using the variable “SSA_TARGET_CURR”, this can be changed in the application properties (Administration -> Analysis Administration -> Application properties -> Data sources tab -> Data source details -> Currency/Unit tab).

Application Properties -> Data Source

3. The system calls the BW query and for currency conversion the measure marked ‘Local’ is used.

4. This key-figure has the conversion property set to use “0SSATGTCUR”.

Query -> Key-figure Property -> Conversions

5. Looking at the details of this conversion type the system will translate it to the target currency the user selected using the rate specified.

Transaction RSCUR -> 0SSATGTCUR

6. Make sure that in your BW system you have loaded the conversion rates for the rate type “SPM” (or any other rate type you select). You can test this conversion using the function module “CONVERT_TO_LOCAL_CURRENCY”.

Configuring currency conversion in UI

In the UI you notice that measures with different currencies (Global, Local, Document) are not visible.  But using the conversion functionality provided the system allows users to display them, how does this happen you ask?  Here are the details of how to configure this.  Let’s say you are trying to introduce a new measure ‘Spend Tax Amount’ which has three currencies Global, Local, Document.  You add these three currency key-figures to the BW query.  Then in the application set the property of the Local & Document measure to ‘child’ as shown below

Child flag for measure property

and for the Global currency under the ‘Measure Property’ select the local currency and document currency as show below.

Measure properties

When users are building a report all the 3 currency measures are not available but can added to the report when needed with the steps mentioned below

Add Global, Local, Document currency to reports

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member
      Rohit, this is very helpful.
      Question: is the on the fly calculation happening from the amount in reporting currency to calculate the target or from the document currency to target?

      This would determine which currencies need to be included in the currency conversion type SPM to be loaded.
      (eg if I have USD as reporting currency, spend in GBP and I'd like to see this spend in EUR.
      Will SPM need exchange rates from USD to EUR or from GBP to EUR for this on the fly calculation?

      Author's profile photo Former Member
      Former Member
      Blog Post Author
      Good question Jan.  The on the fly conversion measures (local measures) are based on document or transaction currency.  So based on your example the system is looking for GBP -> EUR.  Also these are BW calculated key-figures so you will be able to view the definition using query designer.