Administrator 練習問題 Q142
DreamHouse Realtyでは、将来の内覧予定が増えすぎないよう、住宅の内覧を今年中にスケジュールする必要があります。[内覧日]に今年の日付のみを入力できるようにするには、どうすればよいですか?
左の○で回答を選択。本文を押すと横線で除外でき、もう一度押すと戻せます。
1つ選択してください(0/1)
正答:D. [内覧日]が今年の日付であることを検証する入力規則を作成します。
解説
前提知識
- 入力規則(Validation Rule)は、ユーザーがレコードを保存する前に入力値を評価し、数式がTRUEになった場合にエラーメッセージを表示して保存を拒否します。
- Salesforce公式には、日付項目が今年以外の場合にエラーとするサンプルとして、
YEAR(My_Date__c) <> YEAR(TODAY())が示されています。 TODAY()は現在の日付、YEAR()は日付の年を返します。したがって年が一致しない状態をエラー条件にできます。
設問の状況を分解する
- DHRは、[内覧日]へ今年の日付だけを保存できるようにする必要があります。
- 必要なのは表示や事後検出ではなく、範囲外の日付を保存させない強制制御です。
- 日付項目を数式で評価して保存を拒否できる入力規則が要件に合います。
選択肢の検討
- A. ユーザーの内覧カレンダーをSalesforceに同期し、今年だけを表示するようにフィルターします。 → 不正解。カレンダーの同期や表示フィルターは、レコードの[内覧日]へ今年以外の日付を保存することを防ぎません。
- B. 今年にスケジュールされていない内覧日を表示するレポートを作成します。 → 不正解。レポートは保存済みデータを検出する事後統制です。無効な日付の保存自体は拒否できません。
- C. ヘルプテキストを追加し、今年中の内覧日のみを入力するようユーザーに案内します。 → 不正解。ヘルプテキストは入力方法を説明しますが、範囲外の日付を入力・保存することは技術的に可能です。
- D. [内覧日]が今年の日付であることを検証する入力規則を作成します。 → 正解。[内覧日]の年と現在年が異なる場合にTRUEとなる数式を設定し、エラーを表示して保存を拒否できます。
管理者としての対処手順
- [設定]→[オブジェクトマネージャー]→対象オブジェクト→[入力規則]→[新規]を開きます。
- エラー条件数式を作成します。概念例は
YEAR(Showing_Date__c) <> YEAR(TODAY())です。実際の項目API参照名に置き換えます。 - [内覧日]が任意項目で、空欄を許可する要件なら、必要に応じて空欄を除外する条件も組み込みます。
- 「内覧日は今年の日付を入力してください」など、修正方法が分かるエラーメッセージを設定します。
- 前年、今年、翌年の日付で保存をテストします。
あわせて覚えておきたいポイント
- 入力規則は「許可する状態」ではなく、エラーにする状態がTRUEになるように数式を作ります。
TODAY()を使うため、年が変わると許可される年も自動的に変わります。過年度レコードを翌年に編集する運用がある場合は、既存レコードへの影響もテストします。- レポートは検出、ヘルプテキストは案内、入力規則は保存時の強制という役割の違いを押さえます。
出典(Salesforce公式)
- Create Validation Rules — 入力規則が保存前に値を検証してエラーを表示すること、および今年の日付だけを許可する公式サンプル数式を裏付けます。
- Sample Date Validation Rules —
YEAR(My_Date__c) <> YEAR(TODAY())を使用した「日付が今年であること」の入力規則例を裏付けます。 - Validation Rules — 入力規則の数式がTRUEの場合にエラーメッセージを表示し、無効な値の保存を防ぐ仕組みを裏付けます。