SAP ABAP CDS View
の機能currency_conversion
は、CDS(Core Data Services)ビューで通貨換算を行うための機能です。SAP システムでは、レポートや分析で一貫した通貨金額を表示するために、異なる通貨間の換算が必要になることがよくあります。currency_conversion
関数を使用すると、CDS ビューで通貨換算ルールを定義し、クエリ結果で値をある通貨から別の通貨に変換できます。これは、複数の国または複数通貨のビジネス環境で役立ちます。
currency_conversion
関数の構文は次のとおりです。
currency_conversion(
amount = source_amount,
source_cur = source_currency,
target_cur = target_currency,
validitydate = date,
factor = factor_type,
decimal = rounding_mode
) as converted_amount
これらのパラメータの意味と機能について詳しく説明します。
-
source_amount
: 通貨換算が必要な元の金額。CDS ビューのフィールドまたは定数値にすることができます。 -
source_currency
: 元の金額の通貨コード。CDS ビューのフィールドまたは定数値にすることができます。 -
target_currency
: 金額を換算する先の通貨であるターゲット通貨コード。CDS ビューのフィールドまたは定数値にすることができます。 -
validitydate
: 換算レートの発効日を指定するオプションのパラメータ。このパラメータが指定されていない場合、システムは現在の日付を使用します。 -
factor_type
: 換算に使用する為替レート係数のタイプを指定するオプションのパラメータ。たとえば、平均レート、月末レート、年間レートなどの使用を選択できます。このパラメータが指定されていない場合、システムはデフォルトの為替レート タイプを使用します。 -
rounding_mode
: 換算された金額を四捨五入する方法を指定するオプションのパラメーター。たとえば、丸めや切り捨てを指定できます。このパラメータが指定されていない場合、システムはデフォルトの丸め方法を使用します。 -
converted_amount
: 結果として、この名前は変換された量を保存するために使用され、これは CDS ビューの一部となり、クエリ結果で返されます。
ここで、例を通して関数の使用法と効果を説明しましょうcurrency_conversion
。SalesOrder
注文金額や注文通貨などの販売注文に関する情報を表示する CDS という名前の CDS ビューを含む SAP システムがあるとします。注文金額を注文通貨から現地通貨に変換して、注文金額を現地通貨で表示できるようにしたいと考えています。
次のデータがあるとします。
注文番号 | 注文金額 | 注文通貨 |
---|---|---|
1001 | 1000 | 米ドル |
1002 | 1500 | ユーロ |
1003 | 2000年 | 英ポンド |
これらの注文金額を現地通貨に変換し (現地通貨は CNY であると仮定します)、換算レートは 1 USD = 6.5 CNY、1 EUR = 7.8 CNY、1 GBP = 8.5 CNY であると仮定します。
まず、 CDS ビューでcurrency_conversion
通貨換算の関数を使用するには、次のようにビューを定義します。
@AbapCatalog.sqlViewName: 'ZSALESORDER'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Sales Order View'
define view ZSalesOrder as select from sflights as flights {
key flights.carrid,
key flights.connid,
flights.fldate,
currency_conversion(
amount = flights.price,
source_cur = flights.currency,
target_cur = 'CNY',
validitydate = flights.fldate
) as local_amount
} where flights.price is not null;
上記の CDS ビューでは、テーブル内のフィールド(OrderAmount) をフィールド (OrderCurrency) から現地通貨に変換するcurrency_conversion
関数を使用し、その結果を という名前の新しいフィールドに保存しました。flights
price
currency
CNY
local_amount
ここで、この CDS ビューにクエリを実行すると、次のようになります。
select carrid, connid, fldate, price, currency, local_amount
from ZSalesOrder;
クエリの結果は次のようになります。
キャリー | 冷酷な | フラデート | 価格 | 通貨 | ローカル金額 |
---|---|---|---|---|---|
AA | 0017 | 2023-01-12 | 1000 | 米ドル | 6500 |
左側 | 0400 | 2023-02-28 | 1500 | ユーロ | 11700 |
BA | 0080 | 2023-03-15 | 2000年 | 英ポンド | 17000 |
クエリ結果のフィールドには、local_amount
対応する為替レートを使用して変換された現地通貨 (CNY) での注文金額の値が表示されます。たとえば、最初の行の注文金額は USD から CNY に変換され、結果は 6500 CNY になります。
要約する
SAP ABAP CDS View
このcurrency_conversion
関数は、CDS ビューで柔軟な通貨換算ルールを定義できる強力な通貨換算ツールであり、複数通貨環境でのデータの正確な表示を保証します。機能を賢明に使用することでcurrency_conversion
、企業は複数国のビジネスをより適切に管理し、レポートや分析で一貫した通貨金額を取得できます。