【Salesforce】動的関連リストが想定と違う時の管理者が見るべき原因

【Salesforce】動的関連リストが想定と違う時の管理者が見るべき原因
🛡️ 超解決

Salesforceで動的関連リストを使用していると、表示されるレコードが想定と異なる場合があります。例えば、関連先オブジェクトのレコードが全く表示されない、あるいは本来表示されるべきレコードが欠けているといった現象です。このような問題は、Salesforceの高度なセキュリティモデルやリレーション定義に起因することが多く、管理者による系統的な調査が必要です。本記事では、管理者が原因を特定し、適切な対処を行うためのポイントを解説します。

【要点】この記事で確認すること

  • 最初に見る場所: 動的関連リストの設定(フィルタ条件、表示件数)と、親オブジェクトのリレーション定義(マスタ詳細/参照関係)
  • 切り分けの軸: 端末・ブラウザの問題ではなく、設定と権限の問題であること。また、システム管理者アカウントで同じ挙動が再現するかどうか
  • 注意点: 組織全体の共有設定やプロファイル権限を変更すると、他の画面にも影響が出ます。変更前に影響範囲を必ず確認しましょう

ADVERTISEMENT

動的関連リストの仕組みと制約

動的関連リストとは何か

動的関連リストは、SalesforceのLightningページやレコード詳細画面に配置できるコンポーネントで、関連オブジェクトのレコードを動的に表示します。従来の「関連リスト」と異なり、表示条件(フィルタ)や表示件数を細かく設定でき、特定の条件を満たすレコードだけを一覧表示できます。また、表示する項目もカスタマイズ可能で、ユーザーの役割に応じて見せるデータを制御できます。

表示制御のルール

動的関連リストの表示には、以下のルールが適用されます。

  • リレーションの定義:対象オブジェクトが親オブジェクトに対し、マスタ詳細関係または参照関係(ルックアップ)で結ばれている必要があります。
  • フィルタ条件:設定された条件(項目値、演算子、値)に合致するレコードのみ表示されます。日付や数値の条件は、動的な値(今日、今週など)も使えます。
  • セキュリティ:ユーザーが参照権限を持ち、かつ共有設定でアクセスできるレコードのみが表示されます。
  • 表示件数:設定された最大件数まで表示されます。それ以上のレコードがある場合、「すべて表示」のリンクから一覧全体にアクセスできます。

想定と違う表示になる代表的な原因

リレーションの定義不足

動的関連リストが正しく表示されない最も多い原因は、親オブジェクトと子オブジェクトのリレーションが適切に定義されていないことです。例えば、ルックアップ関係が削除されていたり、参照先オブジェクトが間違っている場合があります。また、マスタ詳細関係で「子レコードの共有」設定が適切でないと、ユーザーに表示されないこともあります。

フィルタ条件の誤り

動的関連リストに設定したフィルタ条件が原因で、期待するレコードが表示されないことがよくあります。例えば、日付フィルタで「今日」を指定したが、時差の関係で実際の日付とずれているケースや、条件式で複数フィールドをANDで結合した結果、該当レコードが0件になるケースがあります。また、演算子の選択ミス(「次の値を含む」と「次の値と等しい」の間違い)も起きがちです。

レコードタイプとページレイアウトの問題

動的関連リストはページレイアウトに割り当てられたレコードタイプに依存します。ユーザーのプロファイルや権限セットによって、表示されるレコードタイプが異なる場合があります。例えば、あるプロファイルでは特定のレコードタイプのみが選択可能で、そのレコードタイプに関連リストが正しく設定されていないと、動的関連リストが表示されないか、異なるデータが表示される可能性があります。

セキュリティ設定の問題

Salesforceのセキュリティモデルは複雑で、プロファイル、権限セット、共有ルール、組織の共有設定などが絡み合います。ユーザーが動的関連リストで表示されるレコードを参照するためには、以下のすべてを満たす必要があります。

  • 対象オブジェクトに対する「参照」権限を持っていること。
  • レコードへのアクセス権(共有設定)を有していること。
  • 親オブジェクトのレコードに対するアクセス権を持っていること(特にマスタ詳細関係では、親レコードへのアクセスが子レコードの表示に影響します)。

これらの条件のうち一つでも欠けると、レコードは表示されません。特に、親レコードが参照不可の場合、子レコードがどんなに権限があっても表示されない点に注意が必要です。

動的関連リストのバージョンと制限

Salesforceのエディションやライセンスによって、動的関連リストで使用できる機能に制限があります。例えば、Lightning Experienceでのみ利用可能な機能や、一部の項目(通貨項目など)がフィルタ条件に使えないといった制約があります。また、表示件数の上限(デフォルト10件、最大200件など)を超えていると、一部のレコードしか表示されません。管理者はまず、組織のエディションと動的関連リストの仕様を確認しましょう。

原因を切り分けるステップバイステップ手順

以下の手順に従って、原因を特定します。システム管理者としてログインしていることを前提とします。

  1. 手順1:リレーション定義を確認する
    設定 > オブジェクトマネージャ から親オブジェクトと子オブジェクトを開き、関連項目を確認します。子オブジェクト側の項目で、親オブジェクトへの参照が正しく設定されているか、またそのリレーションが削除されていないかを確認します。
  2. 手順2:フィルタ条件をシステム管理者アカウントでテストする
    管理者として表示されるかどうかを確認します。管理者であれば原則すべてのレコードが見えるため、もし管理者でも表示されない場合はリレーションやフィルタ設定が原因です。管理者のみ表示される場合、権限や共有設定が問題です。
  3. 手順3:レコードタイプとページレイアウトの割り当てを確認する
    該当のユーザープロファイルが使用するページレイアウトを確認し、動的関連リストが正しく配置されているか、またレコードタイプが正しく選択されているかをチェックします。
  4. 手順4:プロファイル・権限セットでオブジェクト権限を確認する
    該当ユーザーのプロファイルと権限セットを開き、子オブジェクトの参照権限があるか、また「すべて表示」や「編集」権限が適切かを確認します。
  5. 手順5:共有設定を確認する
    組織の共有設定(デフォルト外部アクセス)と、共有ルール、手動共有、ロール階層などを確認します。特に、親レコードへのアクセス権が子レコードに影響する場合があるため、親レコードの共有設定もチェックします。
  6. 手順6:動的関連リストのプロパティを確認する
    Lightningアプリケーションビルダーで該当のページを開き、動的関連リストコンポーネントのプロパティを確認します。フィルタ条件、表示件数、ソート順などが意図した設定であるかを再確認します。

状況別の原因比較表

症状 考えられる原因 確認すべき設定
関連リストにレコードが1件も表示されない リレーションの欠如、フィルタ条件で0件、親レコードへのアクセス権なし オブジェクトのリレーション定義、フィルタ条件、親オブジェクトの共有設定
一部のレコードだけ表示される 共有設定の制限、レコードタイプの違い、表示件数の上限 ロール階層、共有ルール、プロファイルのレコードタイプ割り当て、コンポーネントの最大表示件数
管理者では表示されるが一般ユーザーでは表示されない 権限不足、共有設定の欠如 プロファイルの参照権限、権限セット、共有ルール・手動共有
表示されるレコードが古い フィルタ条件の日付計算がオフ、またはインデックス未更新 フィルタの動的値(今日・今週など)、Salesforceのキャッシュやインデックス更新待ち
表示順序が想定と違う ソート設定の誤り 動的関連リストの「並び替え」プロパティ

管理者が確認すべきポイントと失敗パターン

よくある失敗パターン

  • フィルタ条件の固定値:例えば「作成日」を特定の日付で固定してしまい、日が変わると表示されなくなるケース。動的な値(今日、今週)を推奨します。
  • ルックアップ関係をマスタ詳細のように扱う:ルックアップの場合、子レコードの共有設定は独立しています。親レコードへのアクセス権がなくても子レコードだけ権限があれば表示される場合があるため、混乱を招きます。
  • 権限セットの競合:複数の権限セットで異なる設定が適用されていると、予期せぬ制限がかかることがあります。特に「最小権限の原則」に反する設定がないか確認します。
  • 変更が即時反映されない:権限や共有設定の変更は、ユーザーのセッションが再起動されるまで反映されないことがあります。ログインし直しや、キャッシュクリアを試みましょう。

管理者へ伝える情報

問題解決のためには、以下の情報を収集してから設定変更に着手しましょう。

  • 問題が発生しているユーザー、プロファイル、権限セット
  • 動的関連リストが配置されているLightningページのURLとコンポーネント名
  • 期待する表示結果と実際の表示結果のスクリーンショット
  • 変更履歴(誰が、いつ、何を変更したか)は設定監査トレイルで確認できます。

また、Salesforceのデバッグモードや「ログインとして」機能を使って、ユーザーの権限で実際に画面を確認することも有効です。ただし、本番環境で操作する場合は影響を十分に考慮してください。

よくある質問(FAQ)

Q1. 動的関連リストに「この関連リストには表示するレコードがありません」と表示される

フィルタ条件に該当するレコードが存在しないか、ユーザーがアクセス権を持っていない可能性があります。まず管理者として同じフィルタ条件でレポートを実行し、該当レコードが存在するかを確認します。存在する場合は共有設定や権限をチェックしましょう。

Q2. 特定のユーザーだけ表示件数が少ない

プロファイルや権限セットでオブジェクト権限に差がある可能性があります。また、所属するロールや共有ルールの影響で、見えるレコード数が異なることがあります。該当ユーザーの「ログインとして」機能で実際の表示を確認し、権限セットの差分を比較しましょう。

Q3. 動的関連リストのフィルタを変更したが、ユーザーに反映されない

変更が保存されているか、公開設定が正しいか確認します(Lightningページのバージョンがアクティブである必要があります)。また、ユーザーがブラウザのキャッシュをクリアしていない場合、古い設定のまま表示されることがあります。ページの公開後、ユーザーに再ログインを促してください。

Q4. 参照関係の子レコードが表示されないが、マスタ詳細関係だと表示される

参照関係では、子レコードの表示に親レコードへのアクセス権は必須ではありませんが、親レコードの参照権限がないと子レコードが表示されない場合があります(組織の共有設定次第)。また、参照関係の子レコードを表示するには、子オブジェクトの「外部参照」項目が正しく設定されている必要がある場合もあります。詳細はSalesforceのヘルプを参照してください。

まとめ

動的関連リストが想定と違う場合、原因はリレーション定義、フィルタ条件、レコードタイプ、セキュリティ設定、表示制限のいずれかにあります。管理者はまずシステム管理者アカウントでの挙動を確認し、設定と権限を系統的にチェックすることで原因を特定できます。変更を行う際は、必ず影響範囲を事前に評価し、Sandboxでのテストを推奨します。問題が解決しない場合は、Salesforceサポートに問い合わせる前に、必要な情報を整理しておくと対応がスムーズになります。


この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。