Administrator 練習問題 Q218
Northern Trail Outfittersは、カスタムオブジェクトの請求書を使用して、外部の請求システムから顧客の支払い情報を収集します。請求システムフィールドは、すべての請求書レコードに入力する必要があります。管理者はこの要件をどのように確認する必要がありますか?
左の○で回答を選択。本文を押すと横線で除外でき、もう一度押すと戻せます。
1つ選択してください(0/1)
正答:A. フィールドを普遍的に必要なものにします。
解説
前提知識
普遍的に必須の項目(Universally Required Field)とは
カスタム項目の設定画面にある[必須]チェックボックスをオンにした項目のことです。公式ヘルプは次のように定義しています。
- 「普遍的に必須の項目は、すべてのレコードタイプで必須になる」
- 「編集ページには、項目レベルセキュリティに関わらず、普遍的に必須の項目が常に表示される」 つまり、レコードタイプでもページレイアウトでも項目レベルセキュリティでも逃げられません。さらに重要なのは、画面入力だけでなくAPI・データローダ・インポートウィザード経由の登録でも、空欄なら失敗することです。 なお、この機能はカスタム項目専用です。公式は「標準項目は普遍的に必須にできない」と明記しています。今回はカスタムオブジェクトのカスタム項目なので、条件を満たしています。
💡 ここがまだモヤッとする方へ。必須化の手段と、それぞれどこまで効くのかを整理した記事があります → Salesforceで項目を入力必須にする方法を整理する
レコードタイプとは
同じオブジェクトの中で、用途ごとに違うページレイアウトや選択リスト値を使い分ける仕組みです。「国内請求」と「海外請求」で入力項目を変える、といった使い方をします。 レコードタイプ自体に「必須を設定する機能」はありません。必須化は、レコードタイプに割り当てたページレイアウト側で行います。
プロセスビルダー
条件に応じて項目更新やレコード作成などを実行する旧世代の自動化機能です。値を自動設定することと、外部システムから正しい値が渡されたことを検証することは別です。Process Builder のサポートと更新は2025年12月31日に終了し、既存プロセスは継続しますが、新しい自動化にはFlow Builderが推奨されています。
設問の状況を分解する
- カスタムオブジェクト「請求書」を使っている
- データの出どころは外部の請求システム
- 請求システム項目は、すべての請求書レコードに入力されている必要がある キーワードは2つです。
- 「すべてのレコード」:例外なし。条件付きではない
- 「外部システムから収集」:入力経路が画面とは限らない。APIやデータローダ経由の登録が想定される この2つが揃うと、全レコードタイプ・全経路で例外なく効く必須化が必要になります。それが普遍的に必須の項目です。 初学者が誤解しやすいのは、「入力を強制したいのだから、自動化で値を入れてしまえばいい」と考えてしまう点です。自動で値を入れるのは「埋める」ことであって、「入力されていることを保証する」ことではありません。設問は「入力されていることを確認する(担保する)」と言っています。
選択肢の検討
A. フィールドを普遍的に必要なものにします。 → ⭕ 正解
項目定義で[必須]をオンにするだけで、すべてのレコードタイプ・すべてのページレイアウトで必須になり、APIやデータローダ経由の登録でも空欄なら失敗します。「すべての請求書レコードに入力されている必要がある」という要件を、最もシンプルに、漏れなく満たせます。 カスタムオブジェクトのカスタム項目なので、「標準項目には使えない」という制約にも引っかかりません。
B. フィールドを設定するプロセスビルダーを作成します。 → ✕
Process Builderで固定値や計算値を設定することはできますが、それでは外部請求システムから必要な値が受信できたことを保証できません。また、プロセスが実行される前の保存処理や連携設計に依存し、項目定義の必須ほど単純で一貫した制約にはなりません。 さらに、Process Builder のサポートと更新は2025年12月31日に終了しており、新しい自動化にはFlow Builderが推奨されています。本問では自動化を追加せず、項目自体を普遍的に必須にするのが適切です。
C. 子の承認プロセスを定義します。 → ✕
承認プロセスは、レコードを先に進めていいかを人間に判断してもらう仕組みです。入力の強制とは目的がまったく違います。そもそも承認プロセスは人が手動で申請するものであり、外部システムから自動登録されるレコードのチェックには向いていません。 選択肢の「子の承認プロセス」という表現はSalesforceの一般的な設定名称として不自然ですが、どの承認構成を指すとしても、全保存経路で項目値を必須にする要件は満たしません。
D. レコードタイプのフィールドを必須にします。 → ✕(惜しいが不正解)
最も紛らわしい選択肢です。問題点は2つあります。
- レコードタイプに必須を設定する機能は存在しない。実際には、レコードタイプに割り当てたページレイアウトで必須にすることになります
- ページレイアウトの必須は画面入力にしか効かない。外部システムからAPIやデータローダで登録されると、空欄でも通ってしまいます さらに、レコードタイプごとの設定は「すべての請求書レコードで必要」という要件に対して余分な手間です。レコードタイプが増えるたびに設定漏れのリスクが生まれます。 これが正解になるのは、「国内請求のときだけこの項目を必須にしたい」のように、レコードタイプごとに必須項目を変えたい場合です。
管理者としての対処手順
- [設定]→[オブジェクトマネージャ]→ カスタムオブジェクト[請求書]を開く
- [項目とリレーション]で、請求システム項目を開き[編集]する
- [必須]チェックボックスをオンにして保存する
- 既存レコードに空欄がないかをレポートで確認し、あれば先に埋める
- 外部システム連携の担当者に、この項目が必須になったことを事前に共有する
- サンドボックスで、データローダ経由の登録でも空欄が弾かれることを確認する
⚠️ 既存レコードに空欄が残ったまま必須化すると、そのレコードを次に編集した人が保存できなくなります。外部連携を含む場合は、連携処理が失敗する可能性もあるため、必ず既存データの清掃を先に行ってください。
あわせて覚えておきたいポイント
- 必須化の使い分けは「効かせたい範囲」で決まります。例外なし・全経路なら項目定義の必須、条件付きなら入力規則、画面だけでよいならページレイアウト。
- 普遍的に必須の項目は、項目レベルセキュリティで非表示にしていても編集ページに表示されます。「見せたくないけど必須にしたい」は両立しないと覚えておいてください。
- 標準項目は普遍的に必須にできません。設問に「標準オブジェクトの標準項目」が出てきたら、答えは入力規則かページレイアウトに変わります。
- リッチテキスト項目、数式項目、自動採番項目、チェックボックスなどは、項目定義で必須にできません。項目種別を先に確認する習慣をつけてください。
出典(Salesforce公式)
- Considerations for Universally Required Fields — 「普遍的に必須の項目はすべてのレコードタイプで必須になる」「編集ページには、項目レベルセキュリティに関わらず普遍的に必須の項目が常に表示される」「標準項目は普遍的に必須にできない」(本問の決定的根拠)
- Require Field Input to Ensure Data Quality — 普遍的に必須のカスタム項目は、Salesforce画面、Lightning Platform API、その他の自動処理でレコードを保存するときに値が必要であること
- How to Make a Custom Field Required in Salesforce — 項目定義の必須は、UI、API、連携、一括アップロードなど保存方法を問わず適用され、ページレイアウトの必須は画面に限定されること
- Process Builder — Process Builder のサポートと更新は2025年12月31日に終了し、既存プロセスは継続するがFlow Builderが推奨されていること
- Custom Field Attributes — カスタム項目の属性として[必須]を設定できることと、その意味
- Assign Page Layouts to Record Types — レコードタイプごとの入力制御は、レコードタイプ自体ではなく割り当てたページレイアウトで行うという仕組み