Suivez votre progression
Accueil Trailhead
Accueil Trailhead

Identification des fonctionnalités à éviter dans Lightning Experience

Objectifs de formation

Une fois cette unité terminée, vous pourrez :
  • Mentionner au moins deux composants à éviter sur les pages utilisées dans Lightning Experience.
  • Identifier trois fonctionnalités de Lightning Experience pour lesquelles vous ne pouvez pas utiliser de pages ou de composants Visualforce.

Identification des fonctionnalités à éviter dans Lightning Experience

Il y a un petit nombre de composants Visualforce dont nous déconseillons l’utilisation sur des pages ouvertes dans Lightning Experience. De plus, quelques fonctionnalités de Visualforce répondent différemment lorsqu’elles sont utilisées dans Lightning Experience. Enfin, il y a quelques emplacements de Lightning Experience où vous ne pouvez pas utiliser de pages ou d’applications Visualforce ou sur lesquels ces pages pourraient ne pas fonctionner normalement.

Lightning Experience continue à évoluer et à se développer et nous espérons pouvoir raccourcir cette liste au fil du temps.

L'en-tête et le menu de navigation de Lightning Experience ne peuvent pas être supprimés

Les pages Visualforce, lorsqu’elles sont exécutées dans Lightning Experience, utilisent toujours l’affichage classique de l’interface utilisateur de Lightning Experience. Il est impossible de supprimer ou de modifier l'en-tête ou la barre latérale de Lightning Experience. Plus particulièrement, les attributs showHeader et sidebar de <apex:page> n’ont aucun effet sur les pages Visualforce lorsqu’elles sont affichées dans Lightning Experience.

Cela est normal. Les applications affichées dans Lightning Experience sont des applications Lightning Experience. Si vous avez besoin d'une interface totalement personnalisée pour votre application, vous devrez l'exécuter dans Salesforce Classic.

L'en-tête et la barre latérale de Salesforce Classic sont toujours supprimés

L'en-tête et la barre latérale standard de Salesforce Classic sont toujours supprimés pour les pages affichées dans Lightning Experience. Plus particulièrement, les attributs showHeader et sidebar de <apex:page> n’ont aucun effet sur les pages Visualforce lorsqu’elles sont affichées dans Lightning Experience.
Les pages agissent comme si les attributs showHeader et sidebar de <apex:page> étaient définis sur « false ».
Remarque

Remarque

L’attribut standardStylesheets de <apex:page>, qui permet de déterminer s’il faut inclure ou supprimer les feuilles de style standard de Salesforce Classic, reste identique dans Lightning Experience. Il est défini par défaut sur « true » dans Lightning Experience, mais vous pouvez le modifier.

Un certain nombre de listes associées ne sont pas prises en charge dans Lightning Experience. Celles-ci sont « sur liste noire », ce qui signifie qu’il est tout simplement impossible de les utiliser. Comme vous pouvez l’imaginer, ces mêmes listes associées sont mises sur liste noire dans Visualforce à l’aide de la balise <apex:relatedList>.

Consultez la rubrique « Accès aux données et aux vues : Fonctionnalités différentes ou non disponibles dans Lightning Experience » dans l’aide en ligne pour en savoir plus sur les listes associées non prises en charge dans Lightning Experience.

Évitez <apex:iframe>

Même s’il est possible d’utiliser <apex:iframe> sur une page Visualforce dans Lightning Experience, nous vous recommandons de l’éviter.

Les pages Visualforce sont intégrées à leur propre iframe lorsqu’elles sont affichées dans Lightning Experience. Comme nous l’indiquons longuement dans Exploration du conteneur d’applications Visualforce, l’impact sur le fonctionnement des pages est important. L'ajout d'un niveau supplémentaire à la structure de l'iframe augmente la complexité de l'environnement.

Si vous maîtrisez vraiment le fonctionnement des iframes et dans quelle mesure ils affectent le DOM et JavaScript, vous pouvez gérer cette complexité. Cependant, à moins que vous n'ayez déjà travaillé avec des iframes imbriqués, vous éprouverez probablement des difficultés pour le débogage des problèmes. Pour cette raison, nous vous conseillons d'éviter cette balise sur les pages utilisées dans Lightning Experience.

Non, vraiment, ne définissez pas directement window.location

Vous trouverez sûrement que nous nous répétons, mais cela est important. Si le code JavaScript de votre page définit directement la variable window.location, ceci ne fonctionnera pas lorsque la page sera affichée dans Lightning Experience. Vous devez modifier le code de cette page pour qu’elle fonctionne dans Lightning Experience.

Pour en savoir plus, reportez-vous à l’unité Gestion de la navigation.

sforce.one n’est pas exclusif à Salesforce Mobile

L’objet utilitaire JavaScript sforce.one est disponible pour les pages Visualforce dans l’application Salesforce et dans Lightning Experience. Si la présence de l’objet sforce.one vous permet de dire si votre page est exécutée dans un environnement mobile ou de bureau, vous devrez actualiser votre code.

Utilisez l'une des méthodes documentées pour différencier les environnements Salesforce Classic, application Salesforce et Lightning Experience. Les techniques prises en charge sont disponibles dans Visualforce, Apex, et JavaScript.

Pour obtenir toutes les informations, consultez l’unité Partage des pages Visualforce entre Classic et Lightning Experience.

Changements concernant les remplacements d'actions

Le changement le plus important qui pourrait être difficile à contourner serait la manière dont Visualforce remplace les actions standard dans Lightning Experience, qui diffère légèrement par rapport à Salesforce Classic. Tout remplacement de l'action de liste d'objets ne sera pas accessible dans Lightning Experience.
Il y a six actions standard que vous pouvez remplacer pour la plupart des objets standard et tous les objets personnalisés dans Salesforce Classic :
  • Onglet d'objet
  • Liste d'objets
  • Vue d'enregistrement
  • Modification d'enregistrement
  • Création d'enregistrement
  • Suppression d'enregistrement
Dans Lightning Experience, les deux premières actions ont été regroupées dans une page : la page d'accueil d'objet. La page d’accueil d’objet, ainsi que certains éléments de l’onglet d’objet, comme les éléments récents, est similaire à la liste d’objets. D’autres éléments, comme les rapports ou les outils, ont été déplacés dans d’autres parties de l’interface utilisateur.

Indépendamment des réglages de l'interface utilisateur de votre organisation, aussi bien l'onglet que la liste d'objets acceptent les remplacements dans Configuration. Le fait de remplacer l'action de l'onglet d'objet remplace la page d'accueil d'objet dans Lightning Experience, comme attendu.

Cependant, dans Lightning Experience, l'action de .liste d'objets n'est pas accessible dans l'interface utilisateur, il n'y a donc pas de possibilité de la déclencher. Si votre organisation a remplacé l'action de liste d'objets pour tous les objets, cette fonctionnalité ne sera pas disponible lors de l'utilisation de Lightning Experience. Si ce remplacement comporte des fonctionnalités essentielles, vous devrez trouver un autre moyen de les rendre disponibles.

Ce tableau énumère les actions standard que vous pouvez remplacer pour un objet dans Configuration, ainsi que l'action remplacée dans les trois différentes expériences utilisateur.
Remplacement dans Configuration Salesforce Classic Lightning Experience Application Salesforce
Onglet onglet d'objet page d'accueil d'objet rechercher
Une liste liste d'objets n/a page d'accueil d'objet
Afficher vue d'enregistrement page d'accueil d'enregistrement page d'accueil d'enregistrement
Modifier modification d'enregistrement modification d'enregistrement modification d'enregistrement
Nouveau création d'enregistrement création d'enregistrement création d'enregistrement
Supprimer suppression d'enregistrement suppression d'enregistrement suppression d'enregistrement
Remarque

Remarque

« n/a » ne signifie pas que vous ne pouvez pas accéder à l'action standard et ne signifie pas non plus que vous ne pouvez pas remplacer l'action normale. Cela signifie que vous ne pouvez pas accéder au remplacement. C'est la fonctionnalité de remplacement qui n'est pas disponible.