選択リスト値の管理

学習の目的

この単元を完了すると、次のことができるようになります。
  • 選択リストの値を管理する。
  • 数式を使用して選択リスト値を動的に定義する。
  • 選択リスト値を変更すると既存のデータがどうなるかを説明する。

適切な値管理の重要性

前回の Challenge のクッキーのことがまだ頭から離れませんか? 世の中には非常に多くのクッキーのフレーバーがあります。クッキーの会社を経営している場合、フレーバーの名前を標準化する必要があります。あなたの会社では、シナモンクッキーを「スニッカードゥードゥル」と呼んでいますか? 名前を決定したら、注文やその他のレコードで常に同じ名前が使用されるようにする必要があります。

選択リストの値を設定する賢い方法を説明します。適切に選択リスト値管理を行うと、時間を節約し、組織内のデータの一貫性を保つことができます。

選択リスト値を設定する場所

選択リストは個別のオブジェクトに関連付けられた項目です。選択リストは、他の項目を追加または管理するのと同様、オブジェクトの [項目とリレーション] ページで設定および管理します。前の単元で選択リストを作成したときに、初期値を設定しました。もう一度、[項目とリレーション] ページを見てみましょう。

商品オブジェクトの [項目とリレーション] ページ

[インデックス付き] とはどういう意味でしょうか? [項目とリレーション] ページでは、一部の選択リストを含むいくつかの項目が [インデックス付き] と識別されていて、それはどういう意味だろうと思われているでしょう。インデックス付きの項目は、迅速な取得をサポートする方法でデータベースに保存されます。これにより、レポート生成、リストビュー、その他の要求が最適化されることがあります。どのような項目がインデックスに適しているを決めるには、非常に高度な判断が必要です。Salesforce では、自動的にパフォーマンスが分析され、定期的に項目がインデックス付きとして割り当てられます。選択リストを作成するときにはこれについて考える必要はありませんが、後でレポートや組織のパフォーマンスを最適化する場合には重要になる可能性があります。

選択リスト値の管理

いよいよ、値の操作を行いましょう。

  1. [設定] で、[オブジェクトマネージャ] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
  2. [項目とリレーション] をクリックします。
  3. 選択リストの項目の表示ラベルをクリックすると、その項目の詳細ページが表示されます。
    値が [値] 関連リストに表示されます。 [値] 関連リストの選択リスト値

このページにはいくつかのオプションがあります。

  • 新規: 新しい値を作成します。
  • 並び替え: 既存の値を並び替えます。
  • 置換: 既存の値を置き換えます。既存の値を新しい値、他のいずれかの値、または空白値に置き換えることができます。既存の値を空白値で置き換えた場合、既存のレコードの値が表示されなくなります。
  • 印刷用に表示: すべての値を一度に表示します。このビューは、連動選択リストを設定するときに役立ちます。
  • グラフの色: グラフやレポートでの値の外観をカスタマイズします。
メモ

メモ

標準選択リストの項目は、標準値セットを共有する場合があることに注意してください。そのセットの値を変更すると、その変更は同じ値を使用する他の標準選択リスト項目にも表示されます。たとえば、[リードソース] と [アカウントソース] の標準選択リスト項目は同じ値セットを共有します。標準選択リスト項目値の変更は慎重に行ってください。

有効な値、無効な値、削除済みの値、置換済みの値

詳細ページの [値] 関連リストでは、個々の値の編集、削除、無効化を行うことができます。有効な値と無効な値の違いは想像がつくでしょう。有効な値は、選択リストにオプションとして表示されます。無効な値は表示されませんが、組織から完全に削除されてはいません。

これは、どのような場合に役立つのでしょうか? 美味しいパンプキンクッキーについて考えてみてください。夏には人気がないので、夏の間はその値を無効にします。秋には、パンプキン味のものが何でも売れるので、パンプキンクッキーを作り始め、値を再び有効にします。

ただし、値が必要でなくなる場合もあります。ほうれん草クッキーの販売に挑戦したとします。驚いたことに顧客には受けなかったため、その値は削除します。

無効な値について、次の重要事項に注意してください。
  • 無効にした値を含む既存のレコードには、引き続きその値が含まれます。
  • 無効な値を再び有効にできます。値を完全に削除してしまう代わりの方法として便利です。
  • 有効な値と無効な値を合わせた合計数には制限があります。「選択リストの制限」を参照してください。これらの制限に達し、さらに値が必要な場合は、いくつかの値を削除する必要があります。
値の削除と置換について、次の重要事項に注意してください。
  • 値を置き換えるのか、空白のままにするのかを決定します。値を空白値で置き換えた場合、既存のレコードの値が表示されなくなります。既存のレコードの値を保持するには、[削除] の代わりに [無効化] を使用します。
  • 選択リストの値の削除は、バックグラウンドジョブキューに入ります。ジョブが完了すると、選択リストが更新され、通知メールが送信されます。
  • 制御選択リストの親値を置き換えると、その値に対する選択リストの連動関係が失われます。親値を置き換えた後に、新しい親値を使用して連動関係を再作成します。
  • 値を置き換えるには、まず新しい値を作成してから、[置換] をクリックしてプロセスを開始します。

選択リスト値の編集

[値] 関連リストを見てみましょう。

選択された複数の値の表示

項目の詳細ページで、[編集] をクリックすると、1 つの値に対するその他のオプションが表示されます。

選択された複数の値の表示
次の変更を行うことができます。
  • 表示ラベルを変更する。これは UI に表示されるものです。
  • API 参照名を変更する。これは、数式やプログラムでの参照に使用される値を指定します。通常は、一度設定した後にこの値を変更することはお勧めしません。変更すると、値への参照が失敗する場合があります。
  • 値を選択リストのデフォルトに設定する
  • グラフの色を変更する。この設定によって、この値がレポートやダッシュボードにどのように表示されるかが決まります。選択しなかった場合、色は動的に割り当てられます。

選択リスト値の API 参照名が重要である理由

API 参照名は項目を作成すると自動的に入力されるため、見過ごしがちですが、この値は非常に強力です。API 参照名は、値の一意の識別子であり、表示ラベルが変更された場合でもそのまま使用できます。

Spring '17 リリース以降、選択リスト値には、UI に表示される表示ラベルと共に、値への参照である API 参照名が割り当てられています。API 参照名を使用すると、項目名が変更された場合でも、数式やカスタムアプリケーションで選択リスト値を参照できます。

数式の記述やアプリケーションのカスタマイズで、選択リストの表示ラベル値を参照していると想像してください (Spring '17 以前のシステム管理者や開発者はそうしていました)。その後、選択リスト値が変更されると、数式やその値への参照は有効ではなくなります。変更は起こるものです。ただし、表示ラベルの値が何になっても、API 参照名への参照は引き続き有効です。そして、API 参照名が変更されるのを防ぐことで、後で項目の値への参照が無効にならないようにできます。

制御項目、連動選択リスト、および値の絞り込み

前の単元で説明したとおり、連動選択リスト項目では、制御項目の選択に基づいて使用できる値が絞り込まれます。たとえば、ユーザが制御項目で [nut free (ナッツなし)] を選択すると、連動選択リスト項目にはナッツを含まないクッキーフレーバーのみが表示されます。

制御項目は、選択リストである必要はありません。チェックボックスにすることもできます。

制御項目がチェックボックスである例
連動選択リスト項目を設定する手順は、次のとおりです。
  1. 項目の追加先となるオブジェクトの管理設定から、[項目とリレーション] をクリックします。
  2. [項目の連動関係] をクリックします。
  3. [新規] をクリックします。
  4. [制御項目] と [連動項目] を選択します。
  5. [次へ] をクリックします。
  6. 項目の連動関係マトリックスを使用して、ユーザが各制御項目の値を選択したときに有効とする連動選択リストの値を指定します。
  7. 必要に応じて、[プレビュー] をクリックし、選択内容をテストできます。
  8. [保存] をクリックします。

次の点に考慮します。

  • カスタム選択リスト項目は制御項目または連動項目にすることができます。
  • 標準選択リスト項目は制御項目になりますが、連動項目にはなりません。
  • 複数選択リスト項目は連動項目にはなりますが、制御項目にはなりません。
  • 制御項目にはデフォルト値を設定できますが、連動選択リストには設定できません。
  • 組織でレコードタイプを使用している場合、レコードタイプを選択して、それが制御選択リスト値と連動選択リスト値にどのような影響を与えるかをテストします。レコードタイプと制御項目の組み合わせによって、連動選択リストに表示される値が決まります。たとえば、連動値は、選択されたレコードタイプと選択された制御値で使用可能な場合のみ使用できます。

デフォルト選択リスト値に数式を使用

基本について理解できたので、動的なデフォルト値を割り当ててみましょう。つまり、特定の条件と他の項目の値に基づいて、選択リストのデフォルト値が変更されます。適切なデフォルトを設定すれば、データ入力をスピードアップできます。

たとえば、項目を表示しているユーザのプロファイルに基づいて項目のデフォルト値を変更できます。または、顧客が購入したクッキーの合計数が特定の数を上回った場合に、得意顧客ステータスを変更することもできます。

  1. [設定] で、[オブジェクトマネージャ] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
  2. [項目とリレーション] をクリックします。
  3. 選択リスト項目の横にある [編集] をクリックします。
    既存の選択リスト項目で [編集] を選択する場所
  4. [一般的なオプション] の下に数式を追加します。
    数式を入力する場所
  5. [保存] をクリックします。

[数式エディタの表示] をクリックすると、スペースが大きくなって非常に便利です。

そして何よりも、数式エディタでは構文をチェックでき、選択リスト (ここでも選択リストです!) が表示されて、数式に使用する項目、演算子、関数を選択できます。

ヒント

ヒント

数式によって有効な値が得られなかった場合のために、何らかのデフォルトの値を定義します。たとえば、次の数式では、[Fast Response Sales (迅速に対応する営業)] プロファイルのすべてのユーザで商談の優先度が高に設定されます。それ以外の場合、値は標準です。

IF($Profile.Name = "Fast Response Sales", "High", "Standard")

ユーザが [Fast Response Sales (迅速に対応する営業)] プロファイルに属していない場合に項目を空白のままにするには、次の数式を使用します。

IF($Profile.Name = "Fast Response Sales", "High", null)

複数選択を許可/禁止するためのデータ型の変更

選択リスト項目にはさまざまなオプションがありますが、必要に応じてデータ型を変更できますのでご安心ください。たとえば、カスタム選択リスト項目を複数選択リストに変更したい場合、それは可能です。

  1. [設定] で、[オブジェクトマネージャ] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
  2. [項目とリレーション] をクリックします。
  3. 選択リスト項目の横にある [編集] をクリックします。
  4. [データ型の変更] を選択します。
    選択リスト項目の編集ページの [データ型の変更] ボタン
メモ

メモ

無効な値は失われます。

また、この逆の操作も同様に可能で、データ型を変更することで、複数選択リストを、複数選択を許可しないカスタム選択リストに変換できます。

重要

重要

複数選択リストを、複数選択をサポートしない選択リストに変更すると、既存のレコードのその項目の値はクリアされます。それはそうですよね? 項目に 1 つの値しか使用できなくなったためです。

選択リスト値や使用する選択リストの種類を非常に柔軟に管理できることがおわかりいただけたでしょう。1 つの種類の選択リストから始めて、別の選択リストに切り替えたり、選択リストの値の動作を変更したりすることができます。事前にすべてを決定してしまわなくてよいのは便利です。ニーズに合わせて選択リストのプロパティを変更しましょう。次の単元では、選択リスト値を複数の選択リストで共有する方法について説明します。