1.はじめに
今回はカスタム設定の使用方法について実際に設定して使用方法を記録したいと思います。
実際に動かしてみたときにどのような動きになるのかなどを確認したい場合に参考になればと思います。
2.カスタム設定を設定する
クイック検索ボックスに”カスタム設定”と入力し、カスタム設定の画面にて[新規]を押下します。

「表示ラベル」、「オブジェクト名」を入力し、[押下]を押します。
カスタム設定はカスタムオブジェクトのようなものと認識しても大丈夫なので、表示ラベルはオブジェクトの名前、オブジェクト名はオブジェクトのAPI参照名くらいに考えてもらえれば大丈夫です。

今回はApex処理の判定値をカスタム設定に持たせるようにしようと思うので、以下のように名前を付けてみました。設定されていることを確認し、今度は項目を作成したいので、カスタム項目の[新規]を押下してください。

カスタム項目を作成するのと同じ要領で項目の設定をしていきます。



項目が作成できました。次に作成した項目に実際に値を設定します。[Manage]を押下します。

今回はまず組織全体の値を設定するので、上部にある[新規]を押下します。

設定したい値を入力し、[保存]を押下します。
今回はドメインがoutlook.jpとなっているメールを社内メールとして判定するために使用するので、以下のように設定しました。

値が設定されていることを確認します。

続いて実際にカスタム設定を使用する処理をApexクラスに記述します。
今回は以下の記事で使用していたメールサービスで使用しているApexに分岐処理を追加します。

// カスタム設定の取得
ApexDecisionValue__c apexDecisionValue = ApexDecisionValue__c.getInstance();
// メールドメインを判定してメール区分を設定
if (email.fromAddress.split('@')[1] == apexDecisionValue.InternalMailDomain__c) {
newCase.MailCategory__c = '社内';
}else {
newCase.MailCategory__c = '外部';
カスタム設定の値をApex内で使用する準備ができました。動作確認をします。

黒塗りになっていますが、差出人はoutlook.jpドメインなので、今回は”社内”となるはずです。

上記の通り、ケースが作成され、”社内”が設定されていることが確認できました。
続いて、カスタム設定をユーザーに対して設定してみて、動作確認をしてみます。
カスタム設定の以下の多面で、今度は下部の[新規]を押下します。

カスタム設定を適用したいユーザーを選択し、設定値を入力します。
今回は、特定のユーザーに関してはgmail.comから受信したメールを社内メールとして判定するようにしてみます。


準備が完了したので動作確認をしてみます。再度同じoutlook.jpのアドレスから送信してみるので、今回はユーザーに設定したカスタム設定が適用されて”外部”が設定されるはずです。


上記の通り、ケースが作成され”外部”が設定されていることが確認できました。
3.最後に
カスタム設定の設定と動作確認をしました。動きとしてはカスタムオブジェクトと同じようですが、今回実施したように同じ項目でもユーザーによって異なる値が参照されるように設定できたり、キャッシュを使用するので効率的だったりします。簡単に設定できるので、ぜひ使ってみてください。
一応、上限は設定されているので注意です。

カスタムメタデータ型についての記事はこちら