Skip to Content
Author's profile photo Martin Grob

FX Rates & Currency Exchange in #SAP #BW

Introduction

SourceSystems usually contain amounts in various currencies which need to be translated for reporting. Every exchange is based on the same premises, the determination of an fx exchange rate and the definition of an currency translation type.

From a business users view

Exchange rates/Currency translation ratios

To exchange currencies there is a exchange rate respective a currency translation ratio necessary.  Exchange rates are related to a exchange rate type meaning each exchange rate is stored to one or more exchange rate types which allows to translate by the bid rate, ask rate or middle rate.

Exchange rate types  are stored in table TCURV and can be maintained through transaction OB07. Exchange rates can be stored based on exchange rate types as exchange rates or inverse exchange rates.

/wp-content/uploads/2013/10/index_297776.jpg

Maintain exchange rate types

Currency Exchange Rates

Can be maintained as a direct or indirect quotation. An indirect quotation expresses foreign currency per unit to the reporting currency. 

The direct quotation is the opposite, reporting currency per unit to foreign currency.   To maintain this transaction OB08

/wp-content/uploads/2013/10/ob08_297778.png

Maintain exchange rates

Maintain currency translation ratios

Currency translation ratios are used to exchange certain currency combinations to derive another currency. This requires a common currency to pair.

This allows to reduce the number of combination of currency exchange rates to be maintained. Maintain this in transaction OBBS.

define currency translation.jpg

Maintain currency translation ratios

From a BW developer view

Currency conversion type

Depending on the situation you need a different currency conversion types to exchange currencies. Which fx rate is used is dependend on the source currency, the target currency, the exchange rate types and the time reference.  In what form these parameter are determiend lies in the currency conversion type.  This is done in transaction RSCUR within BW.

  1. Select Exchange Rate type which is the key that defines exchange rates in the system.
  2. Select Source currency that needs to be converted
  3. Target currency which it gets translated to
  4. Select Time Reference (this can either be fixed or variable and if the time referenced is fixed the time which the exchange rate is determined is independent of the date. If it’s variable the time is determined by a time characteristic value.

Bildschirmfoto 2013-10-15 um 20.22.43.jpg

Maintain a conversion type

Exchange Rate Type

This setting determines to what exchange rate type the exchange shall happen. This can either be done though a fixed exchange rate type or an InfoObject.

This required that the attribute 0RATE_TYPE is present. At the time of the exchange, during the query runtime, this InfoObject which contains the exchange rate type must be present.

Source Currency

Determines which exchange rate is underlying this can either be in the datarecord of the amount or can come from a specific InfoObject. If business content is uses all keyfigures are installed with the correct units. Even if generic datasources are used. In this case the corresponding currency field is stored in the datarecord.  In some cases keyfigures are delivered to bw without a currency which makes a currency exchange impossible. A possibility to determine the source currency can be through a infoobject characteristic.  For example country US will have the currency USD. 

As a prerequisite to derive this the used InfoObject needs to contain the necessary masterdata. The attribute needs to be defined as a currency attribute. (each infoobject can only have one)

Target Currency

– Target currency can be derived on 3 different ways. Determining the target currency at the time of analysis is the most common way. The target currency is choosen at this time.
– A fixed target currency determines the target currency for the corresponding currency conversion type. This is useful if currency translation is done during staging of the data where there is no interaction with a user.

– Deriving the target currency through an infoobject can also be done the same way as for a source currency.

Time Reference

As fx rates change over time all fx rates are related to a valid time frame. To do a currency conversion a key date needs to be derived. This is either done with a variable or a fixed key date.

The variable key date is dependent on a date that  is derived from a standard infoobject  or a special infobject.

Assigned Tags

      21 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Former Member
      Former Member

      Thanks for Sharing Martin   🙂

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      you're welcome

      Author's profile photo Former Member
      Former Member

      thanks for sharing this.

      Regards

      Manna

      Author's profile photo Former Member
      Former Member

      Good work.

      Regards,

      Sushant

      Author's profile photo Former Member
      Former Member

      Nice blog.. 🙂 we dont use tcode UB07/08 so frequently, just run program to update exchange rate from R3.

      Regards

      Shabnam

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      Of course this is how you get the exchanges rates normally to bw. I just also wanted to show how they get there 🙂 thanks for your comments!

      Martin

      Author's profile photo Krishna Chaitanya
      Krishna Chaitanya

      Hi Martin

      Nice blog thanks for sharing.. Good work.  🙂

      Regards,

      Krishna Chaitanya

      Author's profile photo Modadugu Hemanth Kumar
      Modadugu Hemanth Kumar

      Useful blog...

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      thanks glad you like it

      Author's profile photo Eduardo Rezende
      Eduardo Rezende

      Good blog.
      Thanks for sharing.

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      Thanks

      Author's profile photo Former Member
      Former Member

      One useful piece of information Martin.

      Could extend to part 2 with information on, what are the tables read in BW to perform currency translation and the significance of tables TCURF and TCURR.

      Br, Harish

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      Hi Harish

      Thanks for your input I will consider it and make an update or part two.

      Martin

      Author's profile photo Former Member
      Former Member

      Hi Martin,

      Nice blog. Thanks for sharing....

      So much informative.... 🙂 🙂 🙂 🙂 🙂 🙂

      BR

      Aakash G

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      thanks

      Author's profile photo Former Member
      Former Member

      Great Information !!

      Thanx...

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      you're welcome..

      Author's profile photo Former Member
      Former Member

      Hi Martin,

      thanks for sharing this very useful and valuable Information about the common currency topic.

      One question: If I want to use the statistic exchange rate of the sales doc. (VBAP-STCUR -> 2LIS_11_VAITM-STCUR) instead of the exchange rate from TCURR, what should I do to use the statistic exchange rate for the currency exchange between the DSO (Sales Doc. item) and the Cube (e.g. 0SD_C03)

      Thanks and regards,

      Michael

      Author's profile photo Martin Grob
      Martin Grob
      Blog Post Author

      Hi Michael

      thanks for your comments

      I'll have a look at this tomorrow when I'm in front of a BW 🙂

      Martin

      Author's profile photo Satendra Mishra
      Satendra Mishra

      Very Nicely Explained 🙂

      Regards

      SM

      Author's profile photo Former Member
      Former Member

      Good Doc Martin..!