できること 無料トライアルを相談する
開発例 No.19

Salesforceの表記ゆれを保存前フローと入力規則でそろえる

同じ意味の値が違う書き方で入っていると、レポートでは別々の値として数えられます。このページでは、保存時に値を整える保存前レコードトリガーフロー、形式を確かめる入力規則、選択リストを使った入力のそろえ方を、Salesforce のヘルプに沿ってまとめます。

執筆 徳 雅俊(Salesforce 認定アドミニストレーター/Platform デベロッパー)・2026.10.23 公開

このページは、ご依頼いただける開発の例の解説です。実際の導入事例ではありません。機能の説明は、末尾の Salesforce 公式の資料で確かめた内容です。

この内容で相談する

こんなことで困っていませんか

  • 「USA」と「usa」のように、大文字と小文字だけが違う値が混ざっている[4]
  • 値の前後に、余分なスペースやタブが入っている[5]
  • 選択リストに、意味の重なる値が並んでいる(例:「完了-赤」「完了-黄」「完了-緑」)[11]
  • 郵便番号などの形式が、決まった形にそろっていない[4]
  • 連携やデータの読み込みで、選択リストにない値が入ってしまう[10]

なぜ起きるのか

制限なしの選択リストは、画面からは新しい値を入力できません。ただし、API やオートメーションなどからは新しい値を追加できます。[10]

入力規則の条件は、大文字と小文字を区別します。ヘルプの例では、大文字の「USA」を前提にした規則は、「usa」と入力された値には働かないと説明されています。[4]

入力規則は、保存の前に値が基準に合っているかを確かめる仕組みです。合わないときはエラーを表示して保存を止め、値を直すのは利用者に任されます。[1]

入力規則が動かない経路もあります。簡易作成でのレコード作成や、ワークフロールールとプロセスのスケジュール済みアクションによる更新では実行されません。[1][3]

直し方の選択肢

そろえ方は、自動で整える・保存を止める・選べる値を絞るの三つに分けられます。組み合わせて使うこともできます。[1][7][10]

  • 保存前フローで整える:保存前レコードトリガーフローは、データベースに保存される前にトリガーレコードの項目を更新できます。TRIM や UPPER、SUBSTITUTE などの数式関数と組み合わせて値を整えます[6][7][5]
  • 入力規則で形式を確かめる:REGEX 関数などで形式を確かめ、合わない値は保存の前にエラーにします[1][4][5]
  • 選択リストで値を絞る:[値セットで定義された値に選択リストを制限します] を選ぶと、API からも未承認の値を読み込めなくなります。複数の項目で同じ値を使うなら、グローバル選択リスト値セットも候補です[10][12]
  • テキスト項目を選択リストに変える:項目の [データ型の変更] から変換できます。一意の値が 4,000 を超えると変換は失敗します[13]
  • 既存の選択リスト値をまとめる:[置換] を使うと、既存のレコードの値を新しい値に置き換えられます[11]

作業の流れ

  • まとめ先を決める:同じ意味の値を、どの値にまとめるかを決めます。ヘルプの例では、三つの完了の値を「完了」一つにまとめています[11]
  • フローを作り始める:[設定] の [クイック検索] に「フロー」と入力して [フロー] を開き、レコードトリガーフローを作ります。[開始を設定] でオブジェクトと実行の条件を選びます[8]
  • 値を整える処理を置く:数式リソースで整えた値を作り、[割り当て] でトリガーレコードの項目に入れます。保存前フローでは、レコードを更新要素を足す必要はありません[8][6]
  • 入力規則を加える:オブジェクトの管理設定から [入力規則] に移動し、[新規] をクリックします。条件とエラーメッセージを入れ、[構文を確認] で数式を確かめます[2]
  • テストして有効化する:[デバッグ] でフローの動きを確かめ、エラーがなければ [有効化] をクリックします。その後、実際にレコードを作って結果を確かめます[8]
  • 既存の選択リスト値を直す:[置換] で値をまとめます。置換はジョブとしてキューに入り、状況は [設定] の [バックグラウンドジョブ] で確かめられます[11]

気をつけること

  • 保存前フローで使える要素は、割り当て・決定・レコードを取得・ループだけです。関連レコードの更新やメールの送信は、保存後フローで行います[6][7]
  • 保存の手順では、保存前フローが before トリガーより前に動きます。その後、カスタムの入力規則を含むシステム検証がもう一度実行されます[9]
  • 入力規則は、参照する項目がページレイアウトや API コールに含まれない場合でも適用されます。連携先でも規則が機能するかを確かめます[1]
  • UPPER と LOWER が変えるのは英字だけです。英字でない文字は変わりません[5]
  • 選択リスト値を置換すると、対象レコードの [更新者] の日時も変わります。ごみ箱に入っている値も更新されます[11]
  • 13 種を超えるオブジェクトで使うグローバル選択リスト値セットは、値の無効化はできますが、置き換えや削除はできません[12]

想定工数の目安

入力された値を、自動でそろえる3〜8時間

想定工数は、要件の確認から動作確認・本番反映の手順までを含む実働時間です。※Salesforce の環境(構築済みの仕組みや設定など、さまざまな要素)や、要件によって工数は大幅に前後するため、あくまでも目安です。

質問と答え

入力規則だけで表記はそろいますか?

入力規則は、値が基準に合うかを確かめて、合わなければ保存を止める仕組みです。値を書き換えるのは利用者です。保存時に自動で整えたい場合は、保存前フローを組み合わせます。[1][7]

保存前フローと保存後フローは、どちらを使えばよいですか?

トリガーレコード自身の項目を整えるだけなら、保存前フローが向いています。ヘルプでは、追加の保存がないため最大 10 倍速いとされています。関連レコードの更新やメールの送信が要る場合は、保存後フローを使います。[7]

入力規則は、大文字と小文字の違いを区別しますか?

区別します。ヘルプの例では、大文字の「USA」を前提にした規則は、「usa」と入力された値には働かないと説明されています。条件を書くときは、想定する書き方をすべて含めるか、先に値を整えておきます。[4]

選択リストに、API から決めていない値が入らないようにできますか?

項目の作成時に [値セットで定義された値に選択リストを制限します] を選ぶと、API からも未承認の値を読み込めなくなります。グローバル選択リスト値セットは、本質的に制限付きの選択リストです。[10][12]

出典

  1. 入力規則help.salesforce.com/s/articleView?id=platform.fields_about_field_validation.htm&language=ja&type=5(2026-10-23 確認)
  2. 入力規則の定義help.salesforce.com/s/articleView?id=platform.fields_defining_field_validation_rules.htm&language=ja&type=5(2026-10-23 確認)
  3. 入力規則の考慮事項help.salesforce.com/s/articleView?id=platform.fields_validation_considerations.htm&language=ja&type=5(2026-10-23 確認)
  4. 取引先住所入力規則の例help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_account_address.htm&language=ja&type=5(2026-10-23 確認)
  5. コンテキストごとの数式の演算子と関数help.salesforce.com/s/articleView?id=platform.customize_functions.htm&language=ja&type=5(2026-10-23 確認)
  6. 保存前レコードトリガーフローhelp.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_record.htm&language=ja&type=5(2026-10-23 確認)
  7. 保存前と保存後のレコードトリガーフローの決定help.salesforce.com/s/articleView?id=platform.automate_flow_build_get_started_record_triggered_before_or_after_save.htm&language=ja&type=5(2026-10-23 確認)
  8. レコードを更新する簡単な保存前レコードトリガーフローの作成help.salesforce.com/s/articleView?id=platform.automate_flow_build_get_started_record_triggered_example_update_record.htm&language=ja&type=5(2026-10-23 確認)
  9. トリガーと実行の順序(Apex 開発者ガイド)developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm(2026-10-23 確認)
  10. カスタム選択リスト項目の作成help.salesforce.com/s/articleView?id=platform.fields_creating_picklists.htm&language=ja&type=5(2026-10-23 確認)
  11. 選択リスト値の置換help.salesforce.com/s/articleView?id=platform.customize_replace.htm&language=ja&type=5(2026-10-23 確認)
  12. グローバル選択リスト値セットの作成help.salesforce.com/s/articleView?id=platform.fields_creating_global_picklists.htm&language=ja&type=5(2026-10-23 確認)
  13. テキスト項目から選択リスト項目への変換help.salesforce.com/s/articleView?id=platform.fields_converting_field_to_picklist.htm&language=ja&type=5(2026-10-23 確認)

環境に合わせた進め方は、相談フォームから一言でどうぞ。

この内容で相談する 開発例の一覧へ戻る
まずは20時間の無料トライアルから 無料トライアルを相談する
YOUR NEXT STEP

まずは、ひとつの
「こうしたい」から。

いただいた内容を確認し、ご入力のメールアドレスにご連絡します。

送信内容は、プライバシーポリシーに沿って取り扱います。