Dec12th

カスタム設定 アクセス

Top / カスタム設定 アクセス

カスタム設定には、数式項目、入力規則、Apex、および SOAP API からアクセスできます。サンプルコードの一部を次に示します。

数式項目:

数式項目は階層カスタム設定でのみ機能し、リストカスタム設定には使用できません。詳細はCreating On-Demand Applications: An Introduction to the Force.com Platformを参照してください。
{!$Setup.CustomSettingName__c.CustomFieldName__c}

Apex:

Apex はどちらのカスタム設定にもアクセスできます。

メモ
カスタム設定の [プライバシー] が [保護] に設定されていて、そのカスタム設定が管理パッケージに含まれている場合、
登録側組織は Apex を使用して値を編集したり、アクセスしたりすることができません。

すべてのカスタム設定方法および Apex についての詳細は、Force.com Apex コード開発者ガイドを参照してください。

リストカスタム設定のサンプル:

カスタム設定のデータを追加する場合は、各データセットに名前を付ける必要があります。

このデータセット名によって、各データセットを区別できます。
次の例では、カスタム設定データの対応付けが返されます。getAll メソッドは、リスト設定に関連付けられているすべてのカスタム項目の値を返します。

Map<String_dataset_name, CustomSettingName__c> mcs = CustomSettingName__c.getAll();

次の例では、指定したデータセットに関連付けられているすべての項目値を返す getValues メソッドを使用します。
このメソッドは、異なるパラメータを使用して、リストと階層のどちらのカスタム設定でも使用できます。
CustomSettingName__c mc = CustomSettingName__c.getValues(data_set_name);

階層カスタム設定のサンプル:

次の例では、組織レベルのデータセット値を返す getOrgDefaults メソッドを使用します。
CustomSettingName__c mc = CustomSettingName__c.getOrgDefaults();
次の例では、指定したプロファイルのデータセット値を返す getInstance メソッドを使用します。getInstance メソッドは、ユーザ ID で使用することもできます。

CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID);

SOAP API
[プライバシー] が [公開] に定義されているカスタム設定は、カスタムオブジェクトが公開されるのと同じ様に API に公開されます。

メモ
[プライバシー] が [保護] に設定されていて、そのカスタム設定が管理パッケージに含まれている場合、開発側組織と登録側組織のどちらも Apex を使用してカスタム設定にアクセスすることはできません。

クエリまたはプロファイル権限設定操作を実行するには、任意のツールと API アクセスを使用します。詳細については、SOAP API Developer's Guideを参照してください。

メモ
カスタム設定データには、Standard Object Query Language (SOQL) クエリを使ってアクセスできますが、この方法はアプリケーションキャッシュを活用しません。カスタムオブジェクトの問い合わせに類似しています。