選択リストの「五十音順」に振り回されない。数式ORカスタムメタデータで構築する、現場が迷わない「ソート項目」の設計術
Rewa Tech
技術コラム
システム開発
はじめに:なぜ、あなたのリストビューは「使いにくい」のか
Salesforceのリストビューで、フェーズや確度などの「選択リスト」をソートした際、意図しない順番に並んでストレスを感じたことはありませんか? 標準のソート順は、設定画面での値の並び順や五十音順に依存します。しかし、実務において「五十音順」が「優先度順」であることは稀です。
本記事では、標準機能の「数式」と、「カスタムメタデータ」を使い分け、「ソート項目」の設計を解説します。
解決へのロードマップ:2つの実装アプローチ
リストビューの並び順を自在に操るには、主に以下の2つの手法があります。
- パターンA:数式項目 選択リストの値に応じて「01_見込」「02_提案」といったソート用の文字列を数式で生成し、それをソートキーにする方法です。
- パターンB:カスタムメタデータ×フロー 並び順の数値を「カスタムメタデータ」に定義し、レコード保存時にフローで値を書き込む方法です。
まずはそれぞれの手順を詳しく見ていきましょう。
【パターンA】数式項目でクイックに解決する
値が比較的少なく、まずは手っ取り早くリストを整理したい場合に最適です。
実装手順:CASE関数でスマートに定義する
数式項目(戻り値:テキスト)を作成し、CASE関数を用いて各値に「重み(数字)」を付与します。
/* 選択リスト「フェーズ」に基づき、ソート用の接頭辞を付与する数式例 */
CASE(StageName,
"Prospecting", "01_見込",
"Qualification", "02_ヒアリング",
"Proposal", "03_提案中",
"Negotiation", "04_最終交渉",
"Closed Won", "09_受注完了",
"99_その他" )
POINT:
- 2桁ルール: 「01_」「02_」と2桁にします。「1_」の次は「10_」が来てしまい、期待通りに並びません。
- 即時反映: 数式を書き換えた瞬間に、過去の完了案件も含め、すべてのレコードに新しい順序が即座に適用されます。
【パターンB】カスタムメタデータで「マスタ管理」を実現する
値の追加が頻繁にある、あるいは将来的に複雑なソート条件を追加したい組織向けの設計です。
実装手順:ロジックとデータを切り離す
ステップ1:レコード側に「ソート順」の受け皿を作る
対象オブジェクトに、数値を格納するためのカスタム項目を作成します。
- データ型: 数値(整数)
- 項目名: 「ソート用数値」など
POINT:この項目はフローで自動更新するため、ページレイアウトからは外しておき、リストビューの選択項目としてのみ利用する
ステップ2:カスタムメタデータで「ソートマスタ」を定義する
次に、「どの選択リスト値が、何番目に並ぶか」というルールを決めるマスタを作成します。
- 作成場所: 設定 > カスタムメタデータ型
- 定義: 「選択リストのAPI参照名(テキスト)」と「並び順(数値)」の2つのカスタム項目を定義します。
- データ登録: 「提案中 = 10」「交渉中 = 20」のように、値を一つずつ登録していきます。
ステップ3:フロー(Before-save)で値をコピーする
最後に、レコード保存時にステップ2のマスタから値を検索し、ステップ1の項目へ自動で書き込む設定を行います。
- フロー型: レコードトリガーフロー
- 開始条件:[対象の選択リスト項目] が変更された = True
- 処理内容: 「レコードを取得」要素で、現在の選択リスト値と一致するカスタムメタデータを検索し、見つかった「並び順」をレコードの「ソート用数値」項目に代入します。
POINT: フロー内で「マスタが見つからなかった場合(Null)」の判定を入れ、デフォルト値(99など)をセットするようにしておくと、設定漏れがあるレコードがリストの末尾に並び、管理者がすぐに気づけるようになります。
サマリー:自社にマッチする手法
2つの手法の特性を比較しました。
どちらを採用すべきかの判断資料としてご活用ください。
| 比較項目 | パターンA:数式項目 | パターンB:メタデータ+フロー |
|---|---|---|
| 概要 | 小規模、設定の速さを優先 | 中〜大規模、長期の運用効率を優先 |
| メンテナンス | 値の追加ごとに数式の修正が必要 | マスタ(メタデータ)の更新のみ |
| 過去データへの反映 | 即時反映(数式修正で全件一括) | ソート項目へのデータ更新が必要 |
| 制約 | コンパイル制限
※条件分岐が多く、数式が長くなりすぎる場合は保存できない可能性があります。 |
ガバナ制限(SOQL 101など)
※大量データを一括更新した場合に、他のフローと干渉してエラーが出る場合があります。 |
まとめ:標準機能は「組み合わせ」で化ける
単に「並び替える」という小さな操作一つをとっても、そこに「営業担当者が迷わないための配慮」と「管理者が将来困らないための設計」を組み込めるかどうかが、Salesforceが「手放せない武器」になるかの分かれ目です。 設計の細部や、既存データのクレンジングで迷われた際は、お気軽にお問い合わせください。
それ、サンブリッジなら実現できます!
Salesforceで解決するビジネス課題
【ダウンロード資料】Salesforce導入・開発を検討されているお客様必見
数あるSalesforceベンダー企業のなかから、サンブリッジが選ばれる理由はなぜか。課題別にどんなソリューションがあるのかといった観点で、実際にサンブリッジが対応した事例やご利用企業様からの評価などをご紹介します。(全16ページ)