この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

convertCurrency()

通貨項目をユーザの通貨に変換するには、SOQL クエリの SELECT ステートメントで convertCurrency() を使用します。このアクションを使用するには、組織でマルチ通貨が有効化されている必要があります。

SELECT 句で convertCurrency() を使用するには、次の構文を使用します。

1convertCurrency(field)

次に例を示します。

1SELECT Id, convertCurrency(AnnualRevenue)
2FROM Account

ユーザの地域に従って通貨の書式を設定するには、SELECT() ステートメントで FORMAT() を使用します。この例では、convertedCurrency は返される金額の別名です。ユーザインターフェースでは適切な書式で表示されます。

1SELECT Amount, FORMAT(amount) Amt, convertCurrency(amount) convertedAmount,
2FORMAT(convertCurrency(amount)) convertedCurrency FROM Opportunity where id = '006R00000024gDtIAI'

組織で高度な通貨管理を有効にしている場合は、商談、商談品目名、商談履歴の通貨項目を変換するときに期間指定換算レートが使用されます。高度な通貨管理では、convertCurrency は特定の項目 ([CloseDate on opportunities] など) に対応する換算レートを使用します。高度な通貨管理が有効になっていない場合は、入力された最新の換算日が使用されます。

考慮事項と回避策

convertCurrency() 関数は WHERE 句では使用できません。使用すると、エラーが返されます。組織の有効な通貨からユーザの通貨に数値を換算するには、次の構文を使用します。

1WHERE Object_name Operator ISO_CODEvalue
次に例を示します。
1SELECT Id, Name
2FROM Opportunity
3WHERE Amount > USD5000

この例では、レコードの通貨の Amount 値が USD 5000 相当より大きい場合、商談レコードが返されます。たとえば、金額が USD5001 の商談は返されますが JPY7000 の商談は返されません。

組織で有効になっている、アクティブな ISO コードを使用してください。ISO コードを入力しないと、比較金額の代わりに数値が使用されます。前の例を使用すると、JPY5001EUR5001USD5001 の商談レコードが返されます。WHERE 句で IN を使用する場合は、ISO コード値と ISO 以外のコード値を混在させて使用できません。

convertCurrency() 関数をコールして集計関数の結果をユーザの通貨に換算することはできません。クエリに GROUP BY または HAVING 句が含まれる場合、SUM()MAX() などの集計関数を使用して返される通貨データは、組織のデフォルトの通貨で表示されます。

次に例を示します。

1SELECT Name, MAX(Amount)
2FROM Opportunity
3GROUP BY Name
4HAVING MAX(Amount) > 10000

集計関数を使用するときには、USD などの特定の通貨で値を表すために ISO_CODEvalue を使用することはできません。たとえば、次のクエリは機能しません。

1SELECT Name, MAX(Amount)
2FROM Opportunity
3GROUP BY Name
4HAVING MAX(Amount) > USD10000

convertCurrency() と ORDER BY は一緒に使用できません。順序は、レポートの場合と同様に、必ず換算後の通貨の値に基づきます。