Lightning Experience で使用を避けるべき機能について
学習の目的
この単元を完了すると、次のことができるようになります。
- Lightning Experience で実行するページには極力使用しないコンポーネントを 2 つ以上挙げる。
- Visualforce のページやコンポーネントを使用できない Lightning Experience の機能を 3 つ挙げる。
Lightning Experience で避けるべき機能の把握
一部の Visualforce コンポーネントについては、Lightning Experience で実行するページで極力使用しないことをお勧めします。また、Visualforce のいくつかの機能は、Lightning Experience で使用した場合に動作が異なります。最後に、Lightning Experience には少数ながら Visualforce ページやアプリケーションが使用できない場所や、確実に機能しない可能性のある場所があります。
Lightning Experience は依然として発展途中であり、いずれこうした問題が解消されていくものと考えています。
Lightning Experience のヘッダーとナビゲーションメニューは抑制できない
Visualforce ページを Lightning Experience で実行するときは、常に標準の Lightning Experience ユーザーインターフェースが表示されます。Lightning Experience のヘッダーやサイドバーを抑制したり変更したりする方法はありません。特に、Lightning Experience に表示される Visualforce ページには、<apex:page> の showHeader および sidebar 属性が適用されません。
これは意図的なものです。Lightning Experience に表示されるアプリケーションは、Lightning Experience アプリケーションです。アプリケーションに完全カスタムのインターフェースが必要な場合は、Salesforce Classic で実行する必要があります。
Salesforce Classic のヘッダーとサイドバーは常に抑制
ページを Lightning Experience に表示する場合、Salesforce Classic の標準のヘッダーとサイドバーは常に抑制されます。特に、Lightning Experience に表示される Visualforce ページには、<apex:page> の showHeader および sidebar 属性が適用されません。
ページは、あたかも <apex:page> の showHeader および sidebar 属性が false に設定されているかのように動作します。
<apex:relatedList> およびブロックリストに登録済みの関連リスト
Lightning Experience では多数の関連リストがサポートされません。これらの関連リストは「ブロックリストに登録」され、その使用が明示的に阻止されます。ご想像どおり、これらの関連リストは Visualforce でブロックリストに登録され、<apex:relatedList> タグが付けられます。
Lightning Experience でサポートされない関連リストについての詳細は、オンラインヘルプの「データアクセスおよびビュー: Lightning Experience で使用できない機能とその新機能」を参照してください。
<apex:iframe> の回避
Lightning Experience の Visualforce ページでも <apex:iframe> を使用できないわけではありませんが、極力使用しないことをお勧めします。
Visualforce ページは、Lightning Experience に表示されるときに独自の iframe でラップされます。「Visualforce アプリケーションのコンテナの探索」で詳述しているとおり、このタグはページの動作に多くの顕著な影響を及ぼします。iframe スタックにもう一層追加すれば、環境がさらに複雑になります。
この複雑さは、iframe とその DOM および JavaScript への影響を理解していれば管理できます。ただし、ネストされた iframe のデバッグはその使用経験がないと困難です。そのため、Lightning Experience で使用するページにはこのタグを使用しないことお勧めします。
window.location は直接設定できない
前にもお伝えしましたが、重要事項のためもう一度繰り返します。ページの JavaScript コードで直接 window.location 変数を設定している場合、Lightning Experience にページを表示したときにこの変数が機能しません。ページのこのコードを Lightning Experience でも機能するように変更する必要があります。
詳細は、「ナビゲーションの管理」単元を参照してください。
sforce.one は Salesforce モバイルとは限らない
sforce.one JavaScript ユーティリティオブジェクトが、Salesforce アプリケーションと Lightning Experience の両方の Visualforce ページで使用できるようになりました。ページのコンテキストがモバイルなのかデスクトップなのかを sforce.one オブジェクトの有無で判断している場合は、コードを変更する必要があります。
Salesforce Classic、Salesforce アプリケーション、Lightning Experience 環境を区別するには、ドキュメントで説明されている方法のいずれかを使用します。Visualforce、Apex、および JavaScript でサポートされている方法があります。
詳細は、「Classic と Lightning Experience 間での Visualforce ページの共有」単元を参照してください。
override アクションに関する変更
おそらく、回避するのが難しいという点で、最も大きな変更は、Visualforce による標準アクションの上書きが、Lightning Experience と Salesforce Classic でわずかに異なることです。オブジェクトリストアクションの上書きは、Lightning Experience では使用できません。
具体的には、Salesforce Classic の大半の標準オブジェクトおよびすべてのカスタムオブジェクトに対して上書きできる標準アクションは 6 つあります。
- オブジェクトタブ
- オブジェクトリスト
- レコードビュー
- レコード編集
- レコード作成
- レコード削除
Lightning Experience では、最初の 2 つのアクションは、1 つのページに統合され、オブジェクトホームになりました。オブジェクトホームは、オブジェクトリストに似ていますが、[最近使ったデータ] など、オブジェクトタブの要素がいくつか追加されています。[レポート] や [ツール] などのその他の要素は、ユーザーインターフェースの別の部分に移動しました。
組織のユーザーインターフェース設定に関わらず、オブジェクトタブとオブジェクトリストの両方を [設定] で上書きできます。オブジェクトタブアクションを上書きすると、Lightning Experience では期待どおりにオブジェクトのホームページが上書きされます。
ただし、Lightning Experience では、ユーザーインターフェースでオブジェクトリストアクションにアクセスできないため、起動する手段がありません。組織で、いずれかのオブジェクトのオブジェクトリストアクションが上書きされている場合、その機能はユーザーが Lightning Experience を使用しているときには利用できません。その上書きの中に重要な機能がある場合、その機能を使用する別の方法を見つける必要があります。
次の表は、[設定] で上書き可能なオブジェクトの標準アクションと、3 種類のユーザーエクスペリエンスで上書きされているアクションの一覧です。
[設定] で上書き | Salesforce Classic | Lightning Experience | Salesforce アプリケーション |
---|---|---|---|
タブ | オブジェクトタブ | オブジェクトホーム | 検索 |
リスト | オブジェクトリスト | N/A | オブジェクトホーム |
表示 | レコードビュー | レコードホーム | レコードホーム |
編集 | レコード編集 | レコード編集 | レコード編集 |
新規 | レコード作成 | レコード作成 | レコード作成 |
削除 | レコード削除 | レコード削除 | レコード削除 |
リソース