カスタム設定を作成して取得してみる

カスタム設定、というカスタムオブジェクトの一種でSOQLいらずでもっと手軽に扱える カスタム設定 とうものを知ったので、
作り方から使い方を調べてみた。

カスタム設定はカスタムオブジェクトと類似しており、アプリケーション開発者は、カスタムデータセットの作成の他に、組織、プロファイル、または特定のユーザに対しカスタムデータを作成して関連付けることができます。
https://help.salesforce.com/HTViewHelpDoc?id=cs_about.htm&language=ja

今回は全体で使用する、環境変数、としてカスタム設定を作成してみた。

作成

[開発] → [カスタム設定] にアクセス。
まずは新規でカスタム設定、を作る。
オブジェクトのようなもの。

今回は以下のように作成した。

項目 内容
表示ラベル 環境変数
オブジェクト名 EnvironmentVars
設定種別 リスト
表示 公開
説明

設定種別は、リスト、と、階層、があり、
階層、は、ユーザーやプロファイルごとに同じ項目で違う値を設定したり出来るよう。
どのユーザーが使用しているかによって変数の値を変更できるようになるので、
そういうことを実現したい時に便利っぽい。
今回は全員同じにしたいので、リスト、にしておいた。

また、表示、は、公開・保護、とある。
公開、だとSOAP APIでも取得できるようになったり、とオープンな状態?になるよう。
特に秘匿する内容でもないので、公開、にしておいた。

次に作成したカスタム設定内にカスタム項目を追加する。
作成したカスタム設定から、新規、をクリック。

通常の項目作成と同じ流れで、型を選択し、内容を埋めていく。
今回は以下のように作成した。
目的としては、SitesのURLを環境変数として持っておくためのもの。

項目 内容
型 テキスト
項目の表示ラベル Sites
文字数 255
項目名 Sites
説明、など

ここまででオブジェクトと項目が作成出来たので、実際にデータを入れていく。
作成したカスタム設定のManegeをクリック。

リストが表示されるので、新規、をクリック。

内容を記入して保存。

取得

作成したデータをApexで取得する。

前述の通り、取得の際にはSOQLを発行する必要がなく、以下のようにメソッドレベルで取得可能。

1
2
3
4
5
6
Map<String, EnvironmentVars__c> settingMap = EnvironmentVars__c.getAll();

for (String key : settingMap.keySet()) {
    EnvironmentVars__c env = settingMap.get(key);
    System.debug('**DEBUG** ' key + ' / ' + env.SitesURL__c);
}

まとめ

SOQLを発行しないので、ガバナ的にも優しく、内容はキャッシュされるので動作も高速。
環境変数のように決まった値であれば便利に使えるかもしれない。

参考

カスタム設定へのアクセス
Salesforce Apex カスタム設定 | odekakeshimasyo.io

   このエントリーをはてなブックマークに追加