問題
階層カスタム設定は、Salesforceの各プロファイルの特定のURLを保存します。
開発者は、どのステートメントを使用して現在のユーザーのプロファイルの正しいURLを取得し、このVisualforceページを表示できますか。
- {!$Setup.Url_Settings__c.Instance[Profile.Id].URL__c}
- {!$Setup.Url_Settings__c.URL__c}
- {!$Setup.Url_Settings__c.[Profile.Id].URL__c}
- {!$Setup.Url_Settings__c.[$Profile.Id].URL__c}
正解
- {!$Setup.Url_Settings__c.Instance[Profile.Id].URL__c}
- {!$Setup.Url_Settings__c.URL__c}
- {!$Setup.Url_Settings__c.[Profile.Id].URL__c}
- {!$Setup.Url_Settings__c.[$Profile.Id].URL__c}
解説
Salesforceの階層カスタム設定は、組織全体のデフォルト値や特定のプロファイル、またはユーザーごとの値を保存するためのものです。これにより、組織全体や特定のユーザー・プロファイルに対して異なる設定値を持つことができます。
Visualforceページから階層カスタム設定の値にアクセスする場合、以下の形式で参照します:
{!$Setup.CustomSettingName__c.FieldName__c}
$Setup
- SalesforceのVisualforceページやApexコードで使用されるグローバル変数です。
- 階層型カスタム設定やリスト型カスタム設定のデータにアクセスできます。
- この変数を使用すると、現在のユーザーに基づいた適切な階層カスタム設定の値が返されます。
{! ... }
- Visualforceページ内で使用されるマージ式です。
- Apexコードの変数やメソッド、またはSalesforceのグローバル変数の値をページ上に表示させることができます。
- 内容は動的に評価され、実際の値に変換されてページ上に表示されます。
CustomSettingName__c
- 階層型カスタム設定のAPI名を指します。
FieldName__c
- 階層型カスタム設定のAPI名を指します。
[]
やその他の構文は、Visualforceページで階層カスタム設定にアクセスする際には使用されません。正確なアクセス方法はドット(.
)を使用してカスタム設定名とフィールド名を指定します。
それぞれの選択肢の理由について説明します。
□ {!$Setup.Url_Settings__c.Instance[Profile.Id].URL__c}
これは不正解です。Salesforceの階層型カスタム設定ではInstance
や[Profile.Id]
といった構文は使用しません。
□ {!$Setup.Url_Settings__c.URL__c}
これは正解です。階層型カスタム設定をVisualforceページ上で参照する正しい構文は{!$Setup.CustomSettingName__c.FieldName__c}
形式です。この場合、Url_Settings__c
はカスタム設定のAPI名、URL__c
はフィールドのAPI名となります。
□ {!$Setup.Url_Settings__c.[Profile.Id].URL__c}
これは不正解です。[Profile.Id]
は階層型カスタム設定を参照する際の正しい構文ではありません。
□ {!$Setup.Url_Settings__c.[$Profile.Id].URL__c}
これは不正解です。$Profile.Id
のような変数にアクセスする正しい文法では[]
は使用されません。さらに、$Profile
というグローバル変数は存在しないため、この構文を使用しても期待する値を取得することはできません。
コメント