Salesforceで運用していると、一部のユーザーから「Apexアクションが表示されない」という問い合わせが発生することがあります。この現象は、権限設定や共有ルール、ライセンスの違いなど複数の要因が絡むため、管理者が適切に原因を特定する必要があります。本記事では、管理者が確認すべきポイントを具体的な手順とともに解説します。問題の切り分けに役立つ判断基準や、よくある失敗パターンも紹介しますので、運用にぜひご活用ください。
【要点】この記事で確認すること
- 最初に見る場所: 問題ユーザーのプロファイル、権限セット、ページレイアウトの割り当てを確認します。
- 切り分けの軸: ユーザー単位(個人)、オブジェクト単位(権限)、UI設定単位(ボタン表示)の3方向で調査します。
- 注意点: 権限の継承や上書き関係を理解していないと、設定漏れを見落とす原因になります。デバッグモードでの検証は本番環境に影響しないよう注意してください。
ADVERTISEMENT
目次
原因1:プロファイルと権限セットの設定不足
Apexアクションを表示するには、該当のオブジェクトに対する「参照」「作成」「編集」などのオブジェクト権限に加えて、Apexクラスの実行権限が必要です。特に、アクションが呼び出すApexクラスに「実行可能」権限が付与されているかが重要です。プロファイルベースで管理している場合、一部のユーザーが権限を継承していない可能性があります。
手順:権限の確認と修正
- 設定 > ユーザ > プロファイル から該当ユーザーのプロファイルを開きます。
- 「有効なApexクラスアクセス」を確認し、アクションで使っているApexクラスが一覧に含まれているか確認します。
- 含まれていなければ「編集」からクラスを追加します。権限セットを使っている場合は、権限セットにも同様の設定がされているか確認します。
- 権限セットの「Apexクラスのアクセス」で該当クラスにチェックが入っていることを確認します。
- テストユーザーでログインし、アクションが表示されるか確認します。
よくある失敗パターン
よくあるのは、プロファイルには権限があるが権限セットで制限しているケースです。権限セットはプロファイルに追加で権限を与えるものですが、逆に権限を削除することはできません。しかし、Apexクラスのアクセスはプロファイルと権限セットの和集合になるため、どちらか一方にしか設定していないと権限不足になります。また、権限セットの割り当てが有効になっていない(期限切れなど)場合も見逃しやすいので注意しましょう。
原因2:ページレイアウトまたはクイックアクションの割り当て
Apexアクションを画面に表示するためには、ページレイアウトに「カスタムアクション」として配置されている必要があります。また、アクションの「タイプ」が「クイックアクション」ではなく「カスタムApexアクション」として定義されているかも確認ポイントです。
手順:ページレイアウトの確認
- 設定 > オブジェクトマネージャ > 該当オブジェクト > ページレイアウト に移動します。
- 問題のユーザーに割り当てられているページレイアウトを開きます。
- 含まれていない場合は、左側の「使用できるアクション」から追加し、保存します。
- 別のレイアウトが割り当てられていると表示されないため、ユーザーのプロファイルまたはレコードタイプに応じたレイアウトを確認します。
レコードタイプとアクションの関係
レコードタイプごとに異なるページレイアウトを割り当てている場合、アクションが一部のレコードタイプにしか表示されないことがあります。たとえば、標準の「取引先」オブジェクトで「法人」と「個人」でレコードタイプを分けている場合、それぞれのレイアウトにアクションを追加する必要があります。この見落としはよく発生します。
原因3:ライセンスと機能の制限
Salesforceのエディション(Group、Professional、Enterprise、Unlimitedなど)やユーザーライセンスによって、Apexアクションが利用できない場合があります。たとえば、Professional EditionではApexの実行が制限されていることがあります。また、ユーザーライセンスが「Salesforce Platform」や「Chatter Only」などの場合、Apexクラスを実行する権限がない可能性があります。
| エディション/ライセンス | Apexアクションの利用可否 |
|---|---|
| Enterprise Edition | 通常利用可能(要権限設定) |
| Professional Edition | 一部制限あり(Apex制限に注意) |
| Lightning Platform Starter | 利用不可の場合あり |
| Chatter Free | 利用不可 |
確認手順
設定 > 会社の設定 > 会社情報 でエディションを確認します。ユーザーライセンスは、設定 > ユーザ > ユーザ から該当ユーザーを開き、「ユーザライセンス」フィールドで確認できます。また、Apexクラスの使用制限は「Apex 制限」ページでも確認可能です。
原因4:モバイルアプリまたはLightning Experienceの設定
Salesforceのモバイルアプリでは、デスクトップ版と異なるアクションの表示設定が存在します。さらに、Lightning ExperienceとSalesforce Classicで動作が異なる場合もあります。特にモバイルでは、アクションが「モバイル対応」としてマークされている必要があります。
モバイル設定の確認
- 設定 > モバイル > モバイルアクション設定 を開きます。
- 対象のApexアクションが「モバイルで有効」になっているか確認します。
- もし無効ならチェックを入れます。モバイルアプリでの表示位置もここで調整できます。
- Lightning Experienceの場合、「アクションメニューの設定」も確認します。
デスクトップとモバイルの比較
デスクトップ版でアクションが表示されるのにモバイルで表示されない場合、モバイル設定が原因の可能性が高いです。逆にモバイルのみ表示されるケースは稀です。また、ユーザーのブラウザやアプリのキャッシュが原因で古い設定が残っている場合もあるため、クリアを試してみましょう。
原因5:共有ルールとレコードアクセスの制限
Apexアクションが特定のレコードに対してのみ表示されるように設定されている場合、アクション自体の表示条件や、Apexコード内部でレコードアクセスをチェックしていることが原因で見えないことがあります。たとえば、アクションの「表示条件」として数式を使い、ユーザーのプロファイルやロールで制限している場合です。
確認手順
- 設定 > アクション から該当のApexアクションを開きます。
- 「表示条件」に設定がある場合、その条件式を確認します。例えば、$UserRole.Name などで絞っている場合は、ユーザーのロールが条件を満たしているか確認。
- アクションのソースとなるApexクラス内で、with sharing や without sharing の宣言、およびレコードアクセスのチェック(例えば、以下のようなコード)を行っている場合、アクセス権がないレコードではアクションボタンが表示されないことがあります。
- 実際に問題のユーザーで該当レコードを開き、アクションの「使用条件」をデバッグモードでログ出力するなどして確認します。
管理者へ伝える情報
開発者がApexクラス内で「with sharing」を使用している場合、ユーザーがそのレコードに対して参照権限を持っていないとボタンが表示されない仕様です。その場合は、共有ルールの見直し、またはクラスを「without sharing」に変更する(セキュリティに注意)などの対応が必要です。管理者は、開発者と連携してアクションの表示ロジックを確認してください。
原因6:ブラウザキャッシュやセッションの問題
時として、SalesforceのUI設定が正しいにもかかわらず、ローカルブラウザのキャッシュやセッション情報が原因でアクションが一時的に表示されないことがあります。これは特に、設定変更後すぐに確認しようとした場合に発生しやすい現象です。
対処手順
- 問題が発生しているユーザーに、ブラウザのキャッシュをクリアしてもらいます(特に、Salesforce関連のキャッシュ)。
- シークレットウィンドウやプライベートブラウズで再度ログインし、表示されるか確認します。
- それでも改善しない場合、Salesforceのシステムキャッシュをクリアするために、設定 > クイック検索ボックスに「キャッシュ」と入力し、「すべてのキャッシュをクリア」を実行します。
- 同時に、ユーザーのセッションを強制終了し、再ログインを促します。
注意点
管理者が設定を変更しても、ユーザー側に反映されるまでに数分から数時間かかる場合があります。特に、権限セットの割り当て変更などは即時反映されないことがあるため、反映を待ってから検証することを推奨します。
原因7:Salesforceの既知の不具合やメンテナンス
稀に、Salesforceプラットフォーム側の不具合やメンテナンスにより、特定の機能が利用できなくなることがあります。特にリリース直後やメジャーアップデートのタイミングで発生しやすいです。この場合、問題は全ユーザーに影響することが一般的ですが、一部のユーザーや特定の組織に限定されることもあります。
確認方法
- Salesforceの「トラストサイト(trust.salesforce.com)」で現在のサービス状況を確認します。
- 既知の問題については、Salesforceの「既知の問題(Known Issues)」ページを検索します。
- サポートケースを開く前に、コミュニティフォーラムで同じ症状の報告がないか確認します。
FAQ
Q1: アクションが一部のレコードでのみ見えません。
表示条件やApexコード内のアクセス制御が原因です。レコードタイプや共有ルールを確認しましょう。
Q2: モバイルでは見えないがPCでは見えます。
モバイルアクション設定が無効になっているか、ページレイアウトのモバイル用アクションリストに追加されていない可能性があります。
Q3: 権限セットを割り当てたのに反映されません。
権限セットの割り当てが有効になるまで最大24時間かかる場合があります。また、プロファイルで権限が上書きされていないか確認してください。
Q4: 全てのユーザーで見えない場合は?
まずページレイアウトにアクションが配置されているか、アクション自体が有効か確認します。次にApexクラスのアクセス権を全ユーザーに付与しているか確認しましょう。それでもダメならSalesforceサポートに問い合わせてください。
まとめ
Apexアクションが一部ユーザーに見えない場合、原因は権限設定、ページレイアウト、ライセンス、モバイル設定、共有ルール、キャッシュ、またはプラットフォームの問題など多岐にわたります。最初にユーザーのプロファイルと権限セットを確認し、次にページレイアウトとアクションの表示条件をチェックする順序が効率的です。それでも解決しない場合は、Salesforceのトラストサイトや既知の問題を参照し、それでも不明な場合はサポートケースを開くことをお勧めします。日頃から設定変更の影響範囲を把握し、検証環境で事前テストを行うことで、本番環境でのトラブルを減らすことができます。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Office・仕事術の人気記事ランキング
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【PDF】結合するPDFの「用紙サイズ」がバラバラな時、すべてを「A4サイズ」に強制リサイズしてから結合する
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
