この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

カスタム設定

カスタム設定はカスタムオブジェクトに類似しています。アプリケーション開発者は、カスタムデータセットを作成したり、組織、プロファイル、または特定のユーザのカスタムデータを関連付けたりできます。すべてのカスタム設定データはアプリケーションキャッシュで公開されます。これにより、データベースへのクエリを繰り返し行うコストをかけずに、効率的なアクセスを実現します。これで、数式項目、入力規則、フロー、Apex、SOAP API でこのデータを使用できます。

保護対象としてマークされ、管理パッケージの一部として登録者組織にインストールされているカスタム設定にのみ保護が適用されます。それ以外の設定は、公開カスタム設定として処理され、ゲストユーザも含めてすべてのプロファイルで参照可能です。秘密情報、個人を特定できる情報、または非公開データは、これらの設定には保存しないでください。保護されたカスタム設定は、管理パッケージ内でのみ使用してください。管理パッケージの外部では、指定ログイン情報または暗号化されたカスタム項目を使用して、OAuth トークンやパスワードなどの他の機密情報を保存してください。

警告

カスタム設定データは Sandbox コピーに含まれますが、Apex テストの分離を目的とするデータとして処理されます。組織の既存のカスタム設定データを表示するには、Apex テストで SeeAllData=true を使用する必要があります。テスト設定で必要とされるカスタム設定データを作成することをお勧めします。

メモ

次の 2 種類のカスタム設定があります。
リストカスタム設定
組織全体からアクセスできる再使用可能な静的データセットを提供するカスタム設定の種類。アプリケーション内で特定のデータセットを頻繁に使用する場合は、そのデータをリストカスタム設定に含めることにより、アクセスが簡素化されます。リスト設定に含まれるデータが、プロファイルやユーザごとに異なるということはなく、組織全体で利用できます。リストデータの例には、2 文字の州の省略名、国際電話の発信番号、製品のカタログ番号などがあります。データはキャッシュされるため、アクセスのコストが低く、効率的です。ガバナ制限の対象となる SOQL クエリを使用する必要はありません。
階層カスタム設定
特定のプロファイルまたはユーザの設定を「カスタマイズ」できる組み込みの階層ロジックを使用するカスタム設定の種類。階層ロジックでは、現在のユーザの組織、プロファイル、およびユーザ設定を確認し、最も限定的な (つまり「最下位」) 値が返されます。階層では、組織の設定はプロファイル設定によって上書きされ、プロファイル設定はユーザ設定によって上書きされます。
カスタム設定の使用例を次に示します。
  • 納入アプリケーションには、ユーザが海外配信用の国コードを入力する必要があります。この場合、すべての国コードのリスト設定を作成すると、ユーザはデータベースに照会しなくてもこのデータにすばやくアクセスできます。
  • アプリケーションによって、取引先の場所、最適な経路、および交通状況が表示されます。この情報は営業担当者には便利ですが、取引先担当責任者には取引先の場所がわかれば十分です。この場合、経路と交通のカスタムチェックボックス項目を使用した階層設定を作成すると、このデータを「営業担当者」プロファイルのみに有効にできます。

カスタム設定を作成するには、Salesforce ユーザインターフェースで [設定] から、[クイック検索] ボックスに「カスタム設定」と入力し、[カスタム設定] を選択します。カスタム設定を作成して項目を追加したら、詳細ページで [管理] をクリックしてカスタム設定にデータを入力します。名前を使用して各データセットを識別します。

たとえば、テキスト項目「Country_Code__c」を含む「Foundation_Countries__c」という名前のカスタム設定がある場合、データセットは次のようになります。
データセット名 国コード項目値
アメリカ USA
カナダ CAN
イギリス GBR
また、カスタム設定をパッケージに含めることもできます。パッケージのカスタム設定がどのように表示されるかは、[表示] 設定によって決まります。

パッケージにはデータではなく、カスタム設定の定義のみが含まれます。データを含めるには、パッケージのインストール後に登録側組織によって実行される Apex コードを使用してカスタム設定を取り込む必要があります。

メモ

Apex は、リストと階層のどちらのカスタム設定にもアクセスできます。

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

メモ

リストカスタム設定へのアクセス

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

階層カスタム設定へのアクセス

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