カスタム設定の設定方法/カスタムメタデータの設定方法

By | June 26, 2021

前書き

オワコン化しているリストカスタム設定については扱いません。

本記事において「カスタム設定」は階層型カスタム設定を指します。

カスタム設定を定義する

↓これを作る

表示ラベルAPI参照名データ型
オブジェクト名テストカスタム設定TestCustomSetting__c
項目名テストカスタム項目1 TestCustomField1__cテキスト
項目名テストカスタム項目2 TestCustomField2__c数値
組織のデフォルト標準ユーザ
テストカスタム項目1OWDだよ標準ユーザだよ
テストカスタム項目21234567890

①設定>カスタムコード>カスタム設定から新規の「カスタム設定」を作成

②新規の「カスタム項目」を作成

③「Manage」ボタンから「デフォルトの組織レベルの値」を設定

④ 「Manage」ボタンから”標準ユーザ”プロファイル向けの値を設定

Apexでカスタム設定の値を取得する

「デフォルトの組織レベルの値」を取得する場合

TestCustomSetting__c mc = TestCustomSetting__c.getOrgDefaults();
String teststr = mc.TestCustomField1__c;
Decimal testint = mc.TestCustomField2__c;
system.debug(teststr); //OWDだよ
system.debug(testint); //12345

「特定のプロファイル向けの値」を取得する場合

TestCustomSetting__c  mc = TestCustomSetting__c .getInstance(Profile_ID);
String teststr = mc.TestCustomField1__c;
Decimal testint = mc.TestCustomField2__c;
system.debug(teststr); //標準ユーザだよ
system.debug(testint); //67890

「特定のユーザ向けの値」を取得する場合

TestCustomSetting__c  mc = TestCustomSetting__c .getInstance(User_ID);
String teststr = mc.TestCustomField1__c;
Decimal testint = mc.TestCustomField2__c;
system.debug(teststr);
system.debug(testint);

カスタムメタデータを定義する

↓これを作る

表示ラベルAPI参照名データ型
オブジェクト名テストカスタムメタデータTestCustomMetaDeta__mdt
項目名テストカスタム項目1 TestCustomField1__cテキスト
項目名テストカスタム項目2 TestCustomField2__c数値
表示ラベルテストレコ-ド
テストカスタムメタデータ名TestName
テストカスタム項目1テストテキストだよ
テストカスタム項目212345

①設定>カステムコード>カスタムメタデータ型から新規の「カスタムメタデータ型」を作成する


②新規の「カスタム項目」を作成

画像に alt 属性が指定されていません。ファイル名: image-2.png

③「Manage」ボタンから新規レコードを作成

Apexでカスタムメタデータの値を取得する

通常のレコ-ドと同様にSOQLを利用して値を取得することが可能です。

TestCustomMetaDeta__mdt cmd = [SELECT Id,DeveloperName,TestCustomField1__c,TestCustomField2__c FROM TestCustomMetaDeta__mdt WHERE DeveloperName = 'TestName' LIMIT 1];
String teststr = cmd.TestCustomField1__c;
Decimal testint = cmd.TestCustomField2__c;
system.debug(teststr);
system.debug(testint);