Salesforceの画面フローで、特定の入力項目が一部のユーザーにだけ表示されないという問題は、本番環境で発生すると業務に大きな影響を与えます。この問題の原因は、フロー自体の設定ミスから権限管理、条件分岐の誤りまで多岐にわたります。本番環境に反映する前に、適切な切り分け手順を実践することで、リリース後のトラブルを未然に防げます。この記事では、本番反映前の段階で実施すべき原因特定と対応方法を具体的に解説します。
【要点】この記事で確認すること
- 最初に見る場所: フローの画面要素にある「表示条件」、プロファイルの項目アクセス権、オブジェクトの項目レベルセキュリティ。
- 切り分けの軸: 問題が全ユーザーか一部ユーザーか、特定の画面のみか全画面か、見えない項目の属性(必須・選択・参照)は何か。
- 注意点: 本番環境に直接変更を加えず、Sandboxや開発環境で十分にテストする。管理者権限で確認するだけでなく、一般ユーザー権限で動作を検証すること。
ADVERTISEMENT
目次
1. 入力項目が見えない原因を分類する
原因を効率的に特定するには、まず問題のパターンを分類します。以下の3つの軸で切り分けると、調査の優先順位が明確になります。
1-1. ユーザー単位 vs 画面単位
特定のユーザーだけ表示されない場合は、プロファイルや権限セット、ユーザー条件が関与している可能性が高いです。逆に、特定の画面フロー全体で項目が見えない場合は、フロー内の表示条件や項目の設定自体に問題があることが多いです。
1-2. 表示条件の有無
画面フローの各画面要素には「表示条件」を設定できます。例えば「取引先の業種が製造業の場合にのみ表示する」といった条件が、意図しないユーザーに対して非表示の原因になるケースが頻繁にあります。
1-3. 権限と項目レベルセキュリティ
プロファイルまたは権限セットで、その項目への「読み取り」権限がないと、フロー上でも項目が表示されません。また、項目レベルセキュリティ(FLS)で参照不可になっている場合も同様です。
これらの3軸で整理すると、原因の候補を大幅に絞り込めます。次の章から具体的な確認手順を説明します。
2. 画面フロー内の設定を確認する
フロービルダーを開き、問題の画面要素をダブルクリックして詳細を確認します。特に以下の3点をチェックしてください。
2-1. 表示条件のロジック
画面要素の「表示条件」フィールドに数式や条件が設定されている場合、その条件が正しいか検証します。たとえば、{!$Record.Type} = ‘Partner’ という条件が設定されていると、取引先タイプが「パートナー」以外のレコードでは項目が非表示になります。この条件が想定通りか、対象ユーザーのレコードで条件が満たされるかをSandboxでテストしましょう。
| 原因 | 症状 | 確認箇所 |
|---|---|---|
| 表示条件の誤り | 特定の条件を満たすユーザーだけ見えない、または見える | 画面要素の「表示条件」 |
| プロファイル権限不足 | 特定のプロファイルの全ユーザーで見えない | プロファイルの「システム権限」>「項目アクセス」 |
| 権限セット未割り当て | 権限セットありのユーザーは見えるが、なしのユーザーは見えない | 権限セットの割り当て状態 |
| 項目レベルセキュリティ(FLS) | すべてのユーザーでその項目が参照できない | オブジェクトマネージャー>該当オブジェクト>項目レベルセキュリティ |
| フローの条件分岐 | フローが別のパスを通ると、その画面自体がスキップされる | フローの「決定」要素と画面要素の接続 |
2-2. 必須項目の設定
画面要素の「必須」設定が有効になっている場合、ユーザーが入力しなければ次に進めません。しかし、これ自体は表示/非表示には直接影響しません。「必須」であるにもかかわらず非表示になると、ユーザーは画面を進められなくなります。必須項目が非表示になっていないか、併せて確認してください。
2-3. 参照関係のフィールド
項目が参照関係(ルックアップ)の場合、参照先オブジェクトのレコードをユーザーが参照できる権限を持っている必要があります。参照権限がないと、ルックアップフィールドが表示されないことがあります。これも権限設定の一部です。
3. プロファイルと権限セットの設定を確認する
権限系のチェックは、本番反映前に必ず実施すべき項目です。以下の手順で進めてください。
3-1. プロファイルの項目アクセス権
セットアップメニューから「プロファイル」を開き、問題のユーザーが属するプロファイルを選択します。「オブジェクト設定」から該当するオブジェクトを開き、項目レベルのアクセス権を確認します。該当項目の「読み取り」がチェックされていない場合、フロー上でも非表示になります。
3-2. 権限セットの確認とテスト割り当て
権限セットを使用している場合、それが正しく割り当てられているか確認します。テストとして、問題のユーザーに対して一時的に権限セットを割り当て(または削除し)、現象が変わるか確認することで原因を特定できます。ただし、本番環境での割り当て変更は影響が大きいため、Sandboxでテストしましょう。
3-3. 共有ルールと組織の共有設定
フロー内で表示するレコードがユーザーに共有されていない場合、そのレコードに関連する項目が表示されないこともあります。共有設定も併せて確認してください。特にApex共有やManual共有を利用している場合、見落としがちです。
4. オブジェクトの項目レベルセキュリティ(FLS)を確認する
オブジェクトマネージャから該当オブジェクトを開き、「項目とリレーション」で目的の項目を選択します。「項目レベルセキュリティ」をクリックすると、各プロファイルごとに「参照可能」「編集可能」が設定されています。ここで「参照可能」が外れているプロファイルがある場合、そのプロファイルのユーザーにはフロー上で項目が表示されません。この設定は権限セットで上書きすることも可能ですが、基本はプロファイル設定が優先されます。
5. ユーザー条件やセグメントによる制御を確認する
画面フローが「ユーザー条件」や「セグメント」に基づいて表示を変えている場合があります。例えば、特定のロールのユーザーだけに表示するといった設定です。フロービルダーで「画面」要素の詳細を開き、「条件に基づいて表示」のチェックを確認します。ここに数式や条件を設定していると、該当しないユーザーには項目自体が表示されません。
5-1. 数式とグローバル変数の注意点
表示条件に数式を使う場合、$Userや$Profileなどのグローバル変数を使用することがあります。例えば{!$Profile.Name} = ‘System Administrator’ という条件は、管理者にしか項目を表示しません。一般ユーザーでテストする際は、その条件が満たされるか事前に確認してください。
6. テスト実行時の切り分け手順
本番反映前に、以下の手順で確実に原因を切り分けましょう。
- 問題が報告されたユーザーと同じプロファイル・権限セットを持つテストユーザーを作成し、Sandboxでフローを実行します。可能であれば、実際のユーザーをSandboxにコピーしてテストするのが理想です。
- フローのデバッグログを有効にします。セットアップ→「デバッグログ」で該当ユーザーを追加し、フロー実行後のログを確認します。ログ内に「Screen: …」の行があり、表示条件の評価結果(true/false)が記録されます。
- フロービルダーの「プレビュー」機能を使用し、問題のユーザーが持つレコードや値をシミュレートします。表示条件を満たす入力値を与えたときに項目が表示されるか確認します。
- 権限の切り分けとして、一時的に管理者権限を持つユーザー(例: System Administratorプロファイル)でフローを実行し、項目が表示されるか確認します。管理者で表示されるなら、権限の問題が強く疑われます。
- フロー内の条件分岐(決定要素)を確認します。フローが別のパスを通ると、特定の画面そのものが実行されない可能性があります。フロービルダーで「決定」の条件式を見直し、意図したパスを通るかをデバッグログで確認します。
- オブジェクトの項目レベルセキュリティとプロファイルの項目アクセス権を再度ダブルチェックします。特に、権限セットで項目アクセスを上書きしている場合は、権限セット側の設定も確認します。
- すべてのチェックが完了したら、Sandbox内で対策(表示条件の修正、権限付与など)を実施し、問題が解決することを確認してから本番環境にリリースします。
7. よくある失敗パターンと管理者への報告方法
7-1. 失敗パターン
- 表示条件でユーザーIDを直接指定する際の誤入力: ユーザーIDは18桁ですが、15桁を指定してしまうケースがあります。特に半角スペースの有無なども注意が必要です。
- 権限セットの割り当て忘れ: 本番環境で割り当てるつもりが、Sandboxでしか割り当てていないことがあります。リリース前に割り当てリストを確認しましょう。
- 項目レベルセキュリティの変更漏れ: 新しい項目を追加した際、FLSを更新し忘れると、全ユーザーに見えなくなります。
- フローの条件分岐で、本来表示すべき画面がスキップされる: 例えば、条件を「~の場合」と設定したのに、その条件を満たしていないユーザーが該当し、別の画面に遷移してしまう。
7-2. 管理者へ確認する情報
- 問題が発生しているユーザーのユーザー名、プロファイル名、ロール、割り当てられている権限セットの一覧。
- フローのバージョン番号と、問題の画面要素のラベル。
- 該当するレコードのデータ(どの値を入力したか、またはどのレコード上で表示されないか)。
- デバッグログがあればその内容(特に表示条件の評価結果)。
7-3. よくある質問(FAQ)
Q1. 管理者アカウントでは項目が見えるのに、一般ユーザーでは見えません。
A1. 権限の問題が疑われます。プロファイルまたは権限セットの項目アクセス権、および項目レベルセキュリティを確認してください。管理者プロファイルは通常すべての項目を参照可能なため、権限不足が原因です。
Q2. 表示条件を確認しましたが、すべてのユーザーに表示する設定になっています。それでも見えません。
A2. その場合、フローが別の条件分岐でその画面自体をスキップしているか、レコードの共有設定でそのレコードがユーザーに参照できない可能性があります。フローの決定要素と、レコードの共有設定を確認してください。
Q3. Sandboxでは正常なのに、本番環境だけ問題が発生します。
A3. Sandboxと本番環境ではデータや設定が異なる場合があります。特に、本番環境で権限セットの割り当てが漏れていたり、項目レベルセキュリティの設定が異なっている可能性があります。本番環境の設定をSandboxと比較してください。
まとめ
画面フローの入力項目が一部ユーザーに見えない問題の原因は、表示条件、権限設定、フローの分岐ロジックの3つに大別されます。本番環境に反映する前に、この記事で紹介した切り分け手順を実践することで、トラブルを未然に防ぐことができます。特に、管理者権限と一般ユーザー権限の両方でテストすること、デバッグログを活用して表示条件の評価を確認することが重要です。Sandboxで徹底的に検証し、問題が解決してから本番環境にリリースしてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】PDFのサムネイルプレビューが表示されない!エクスプローラーの設定とAcrobat環境設定
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
