入力規則の記述のヒント
入力規則を記述するときは、次の点に留意してください。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: Essentials Edition、Contact Manager Edition、Group Edition、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、Developer Edition、および Database.com Edition |
- 割り当てルール、項目自動更新、項目レベルセキュリティ、非表示項目など、レコードが入力規則に違反する可能性のあるすべての設定を考慮します。
- 同じ項目のルールが競合している場合、ユーザーはレコードを保存できないため、入力規則は必ずテストしてから有効化します。デバッグログを使用して、規則の実装の詳細を監視します。
ヒント 設計の甘い入力規則によって、有効なデータを保存できない場合があります。入力規則は、徹底的にテストしてから有効化するようにしてください。デバッグログを使用して、規則の実装の詳細を監視することもできます。 - 入力規則で関連項目を参照する場合は、それらのオブジェクトが配置されていることを確認してください。
- 数式に RecordType.Id 差し込み項目を使用して、さまざまなレコードタイプに対して異なる入力規則を適用します。
- Boolean エラー条件式は正常に機能します。次に例を示します。
- 正:
CloseDate < TODAY() - 誤:
IF(CloseDate < TODAY(), TRUE, FALSE)
- 正:
- 入力規則に BEGINS 関数や CONTAINS 関数が含まれる場合、空白項目は有効として処理されます。たとえば、納入商品のシリアル番号が 3 で始まるかどうかを評価する入力規則では、シリアル番号が空白の納入商品は有効と判断されます。
- 数値項目に特定の値が確実に指定されるように入力規則を使用する場合は、値を含まない項目が ISBLANK 関数に含まれるようにします。たとえば、カスタム項目に 1 の値が含まれていることを検証するには、次の入力規則を使用して、項目が空白か、項目で他の数字が示されている場合にエラーを表示します。
OR (ISBLANK (field__c), field__c<>1) - IsClosed または IsWon 商談差し込み項目を入力規則数式で使用しないようにします。代わりに、ISPICKVAL 関数を使用して、該当する値が [フェーズ] に含まれているかどうかを判別します。たとえば、次の入力規則数式では、[フェーズ] が [商談成立] である場合、[Project Start Date (プロジェクト開始日)] カスタム項目が必須になります。
AND(ISPICKVAL(StageName, "Closed Won"), ISBLANK(Project_Start_Date__c)) - チェックボックス項目を使うことで入力規則を簡易化できます。チェックボックス項目は「True」か「False」を返すため、演算子を必要としません。たとえば、この入力規則数式では、HasOpportunityLineItem 差し込み項目を使うことで、ユーザーが商談の変更を保存する前に商談に商談商品が含まれていることを確認できます。
NOT(OR(ISNEW(),HasOpportunityLineItem)) - 入力規則を作成または更新するときに、[項目の挿入] をクリックし、エンティティで項目が使用できるかどうかを確認します。エンティティの項目が存在しない場合、エラーが表示されます。
入力規則エラーメッセージの記述のヒント
- [完了予定日] は今日より後である必要があるなど、有効なエントリの種別についてユーザーに指示します。
- 特にエラーメッセージをページ上部に表示する場合、入力規則に違反した項目を特定するように項目の表示ラベルを含めます。
- 入力規則を定義するとき、エラー表示場所を [ページの最上位へ] または [項目] に設定できます。エラー表示場所として設定した項目が後で削除されたか、参照のみであるか、ページレイアウト上で表示されない場合、エラー表示場所は自動的に [ページの最上位へ] に変更されます。
- エラーメッセージを翻訳するには、トランスレーションワークベンチを使用します。
- エラーの発生元を特定するために、対応する番号を入力規則とエラーメッセージに割り当てます。
この記事で問題は解決されましたか?
ご意見をお待ちしております。

