Salesforceの選択リスト。連動選択リストとグローバル値セット

公開 書いた人 大林 諒

商談の「失注理由」を、大分類と詳細の2段で選ばせる形に組み直します。題材は社員30名ほどの法人向けサービス会社の営業チームで、失注理由の値が増えすぎてレポートで読めなくなった状態から始めます。読み終わると、連動選択リストとグローバル選択リスト値セットを自分の組織で作れて、値を足す・止める・消す・置き換えるときに既存のレコードやレポートに何が起きるかを判断できるようになります。作業には「アプリケーションのカスタマイズ」権限が要ります。選択リスト・連動選択リスト・グローバル値セットはすべてのエディションで使え、レコードタイプだけは Enterprise 以上か、アドオンを付けた Professional で使えます。画面は Lightning Experience で説明し、Classic の画面の説明は読み飛ばしてかまいません。

この記事の内容
  1. 選択リストの種類と、先に決めること
  2. 設計表
  3. 作る手順
  4. 値を変えるときに既存のレコードで起きること
  5. 応用
  6. できないことと、その代わり
  7. よく詰まるところ
  8. 次にやること

選択リストの種類と、先に決めること

項目の作り方そのものは「Salesforceのカスタムオブジェクトと項目の作り方。選択リスト・数式・主従関係」で書いています。ここでは値の持ち方と、使い始めてから値を変えるときの話をします。値の持ち方は後から変えにくいので、作る前に次のことを決めます。

3つの形の違い

観点選択リスト選択リスト (複数選択)グローバル選択リスト値セット
選べる数1つ複数(1レコード100個まで)項目の作り方による(単一でも複数選択でも作れる)
値の持ち主その項目その項目組織で1つの値セット。使う項目は値を借りる
値の上限1,000500有効と無効を合わせて1,000
値を定義済みに限定選べる(値が1,000個未満のとき)選べる(値が500個未満のとき)常に限定される
項目ごとに値を足すできるできるできない。値セットで足す
数式で使える関数ISPICKVAL・CASE・TEXTINCLUDES・ISBLANK・ISCHANGED・PRIORVALUE項目の形に従う
連動選択リストの制御項目なれるなれない項目の形に従う
向いている使い方状況、失注理由など1つに決まるもの原則使わない複数のオブジェクトで同じ値を使うもの

値1つの長さはどれも255文字までです。

値を項目ごとに持つか、組織で共通にするか

同じ値を2つ以上のオブジェクトで使うなら、グローバル値セットにします。例の会社では、サービスの区分をリード・商談・導入プロジェクトの3か所で使います。項目ごとに値を持つと、新サービスを足すたびに3か所を直すことになり、1か所漏れるとリードから商談への引き継ぎで値が落ちます。値セットなら1回の追加で3項目に出ます。

逆に、1つのオブジェクトでしか使わない値はグローバルにしません。項目とグローバル値セットの紐付けは元に戻せず、項目ごとの値に戻すには項目を作り直すしかないからです。

値を定義済みのものに限定するか

選択リストを作るとき「値セットで定義された値に選択リストを制限します」にチェックを入れると、制限付き選択リストになります。制限付きにすると、データローダや連携ツールから定義外の値を入れようとしても保存されません。制限を外した選択リストは、画面からは定義外の値を選べないものの、API やフローなどの自動化からは新しい値が入ってしまいます。

失注理由のように集計の軸に使う項目は、制限付きにします。定義外の値が混ざると、レポートのグループに「価格」と「価格面」が並んで集計が割れます。制限を外すのは、外部システムから自由に値が入り、止めると連携が困る場合だけです。

値の API 参照名をどう付けるか

選択リストの値には、画面に出る「表示ラベル」と、数式や連携が参照する「API 参照名」の2つの名前があります。値を作ると、API 参照名には表示ラベルと同じ文字が入ります。日本語の表示ラベルなら、API 参照名も日本語になります。

日本語のままでも動きますが、例の会社では英字に付け直しています。数式・入力規則・フロー・外部連携はすべて API 参照名で値を見るので、表示ラベルを言い換えても仕組み側が壊れないようにするためです。付け直すのは使い始める前です。後から変えると、連動選択リストや数式が動かなくなります。

複数選択リストを使わない

「該当するものを全部選ぶ」項目は便利に見えますが、営業管理では原則使いません。公式ヘルプも、可能なら連動選択リストか別の種類の項目を使うよう勧めています。公式に書かれている扱いにくさは次のとおりです。

場面何が起きるか
保存のされ方値はセミコロンで区切った1つの文字列として保存される
インポート・API で更新新しい値だけを入れると、既存の値が消えてその値だけになる。既存の値も並べて入れる必要がある
API から追加画面では同じ値の重複を防ぐが、API では検証されないため、同じ値が重複して入ることがある
レポートのグループ化選んだ値の組み合わせ1通りが1つのグループになる。値ごとの件数にならない
数式・入力規則使える関数が INCLUDES・ISBLANK・ISCHANGED・PRIORVALUE に限られる。値を比べるには1つずつ INCLUDES を並べる
Apex・フローセミコロン区切りの文字列を分解する処理を自分で書く
連動選択リスト連動項目にはなれるが、制御項目にはなれない
後から単一選択に変える単一選択の選択リストに変えると、既存レコードのその項目の値は消える

例の会社で「提案したサービスを複数持ちたい」となったときは、商談商品で持つ形にしました。サービスごとの件数と金額がそのままレポートに出ます。選択肢が数個で増えないなら、値の数だけチェックボックスを作るほうが扱いやすくなります。

使えるエディションと上限

公式ヘルプの「必要なエディション」と「選択リストの制限」で確認できたものだけを載せます。

機能StarterPro SuiteProfessionalEnterpriseUnlimited
選択リスト・複数選択リスト使える使える使える使える使える
制限付き選択リスト使える使える使える使える使える
グローバル選択リスト値セット使える使える使える使える使える
連動選択リスト使える使える使える使える使える
レコードタイプ記載なし記載なしレコードタイプのアドオンライセンスで使える使える使える
ビジネスプロセス(商談フェーズを出し分ける)記載なし記載なし記載なし使える使える

上限は次のとおりです。

対象上限
単一選択のカスタム選択リストの値1,000
複数選択のカスタム選択リストの値500(1レコードで選べるのは100まで)
制限付き選択リスト有効と無効を合わせて1,000
制限なしの選択リスト新しく作ったものは有効1,000、無効4,000(上限を設定していない既存の選択リストには制限なし)
グローバル選択リスト値セット1セットで有効と無効を合わせて1,000、組織で500セット
連動選択リストの制御項目の値300まで(概要のページは300未満と表記)
標準選択リストの値リード状況・ToDo の状況・ケース状況・商談フェーズは100、ToDo の優先度・ケース優先度は50
リストビューの検索条件で選ぶ値選んだ値の合計が240文字未満

項目の詳細ページの「使用される選択リスト値」で、その項目の有効な値・無効な値の数と上限を確かめられます。

設計表

商談に作る項目と、グローバル値セットです。

表示ラベルAPI参照名データ型設定
失注理由Lost_Reason__c選択リスト(既存)大分類の6値に組み直す。制御項目にする
失注理由詳細Lost_Reason_Detail__c選択リスト(新規)13値。失注理由に連動させる。制限付き
提案サービスProposed_Service__c選択リスト(新規)グローバル値セット「サービス区分」を使う

失注理由(大分類)の値と、それぞれで選べる失注理由詳細の値です。この対応がそのまま項目の連動関係マトリックスの中身になります。

失注理由(表示ラベル)API参照名選べる失注理由詳細(API参照名)
価格Price予算超過(Over_Budget)/他社の方が安い(Cheaper_Competitor)/費用対効果が見えない(ROI_Unclear)
機能Feature必要な機能が無い(Missing_Feature)/既存システムと連携できない(No_Integration)/操作が難しい(Hard_To_Use)
競合Competitor既存の取引先を継続(Stay_Current_Vendor)/他社に決定(Chose_Other)
時期Timing導入時期の延期(Postponed)/担当者の異動(Contact_Changed)
社内事情Internal稟議が通らない(Not_Approved)/方針の変更(Policy_Change)
連絡不通No_Response返信なし(No_Reply)

グローバル値セット「サービス区分」(API参照名 Service_Category)の値は「基本サービス」「オプション」「保守」「研修」の4つです。使う項目は、リードの「関心サービス」、商談の「提案サービス」、導入プロジェクトの「導入サービス」です。

大分類を6つに絞ったのは、1枚の円グラフに収まり、営業が迷わず選べる数だからです。詳細も大分類ごとに2〜3個に抑えます。多すぎると一番上の値ばかり選ばれます。

作る手順

1. 既存の失注理由を大分類に置き換える

例の会社の失注理由には、もともと「価格」「競合」「時期尚早」「予算なし」「機能不足」「その他」が入っていました。これを大分類の6値に寄せます。既存のレコードの値も一緒に書き換えたいので、削除ではなく置換を使います。

  1. 「設定」から「オブジェクトマネージャー」タブを開きます。
  2. 「商談」をクリックします。
  3. 「項目とリレーション」をクリックします。
  4. 「失注理由」をクリックします。
  5. 「値」セクションの「新規」をクリックし、まだ無い「機能」「時期」「社内事情」「連絡不通」を1行に1つずつ入力して保存します。
  6. 「値」セクションの「置換」をクリックします。
  7. 「現在の値」に「予算なし」と入力し、「置換後の値」で「価格」を選びます。
  8. 「置換」をクリックします。
  9. 「機能不足」→「機能」、「時期尚早」→「時期」も同じように置換します。
  10. 置換が終わったら、値の一覧を見て、使わなくなった値は無効化または削除します。
選択リスト値の置換画面。「現在の値」に「予算なし」、「置換後の値」に「価格」を選んだ状態
選択リスト値の置換画面。「現在の値」に「予算なし」、「置換後の値」に「価格」を選んだ状態

置換はバックグラウンドジョブで処理され、進み具合は「設定」の「バックグラウンドジョブ」で見られ、終わるとメールが届きます。ごみ箱にあるレコードも書き換わり、「更新者」の日時も変わります。最終更新日で絞ったレポートはその日だけ件数が跳ねるので、営業マネージャーに先に伝えておきます。

「その他」は置き換え先が決まらないので無効化します。違いは後半の表にまとめています。

2. 値の API 参照名を英字にする

  1. 「失注理由」の「値」セクションで、「価格」の横の「編集」をクリックします。
  2. 「API 参照名」を「Price」に書き換えます。
  3. 「保存」をクリックします。
  4. 残りの5値も設計表のとおりに書き換えます。
  5. 「並び替え」をクリックし、設計表の順に並べて保存します。
選択リスト値の編集画面。表示ラベル「価格」、API 参照名「Price」
選択リスト値の編集画面。表示ラベル「価格」、API 参照名「Price」

足した値は自動では並び替わりません。並び順は画面の候補の順になるので、選ばれやすい順に揃えます。

3. API 参照名を変えられないように固める

値の API 参照名を付け終わったら、うっかり書き換えられないように保護します。

  1. 「設定」のクイック検索に「選択リスト」と入力します。
  2. 「選択リスト設定」をクリックします。
  3. 「選択リスト値の API 参照名の編集を無効化」にチェックを入れます。
  4. 「保存」をクリックします。

この設定は組織のすべての選択リストに効き、チェックを外せばまた変えられます。

4. 失注理由詳細を作る

  1. 商談の「項目とリレーション」で「新規」をクリックします。
  2. 「選択リスト」を選び、「次へ」をクリックします。
  3. 「項目の表示ラベル」に「失注理由詳細」、「項目名」に「Lost_Reason_Detail」と入力します。
  4. 「選択リストの各値を改行で区切って入力します。」を選びます。
  5. 設計表の13値を1行に1つずつ入力します。
  6. 「値セットで定義された値に選択リストを制限します」にチェックが入っていることを確かめます。
  7. 「次へ」をクリックし、項目レベルセキュリティで営業とマネージャーのプロファイルに参照を付けます。
  8. 「次へ」をクリックし、商談のページレイアウトを選んで「保存」をクリックします。
  9. 手順2と同じように、13値の API 参照名を設計表のとおりに書き換えます。

手順3で保護をかけた後なら、一度チェックを外して書き換え、終わったら戻します。

5. 項目の連動関係を作る

  1. 商談の「項目とリレーション」を開きます。
  2. 「項目の連動関係」をクリックします。
  3. 「新規」をクリックします。
  4. 「制御項目」で「失注理由」を選びます。
  5. 「連動項目」で「失注理由詳細」を選びます。
  6. 「続行」をクリックします。
  7. マトリックスの「価格」の列で、「予算超過」「他社の方が安い」「費用対効果が見えない」のセルをダブルクリックします。
  8. 残りの列も設計表のとおりにダブルクリックで選びます。
  9. 「プレビュー」をクリックし、失注理由を切り替えて詳細の候補が変わることを確かめます。
  10. 「閉じる」をクリックします。
  11. 「保存」をクリックします。
項目の連動関係マトリックス。「価格」の列で3つのセルが強調表示されている状態
項目の連動関係マトリックス。「価格」の列で3つのセルが強調表示されている状態

マトリックスは一番上の行が制御項目の値、各列の中が連動項目の値です。ダブルクリックで含めた値は強調表示され、もう一度ダブルクリックすると外れます。値が多いときも、含めたいセルを1つずつダブルクリックすれば確実です。制御項目の値が多くて列が収まらないときは、「前へ」「次へ」で列を送るか、「すべて表示」で全列を出します。

どの制御値にも含めていない連動値があると、保存のときに警告が出ます。わざと外している値なら「OK」で進めます。

プレビューで失注理由に「機能」を選び、失注理由詳細の候補が3つだけ出ている状態
プレビューで失注理由に「機能」を選び、失注理由詳細の候補が3つだけ出ている状態

6. 画面に並べる

連動選択リストは、制御項目と同じ画面に置かないと値が出ません。

  1. 商談のページレイアウトを開きます。
  2. 「失注理由」の真下に「失注理由詳細」を置きます。
  3. 「保存」をクリックします。

連動項目は制御項目より下に置きます。動的フォームのページでも、Lightning アプリケーションビルダーで両方を置かないと詳細の候補が出ません。画面の作り方は「ページレイアウトとLightningレコードページ。画面の項目と並びを変える」にまとめています。

項目レベルセキュリティは制御項目と連動項目で別々に設定されます。失注理由詳細を隠すプロファイルがあるなら、失注理由も同じように隠します。

商談の詳細で鉛筆アイコンから編集中。失注理由に「価格」を選び、失注理由詳細の候補が開いている状態
商談の詳細で鉛筆アイコンから編集中。失注理由に「価格」を選び、失注理由詳細の候補が開いている状態

7. 入力規則で失注理由を必須にする

選択リストの「必須」は、フェーズに関係なく常に入力を求めます。失注のときだけ必須にしたいので、入力規則を使います。商談の「入力規則」で「新規」をクリックし、エラー条件の数式に次を入れます。

AND(
  ISPICKVAL(StageName, "Closed Lost"),
  ISBLANK(TEXT(Lost_Reason__c))
)

フェーズは画面では「不成立」と表示されますが、数式には値の API 参照名「Closed Lost」を書きます。不成立を選ぶと確度は自動で0%になります。選択リストが空かどうかを ISBLANK で見るときは、TEXT() でテキストに変えてから渡します。選択リストを = で比べると「選択リスト フィールドは特定の関数でのみサポートされています」のエラーになるので、ISPICKVAL を使います。

詳細も必須にするなら、もう1本足します。

AND(
  ISPICKVAL(StageName, "Closed Lost"),
  NOT(ISBLANK(TEXT(Lost_Reason__c))),
  ISBLANK(TEXT(Lost_Reason_Detail__c))
)

連動選択リストに「必須」を付けて済ませないのは、選んだ制御値で使える連動値が1つも無いと、必須でも空のまま保存できてしまうからです。

商談のフェーズを「不成立」、失注理由を空のまま保存しようとしてエラーが出た状態
商談のフェーズを「不成立」、失注理由を空のまま保存しようとしてエラーが出た状態

8. グローバル値セットを作って3つの項目で使う

  1. 「設定」のクイック検索に「選択リスト」と入力し、「選択リスト値セット」をクリックします。
  2. 「グローバル値セット」の横の「新規」をクリックします。
  3. 表示ラベルに「サービス区分」と入力します。
  4. 説明に「リード・商談・導入プロジェクトで共通に使うサービスの区分」と入力します。
  5. 「基本サービス」「オプション」「保守」「研修」を1行に1つずつ入力します。
  6. 「保存」をクリックします。
  7. 商談の「項目とリレーション」で「新規」をクリックし、「選択リスト」を選びます。
  8. 「グローバル選択リスト値セットを使用」を選び、「サービス区分」を選びます。
  9. 表示ラベル「提案サービス」、項目名「Proposed_Service」で保存します。
  10. リードの「関心サービス」、導入プロジェクトの「導入サービス」も同じ値セットで作ります。
選択リスト値セットの一覧。グローバル値セット「サービス区分」が表示されている状態
選択リスト値セットの一覧。グローバル値セット「サービス区分」が表示されている状態

どの項目がこの値セットを使っているかは、値セットの詳細ページの「項目の使用場所」で確かめられます。値セットに値を足すときは「このグローバル値セットを使用するすべてのレコードタイプに新しい選択リスト値を追加します。」にチェックを入れます。外すと、レコードタイプを使っているオブジェクトでは、レコードタイプごとに手で足すまで新しい値が出ません。

すでに項目ごとに値を持っている選択リストを共通にしたい場合は、その項目の編集画面で「グローバル値セットに昇格」を使います。昇格できるのは制限付きで値が1,000個までの選択リストだけで、既存の値セットに合流させることはできず、昇格した後に戻すこともできません。

リードの「関心サービス」を取引開始で商談の「提案サービス」へ引き継ぐなら、リードの項目の対応付けで2つを結びます。

値を変えるときに既存のレコードで起きること

ここが選択リストの運用で一番事故が起きるところです。使い始めた後の値の操作は、5つの違いで選びます。

操作新しく選べるか既存レコードの値向いている場面
追加選べる変わらない新しい区分ができた
並び替え変わらない変わらない候補とレポートの順を変える
無効化選べなくなるそのまま残る。レポートにも出る今後は使わないが、過去の集計は残したい
削除選べなくなる空白か、指定した別の値に置き換わる誤って作った値を消す
置換置換後に値の一覧を見て、使わない値は無効化または削除する全件が新しい値に書き換わる値を統合する、言い方を変えて過去分も揃える

無効化した値は、値の一覧の「無効な値」セクションに移ります。名前の横の「有効化」で戻せます。既存のレコードを開いても値は表示されますが、編集で別の値に変えると、元の値には戻せません。

値の横の「削除」をクリックすると、レコードの値を空白にするか別の値に置き換えるかを聞かれます。空白にすると既存のレコードから値が見えなくなるので、過去の分析に使う値は無効化にします。選択リストには有効な値が最低1つ要るので、値が1つしかない項目ではその値を削除できません。グローバル値セットの値と、制限付き選択リストの値の削除は、バックグラウンドジョブで処理されます。

値が多いときは、各値の横のチェックボックスで複数を選び、「選択済みのものを無効化」などのボタンでまとめて処理できます。値の変更は「設定変更履歴の参照」に記録され、誰がいつ消したかを後から追えます。

値の名前を変えたら何が起きるか

値の名前には表示ラベルと API 参照名があり、どちらを変えたかで影響が違います。

影響を受けるもの表示ラベルだけを変えたAPI 参照名も変えた
レポート・リストビューの検索条件その値が条件から外れる。条件がその値だけならエラーになる同じく外れる
数式・入力規則動き続ける(API 参照名で見ているため)古い名前のままの数式は、エラーにならずに条件に当たらなくなる
フロー動き続ける。フローは値を API 参照名で保存する古い名前と比べている分岐が通らなくなる
連動選択リスト影響なし連動関係が期待どおり動かなくなる
データローダ・外部連携影響なし(API 参照名でやり取りするため)古い名前を送る連携は、制限付きなら保存できず、制限なしなら定義外の値として入る
レコードの項目履歴書き換わらない(古い名前のまま残る)書き換わらない

レポートの検索条件が外れるのは、表示ラベルの変更でも起きます。公式ヘルプの例では、リードソースの「Web」の名前を変えると、「リードソース 次の文字列と一致する Web」の条件から値が外れます。名前を変えたら、その値で絞っているレポートとリストビューの条件を直します。例の会社では失注理由で絞るレポートを「失注分析」フォルダにまとめ、見直す範囲をそこだけにしています。

数式で表示ラベルを書いてしまう間違いもよく起きます。ISPICKVAL(Lost_Reason__c, "価格") は、API 参照名を「Price」にした後はエラーにならないまま常に FALSE を返します。数式には ISPICKVAL(Lost_Reason__c, "Price") と API 参照名を書きます。TEXT() も API 参照名を返します。

応用

レコードタイプごとに出す値を変える

新規の商談と既存顧客への追加提案で、選べる失注理由を変えたい、といった場合はレコードタイプを使います。レコードタイプは Enterprise・Unlimited で使え、Professional ではレコードタイプのアドオンライセンスが要ります。Starter と Pro Suite は、公式の使用可能エディションに記載がありません。

作り方の流れだけ書きます。

  1. 商談のオブジェクトマネージャーで「レコードタイプ」をクリックします。
  2. 「新規」をクリックします。
  3. 「既存のレコードタイプからコピーする」で「マスター」を選びます。
  4. 「レコードタイプの表示ラベル」に「追加提案」、「レコードタイプ名」に「Upsell」と入力します。
  5. 「有効」にチェックを入れ、使うプロファイルの「使用可能に設定」にチェックを入れます。
  6. 「次へ」で使うページレイアウトを選び、「保存」をクリックします。
  7. 作ったレコードタイプの詳細で「失注理由」の横の「編集」をクリックします。
  8. 出したい値だけを選択済みに残し、「保存」をクリックします。
レコードタイプの選択リスト編集画面。失注理由の選択済みの値に「価格」「機能」「時期」「社内事情」だけが入っている状態
レコードタイプの選択リスト編集画面。失注理由の選択済みの値に「価格」「機能」「時期」「社内事情」だけが入っている状態

使う値は先に項目自体(マスター選択リスト)に入れておきます。項目に値を足しても既存のレコードタイプには自動で入らないので、レコードタイプごとに足し直します。連動選択リストと組み合わせると、詳細の候補は「レコードタイプで使える値」と「制御値で使える値」の両方に当てはまるものだけになり、連動関係の「プレビュー」でレコードタイプを選ぶと結果を確かめられます。

商談の「フェーズ」、リード状況、ケース状況はレコードタイプでは絞れず、セールスプロセスなどのビジネスプロセス(Enterprise 以上)で出し分けます。またレコードタイプは見える範囲を絞る仕組みではなく、使えないプロファイルのユーザーもそのレコードを見られます。

3段で連動させる

1つの項目は、制御項目であり連動項目でもあることができます。フェーズを制御項目にして失注理由を連動させ、さらに失注理由で詳細を連動させると、フェーズが「不成立」のときだけ失注理由の候補が出る3段の形になります。標準の選択リストは制御項目にはなれるので、フェーズを制御項目に使えます。制御項目でもあり連動項目でもある項目は、値を300個未満に抑えておくと安全です。

例の会社では3段にしていません。フェーズを失注から戻したとき失注理由に値が残り、その片付けが別に要るからです。2段にして、失注以外で失注理由が入っていたら保存を止める入力規則を足しています。

使わなくなった値を新規だけ選べなくする

無効化すると、既存のレコードを編集するときにも選べなくなります。既存の商談では選べたままにして、新しく作る商談だけ選ばせたくない場合は、入力規則で止めます。ISNEW() は新規作成のときだけ TRUE になります。

AND(
  ISNEW(),
  ISPICKVAL(Lost_Reason__c, "No_Response")
)

テキスト項目を選択リストに変える

自由入力のテキストで失注理由を書かせていた組織では、項目の編集画面の「データ型の変更」でテキストを選択リストに変えられます。入っている一意の値が4,000を超えると変換に失敗し、ごみ箱にあるレコードの値も数に入ります。変換前に Excel に出して表記ゆれを直し、上書きで戻してから変換すると、変換後の置換が少なく済みます。

できないことと、その代わり

できないこと公式の記載代わりの手
標準選択リストを連動項目にする(フェーズに連動させる側にする)標準選択リストは制御項目にはなれるが連動項目にはなれないカスタムの選択リストを作って連動させる
値が300を超える項目を制御項目にする制御項目の値は300まで(概要のページは300未満と表記)大分類を1段増やす
グローバル値セットを使う項目だけに値を足す値は値セットからしか継承しない項目ごとに値を持つ選択リストを別に作る
グローバル値セットを使う項目を元の形に戻す紐付けは元に戻せない新しい項目を作り、データを移して古い項目を消す
13種を超えるオブジェクトで使う値セットの値を消す・置き換える無効化はできるが、置換と削除はできない値セットを使うオブジェクトを13種以内に収める
データインポートウィザードで連動関係を守らせるウィザードは連動関係を考慮しない入力規則で組み合わせを止める。取り込み前に Excel で突き合わせる
制御項目だけを変えたときに連動項目の値を確かめる制御項目の更新時に連動項目はチェックされない入力規則か、制御項目が変わったら連動項目を空にするフローを作る
値の名前を変えたときに項目履歴を書き換える履歴は書き換わらない履歴は変更前の名前で読む前提で運用する

よく詰まるところ

症状原因直し方
足した値が編集画面の候補に出ないレコードタイプに値が入っていないレコードタイプの詳細で選択リストを「編集」し、値を選択済みに足す
失注理由詳細に候補が1つも出ない画面に失注理由(制御項目)が置かれていないページレイアウトか動的フォームに失注理由を置き、詳細より上に並べる
特定の失注理由のときだけ詳細が出ないマトリックスでその列の値を含めていない「項目の連動関係」の「編集」でセルを含めて保存する
置換した後、連動選択リストが動かなくなった制御項目の値を置換すると、その値の連動関係が失われる新しい値でマトリックスを作り直す
API 参照名を変えたら連動選択リストがおかしい連動関係は API 参照名で結ばれているAPI 参照名を元に戻すか、マトリックスを作り直す
数式がエラーにならないのに常に FALSE数式に表示ラベルを書いている値の API 参照名を確かめて書き直す
数式で「選択リスト フィールドは特定の関数でのみサポートされています」選択リストを = で比べているISPICKVAL() か CASE()、TEXT() を使う
名前を変えたらレポートの件数が0になった、またはエラーが出る検索条件から変更前の値が外れたレポートとリストビューの条件を新しい値で選び直す
インポートで値のエラーが出て取り込めない制限付き選択リストに定義外の値を入れようとしたファイルの値を API 参照名に揃える。足りない値は先に項目に足す
失注理由が必須なのに空のまま保存されている連動項目で使える値が無い組み合わせだった、またはインポートで入った入力規則で空を止める
Sandbox から変更セットで送ったら本番の値が無効になった変更セットに入っていない値は対象組織で無効になる本番で値を有効化し、次回は Sandbox 側の値を本番に揃えてから送る
値を削除したら過去の失注分析が崩れた削除で既存レコードの値が空白になった消す前なら無効化を使う。消した後は元の値を足し直し、エクスポートしておいたデータから戻す

次にやること

選択リストを数式で使う書き方は「Salesforceの数式項目。よく使う関数と書き方の例」、失注理由をフェーズが「不成立」のときだけ見せる画面は「ページレイアウトとLightningレコードページ。画面の項目と並びを変える」で作ります。過去の失注データを入れ直すときは「ExcelからSalesforceへ移す手順。データインポートウィザードとデータローダの使い分け」の手順で、値を API 参照名に揃えてから取り込みます。項目の作り方そのものは「Salesforceのカスタムオブジェクトと項目の作り方。選択リスト・数式・主従関係」に戻ります。

あわせて読む