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

マルチ通貨組織の通貨項目のクエリ

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

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

1convertCurrency(field)

以下に例を示します。

1SELECT Id, convertCurrency(AnnualRevenue)
2FROM Account

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

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

1SELECT amount, FORMAT(amount) Amt, convertCurrency(amount) editDate,
2FORMAT(convertCurrency(amount)) convertedCurrency FROM Opportunity where id = <>
3SELECT FORMAT(MIN(closedate)) Amt FROM opportunity

組織で高度な通貨管理を有効にしている場合は、商談、商談品目名、商談履歴の通貨項目を変換するときに期間指定換算レートが使用されます。高度な通貨管理では、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 の商談は返されません。

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 は一緒に使用できません。順序は、レポートの場合と同様に、必ず換算後の通貨の値に基づきます。