選択リスト値の管理
学習の目的
この単元を完了すると、次のことができるようになります。
- 選択リストの値を管理する。
- 数式を使用して選択リスト値を動的に定義する。
- 選択リスト値を変更すると既存のデータがどうなるかを説明する。
適切な値管理の重要性
前回の Challenge のクッキーのことがまだ頭から離れませんか? 世の中には非常に多くのクッキーのフレーバーがあります。クッキーの会社を経営している場合、フレーバーの名前を標準化する必要があります。あなたの会社では、シナモンクッキーを「スニッカードゥードゥル」と呼んでいますか? 名前を決定したら、注文やその他のレコードで常に同じ名前が使用されるようにする必要があります。
選択リストの値を設定する賢い方法を説明します。適切に選択リスト値管理を行うと、時間を節約し、組織内のデータの一貫性を保つことができます。
選択リスト値を設定する場所
選択リストは個別のオブジェクトに関連付けられた項目です。選択リストは、他の項目を追加または管理するのと同様、オブジェクトの [項目とリレーション] ページで設定および管理します。前の単元で選択リストを作成したときに、初期値を設定しました。もう一度、[項目とリレーション] ページを見てみましょう。
[インデックス付き] とはどういう意味でしょうか? [項目とリレーション] ページでは、一部の選択リストを含むいくつかの項目が [インデックス付き] と識別されていて、それはどういう意味だろうと思われているでしょう。インデックス付きの項目は、迅速な取得をサポートする方法でデータベースに保存されます。これにより、レポート生成、リストビュー、その他の要求が最適化されることがあります。どのような項目がインデックスに適しているを決めるには、非常に高度な判断が必要です。Salesforce では、自動的にパフォーマンスが分析され、定期的に項目がインデックス付きとして割り当てられます。選択リストを作成するときにはこれについて考える必要はありませんが、後でレポートや組織のパフォーマンスを最適化する場合には重要になる可能性があります。
選択リスト値の管理
いよいよ、値の操作を行いましょう。
- [設定] で、[オブジェクトマネージャー] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
-
[項目とリレーション] をクリックします。
- 選択リストの項目の表示ラベルをクリックすると、その項目の詳細ページが表示されます。値が [Values (値)] 関連リストに表示されます。
このページにはいくつかのオプションがあります。
-
新規: 新しい値を作成します。
-
並び替え: 既存の値を並び替えます。
-
置換: 既存の値を置き換えます。既存の値を新しい値、他のいずれかの値、または空白値に置き換えることができます。既存の値を空白値で置き換えた場合、既存のレコードの値が表示されなくなります。
-
印刷用に表示: すべての値を一度に表示します。このビューは、連動選択リストを設定するときに役立ちます。
-
グラフの色: グラフやレポートでの値の外観をカスタマイズします。
有効な値、無効な値、削除済みの値、置換済みの値
詳細ページの [値] 関連リストでは、個々の値の編集、削除、無効化を行うことができます。有効な値と無効な値の違いは想像がつくでしょう。有効な値は、選択リストにオプションとして表示されます。無効な値は表示されませんが、組織から完全に削除されてはいません。
これは、どのような場合に役立つのでしょうか? 美味しいパンプキンクッキーについて考えてみてください。夏には人気がないので、夏の間はその値を無効にします。秋には、パンプキン味のものが何でも売れるので、パンプキンクッキーを作り始め、値を再び有効にします。
ただし、値が必要でなくなる場合もあります。ほうれん草クッキーの販売に挑戦したとします。驚いたことに顧客には受けなかったため、その値は削除します。
無効な値について、次の重要事項に注意してください。
- 無効にした値を含む既存のレコードには、引き続きその値が含まれます。
- 無効な値を再び有効にできます。値を完全に削除してしまう代わりの方法として便利です。
- 有効な値と無効な値を合わせた合計数には制限があります。「選択リストの制限」を参照してください。これらの制限に達し、さらに値が必要な場合は、いくつかの値を削除する必要があります。
値の削除と置換について、次の重要事項に注意してください。
- 値を置き換えるのか、空白のままにするのかを決定します。値を空白値で置き換えた場合、既存のレコードの値が表示されなくなります。既存のレコードの値を保持するには、[削除] の代わりに [無効化] を使用します。
- 選択リストの値の削除は、バックグラウンドジョブキューに入ります。ジョブが完了すると、選択リストが更新され、通知メールが送信されます。
- 制御選択リストの親値を置き換えると、その値に対する選択リストの連動関係が失われます。親値を置き換えた後に、新しい親値を使用して連動関係を再作成します。
- 値を置き換えるには、まず新しい値を作成してから、[置換] をクリックしてプロセスを開始します。
選択リスト値の編集
[値] 関連リストを見てみましょう。
項目の詳細ページで、[Edit (編集)] をクリックすると、1 つの値に対するその他のオプションが表示されます。
次の変更を行うことができます。
-
表示ラベルを変更する。これは UI に表示されるものです。
-
API 参照名を変更する。これは、数式やプログラムでの参照に使用される値を指定します。通常は、一度設定した後にこの値を変更することはお勧めしません。変更すると、値への参照が失敗する場合があります。
-
値を選択リストのデフォルトに設定する。
-
グラフの色を変更する。この設定によって、この値がレポートやダッシュボードにどのように表示されるかが決まります。選択しなかった場合、色は動的に割り当てられます。
選択リスト値の API 参照名が重要である理由
API 参照名は項目を作成すると自動的に入力されるため、見過ごしがちですが、この値は非常に強力です。API 参照名は、値の一意の識別子であり、表示ラベルが変更された場合でもそのまま使用できます。
Spring '17 リリース以降、選択リスト値には、UI に表示される表示ラベルと共に、値への参照である API 参照名が割り当てられています。API 参照名を使用すると、項目名が変更された場合でも、数式やカスタムアプリケーションで選択リスト値を参照できます。
数式の記述やアプリケーションのカスタマイズで、選択リストの表示ラベル値を参照していると想像してください (Spring '17 以前のシステム管理者や開発者はそうしていました)。その後、選択リスト値が変更されると、数式やその値への参照は有効ではなくなります。変更は起こるものです。ただし、表示ラベルの値が何になっても、API 参照名への参照は引き続き有効です。そして、API 参照名が変更されるのを防ぐことで、後で項目の値への参照が無効にならないようにできます。
制御項目、連動選択リスト、および値の絞り込み
前の単元で説明したとおり、連動選択リスト項目では、制御項目の選択に基づいて使用できる値が絞り込まれます。たとえば、ユーザーが制御項目で [nut free (ナッツなし)] を選択すると、連動選択リスト項目にはナッツを含まないクッキーフレーバーのみが表示されます。
制御項目は、選択リストである必要はありません。チェックボックスにすることもできます。
連動選択リスト項目を設定する手順は、次のとおりです。
- 項目の追加先となるオブジェクトの管理設定から、[項目とリレーション] をクリックします。
-
[Field Dependencies (項目の連動関係)] をクリックします。
-
[New (新規)] をクリックします。
- [制御項目] と [連動項目] を選択します。
-
[Continue (続行)] をクリックします。
-
項目の連動関係マトリックスを使用して、ユーザーが各制御項目の値を選択したときに有効とする連動選択リストの値を指定します。
- 必要に応じて、[プレビュー] をクリックし、選択内容をテストできます。
-
[Save (保存)] をクリックします。
次の点に考慮します。
- カスタム選択リスト項目は制御項目または連動項目にすることができます。
- 標準選択リスト項目は制御項目になりますが、連動項目にはなりません。
- 複数選択リスト項目は連動項目にはなりますが、制御項目にはなりません。
- 制御項目にはデフォルト値を設定できますが、連動選択リストには設定できません。
- 組織でレコードタイプを使用している場合、レコードタイプを選択して、それが制御選択リスト値と連動選択リスト値にどのような影響を与えるかをテストします。レコードタイプと制御項目の組み合わせによって、連動選択リストに表示される値が決まります。たとえば、連動値は、選択されたレコードタイプと選択された制御値で使用可能な場合のみ使用できます。
デフォルト選択リスト値に数式を使用
基本について理解できたので、動的なデフォルト値を割り当ててみましょう。つまり、特定の条件と他の項目の値に基づいて、選択リストのデフォルト値が変更されます。適切なデフォルトを設定すれば、データ入力をスピードアップできます。
たとえば、項目を表示しているユーザーのプロファイルに基づいて項目のデフォルト値を変更できます。または、顧客が購入したクッキーの合計数が特定の数を上回った場合に、得意顧客ステータスを変更することもできます。
- [設定] で、[オブジェクトマネージャー] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
-
[項目とリレーション] をクリックします。
- 選択リスト項目の横にある [Edit (編集)] をクリックします。
- [General Options (一般的なオプション)] の下に数式を追加します。
-
[Save (保存)] をクリックします。
[数式エディターの表示] をクリックすると、スペースが大きくなって非常に便利です。
そして何よりも、数式エディターでは構文をチェックでき、選択リスト (ここでも選択リストです!) が表示されて、数式に使用する項目、演算子、関数を選択できます。
複数選択を許可/禁止するためのデータ型の変更
選択リスト項目にはさまざまなオプションがありますが、必要に応じてデータ型を変更できますのでご安心ください。たとえば、カスタム選択リスト項目を複数選択リストに変更したい場合、それは可能です。
- [設定] で、[オブジェクトマネージャー] タブをクリックし、選択リスト項目に関連付けられたオブジェクトを選択します。
-
[項目とリレーション] をクリックします。
- 選択リスト項目の横にある [Edit (編集)] をクリックします。
-
[Change Field Type (データ型の変更)] を選択します。
また、この逆の操作も同様に可能で、データ型を変更することで、複数選択リストを、複数選択を許可しないカスタム選択リストに変換できます。
選択リスト値や使用する選択リストの種類を非常に柔軟に管理できることがおわかりいただけたでしょう。1 つの種類の選択リストから始めて、別の選択リストに切り替えたり、選択リストの値の動作を変更したりすることができます。事前にすべてを決定してしまわなくてよいのは便利です。ニーズに合わせて選択リストのプロパティを変更しましょう。次の単元では、選択リスト値を複数の選択リストで共有する方法について説明します。
リソース
- 開発者ブログ: Keeping Picklist Integrations Safe by Using API Names (API 参照名を使用することで選択リストインテグレーションを安全に保持)
- 開発者ブログ: Know Thy Salesforce Field Indexes for Fast Reports, List Views, and SOQL (自分の Salesforce 項目インデックスを知ってレポート、リストビュー、SOQL を高速化)
- Salesforce ヘルプ: カスタム項目のデータ型の変更
- Salesforce ヘルプ: 連動選択リストの定義
- Salesforce ヘルプ: 選択リストおよび複数選択リスト数式項目の使用のヒント