Salesforceの表記ゆれを保存前フローと入力規則でそろえる
同じ意味の値が違う書き方で入っていると、レポートでは別々の値として数えられます。このページでは、保存時に値を整える保存前レコードトリガーフロー、形式を確かめる入力規則、選択リストを使った入力のそろえ方を、Salesforce のヘルプに沿ってまとめます。
このページは、ご依頼いただける開発の例の解説です。実際の導入事例ではありません。機能の説明は、末尾の Salesforce 公式の資料で確かめた内容です。
この内容で相談するこんなことで困っていませんか
なぜ起きるのか
制限なしの選択リストは、画面からは新しい値を入力できません。ただし、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]
出典
- 入力規則help.salesforce.com/s/articleView?id=platform.fields_about_field_validation.htm&language=ja&type=5(2026-10-23 確認)
- 入力規則の定義help.salesforce.com/s/articleView?id=platform.fields_defining_field_validation_rules.htm&language=ja&type=5(2026-10-23 確認)
- 入力規則の考慮事項help.salesforce.com/s/articleView?id=platform.fields_validation_considerations.htm&language=ja&type=5(2026-10-23 確認)
- 取引先住所入力規則の例help.salesforce.com/s/articleView?id=platform.fields_useful_validation_formulas_account_address.htm&language=ja&type=5(2026-10-23 確認)
- コンテキストごとの数式の演算子と関数help.salesforce.com/s/articleView?id=platform.customize_functions.htm&language=ja&type=5(2026-10-23 確認)
- 保存前レコードトリガーフローhelp.salesforce.com/s/articleView?id=platform.flow_concepts_trigger_record.htm&language=ja&type=5(2026-10-23 確認)
- 保存前と保存後のレコードトリガーフローの決定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 確認)
- レコードを更新する簡単な保存前レコードトリガーフローの作成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 確認)
- トリガーと実行の順序(Apex 開発者ガイド)developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_triggers_order_of_execution.htm(2026-10-23 確認)
- カスタム選択リスト項目の作成help.salesforce.com/s/articleView?id=platform.fields_creating_picklists.htm&language=ja&type=5(2026-10-23 確認)
- 選択リスト値の置換help.salesforce.com/s/articleView?id=platform.customize_replace.htm&language=ja&type=5(2026-10-23 確認)
- グローバル選択リスト値セットの作成help.salesforce.com/s/articleView?id=platform.fields_creating_global_picklists.htm&language=ja&type=5(2026-10-23 確認)
- テキスト項目から選択リスト項目への変換help.salesforce.com/s/articleView?id=platform.fields_converting_field_to_picklist.htm&language=ja&type=5(2026-10-23 確認)